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

Implement in-memory wal-free bucket references #3990

Open
Gerold103 opened this issue Feb 13, 2019 · 0 comments
Open

Implement in-memory wal-free bucket references #3990

Gerold103 opened this issue Feb 13, 2019 · 0 comments
Labels
blocked Not ready to be implemented feature A new functionality vshard Sharding related issues
Milestone

Comments

@Gerold103
Copy link
Collaborator

It is two counters: RO and RW. RO reference counter protects garbage bucket from being deleted while it has some active requests working with it. RW reference counter will protect bucket from relocation by a rebalancer or an explicit bucket_send, while it has active read-write requests. References are not persisted since they count number of active requests, but on restart all requests are dropped. Bucket refs should have a public API for manual work, and maybe an automatic ref/unref via IPROTO option, or via a special wrapper function, like vshard.storage_call.
Please, note that request != transaction. A request is usually a stored procedure call, making a lot of transactions on a bucket. When a request works with multiple buckets, it should be able to reference each of them via public API before usage. In vshard it looks like this: vshard.storage.bucket_refro(10) --do some work, many transactions-- vshard.storage.bucket_unrefro(10). A user expects that a bucket will not be relocated nor deleted by GC during a request.

Follows #3986.

@Gerold103 Gerold103 added vshard Sharding related issues blocked Not ready to be implemented labels Feb 13, 2019
@kyukhin kyukhin added this to the wishlist milestone Jul 21, 2021
@kyukhin kyukhin added the feature A new functionality label Sep 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked Not ready to be implemented feature A new functionality vshard Sharding related issues
Projects
None yet
Development

No branches or pull requests

2 participants