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

BFS for Insert path #12

Open
dave-andersen opened this issue Dec 12, 2016 · 3 comments
Open

BFS for Insert path #12

dave-andersen opened this issue Dec 12, 2016 · 3 comments

Comments

@dave-andersen
Copy link
Member

We should think about bringing in the BFS-based insert from libcuckoo. It permits more parallel memory accesses & work on the insert path and might give us a nice speed boost.

Barring that, I wonder if it's helpful to try to check the first two buckets in a more explicitly parallel fashion. Might not be, but we can pretty quickly determine if they're full.

@jbapple-cloudera
Copy link
Contributor

I have not had luck with prefetching speeding things up when the cycles between the prefetch and the use of the bits numbers in the low dozens.

@dave-andersen
Copy link
Member Author

In the case of the packed table, there's a slightly complex decode step involved that involves more bit manipulation and a dereference into a lookup table. We can actually skip that in the common case (one of the two buckets has space): You don't have to decode the packed bits to get a one-sided error guess if the bucket is full. If all (un-packed) tags are non-zero, you know it's full, so you can avoid one latency worth of the bucket fetch & decode. Interleaving the bucket search in this way should provide for a reasonable speedup for table construction on the packed table.

@scut-lz
Copy link

scut-lz commented Oct 13, 2017

Hi,does anyone knows that why the speed for inserting items intio the filter is so slow? Are there any other ideas to speed up the inserting and lookuping?Thx

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

3 participants