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

Redesign io.github.bucket4j.distributed.proxy.optimization package and make it officially released #415

Open
vladimir-bukhtoyarov opened this issue Oct 24, 2023 · 0 comments
Milestone

Comments

@vladimir-bukhtoyarov
Copy link
Collaborator

vladimir-bukhtoyarov commented Oct 24, 2023

Rename Optimization to StorageSynchronizer

This naming will better describes the nature of object that tries to optimize the way to cummunicate with remote storage.

Introduce per ProxyManager storage-synchronizers

Currently, only per-bucket optimizations exist, this leads to API awkward when user need to cache strong reference to optimized buckets somewere as described in javadocs. At least for Batching optimization it is possible to store collection of optimized buckets inside ProxyManager itself, so storage synchronizers with ProxyManager scope will sserriously enhance user expirience.

Default optimization

It looks that Batching can be configured as default optimization for all integrations at ProxyManager level.

Implement ScheduledStorageSynchronizer at ProxyManager level

It should sync all buckets with fixed frequence. At least following feature should be provided:

  • Specifying batch size
  • Allowing to sync in paraller, it should be possible to configure executore for parallel synchronization.
  • Allowing to customize the batching, it should be possible to delegate to user the process of assigned buckets to particular batch, this will be usefull for Redis,Infinispan,Hazelcast,Ignite to accomodate in same batch the buckets that is stored on the same remote node.
  • Customizable monitoring and logging should be implemented.

Documentation

Also it needs to document StorageSynchronizer.

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