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

Proxy-collector reclamation #23

Open
ibraheemdev opened this issue Dec 26, 2021 · 1 comment
Open

Proxy-collector reclamation #23

ibraheemdev opened this issue Dec 26, 2021 · 1 comment

Comments

@ibraheemdev
Copy link

ibraheemdev commented Dec 26, 2021

The original post for the vyukov hashmap mentions a "proxy-collector" used for memory reclamation:

Deferred memory reclamation uses a kind of amortized proxy-collector technique,
and together with timestamp based validation provides pure read-only
read transactions

But the version here seems to accept arbitrary reclaimers. Was the proxy-collector not implemented?

@mpoeter
Copy link
Owner

mpoeter commented Dec 30, 2021

I has been many years since I worked with the original implementation (the implementation in this library is based on one that I created back then). The original implementation by did implement a proxy-collector, but AFAIR it only worked for 32-bit and crashed on 64-bit. The proxy-collector was only used for the table's memory block. because the original implementation was very limited in the supported key/value types (it only supported trivially copyable types of size <= sizeof(void*)).

In my implementation the selected reclamation scheme is used for the table's memory block, as well as for any additional nodes that have to be allocated for non-trivial keys/values. I have considered to allow specification of separate reclaimers for the two cases, but that is not implemented yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants