Skip to content

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

@cowtowncoder

Description

@cowtowncoder

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions