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

Rewrite Avro buffer recycling (ApacheCodecRecycler.java) to use new (2.16) RecyclerPool, allow configuring use of non-ThreadLocal based pools #400

Closed
cowtowncoder opened this issue Sep 30, 2023 · 0 comments

Comments

@cowtowncoder
Copy link
Member

Now that jackson-core added pluggability of recycler pools (see FasterXML/jackson-core#1089 ), and also provides a set of reusable implementations (see FasterXML/jackson-core#1064) we can tackle Avro-specific additional recycling: it also needs to allow re-configuring esp. to work with Project Loom where ThreadLocal based pooling really does not work well. This is likely to also help with Android usage, where SoftRefernences (used by default Smile recycler, in addition to ThreadLocal) does not work as well as vanilla J2SE JDKs.

So let's try to get this done for 2.16.

Class to change is ApacheCodecRecycler.
For 2.16 we should still default to traditional recycler, but for 2.17+ should probably change the default. This allows for early adopters to switch over sooner, while we get feedback on how pooling works, best default to use.

@cowtowncoder cowtowncoder changed the title Rewrite Smile buffer recycling (ApacheCodecRecycler.java) to use new (2.16) RecyclerPool, allow configuring use of non-ThreadLocal based pools Rewrite Avro buffer recycling (ApacheCodecRecycler.java) to use new (2.16) RecyclerPool, allow configuring use of non-ThreadLocal based pools Oct 3, 2023
cowtowncoder added a commit that referenced this issue Oct 4, 2023
cowtowncoder added a commit that referenced this issue Oct 12, 2023
cowtowncoder added a commit that referenced this issue Oct 12, 2023
cowtowncoder added a commit that referenced this issue Oct 12, 2023
cowtowncoder added a commit that referenced this issue Oct 15, 2023
cowtowncoder added a commit that referenced this issue Oct 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant