This work is a part of the global task of decoupling the MessagePack object mapping from the core driver code in the scope of discoverable mapper bindings, caching, and support for different Tarantool cluster and API library implementations.
The goal of this patch is to reduce the number of Java reflection calls by introducing the concept of "request signatures" and replacing real-time converter lookup with memoization and table lookup.
New cluster-oriented benchmark scripts are also added. The comparison and memory consumption improvements based on the benchmark measurements will follow in the next PRs.
See the commit messages for more detailed information about the changes.
TODO:
[x] Decouple mapping from the core driver workflow and move it up to the client implementation level
[x] Implement request signatures
[x] Change mapper references to suppliers in API
[x] Implement mapper binding to request signatures
This work is a part of the global task of decoupling the MessagePack object mapping from the core driver code in the scope of discoverable mapper bindings, caching, and support for different Tarantool cluster and API library implementations.
The goal of this patch is to reduce the number of Java reflection calls by introducing the concept of "request signatures" and replacing real-time converter lookup with memoization and table lookup.
New cluster-oriented benchmark scripts are also added. The comparison and memory consumption improvements based on the benchmark measurements will follow in the next PRs.
See the commit messages for more detailed information about the changes.
TODO:
Depends on https://github.com/tarantool/cartridge-java/pull/410