Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate other uses of serde(untagged) for performance problems #1310

Open
2 tasks
cdisselkoen opened this issue Nov 8, 2024 · 1 comment
Open
2 tasks
Labels
internal-improvement Refactoring, minor performance improvement, or other changes that Cedar users may never notice

Comments

@cdisselkoen
Copy link
Contributor

Describe the improvement you'd like to request

In #1308 we fixed a performance issue (#1284) by replacing an automatically derived serde(untagged) deserializer with a custom one, achieving orders of magnitude speedup on a pathological case. We should investigate if it's worth applying the same pattern in other places.

Describe alternatives you've considered

No response

Additional context

No response

Is this something that you'd be interested in working on?

  • 👋 I may be able to implement this internal improvement
  • ⚠️ This feature might incur a breaking change
@cdisselkoen cdisselkoen added pending-triage The cedar maintainers haven't looked at this yet. Automicaly added to all new issues. internal-improvement Refactoring, minor performance improvement, or other changes that Cedar users may never notice labels Nov 8, 2024
@john-h-kastner-aws
Copy link
Contributor

john-h-kastner-aws commented Nov 8, 2024

Fortunately, the list is not too long. Only one is a recursive data structure, which I believe was key in the pathological performance issue

All the rest are worth taking a closer look at, but they are not defined recursively, so the cost of the backtracking parsing for the derived untagged should only be paid once.

@cdisselkoen cdisselkoen removed the pending-triage The cedar maintainers haven't looked at this yet. Automicaly added to all new issues. label Nov 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal-improvement Refactoring, minor performance improvement, or other changes that Cedar users may never notice
Projects
None yet
Development

No branches or pull requests

2 participants