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

Find out if NBHM is better or worse than ConcurrentHashMap in OnHeapGraphIndex #13

Closed
jbellis opened this issue Aug 29, 2023 · 2 comments · Fixed by #49
Closed

Find out if NBHM is better or worse than ConcurrentHashMap in OnHeapGraphIndex #13

jbellis opened this issue Aug 29, 2023 · 2 comments · Fixed by #49
Assignees

Comments

@jbellis
Copy link
Owner

jbellis commented Aug 29, 2023

See commit history for where NBHM got added.

Will probably need to test on low dimension vectors (i.e. random data, not the grid search) so that vector comparison time doesn't swamp the Map in the measurement.

@jkni
Copy link
Collaborator

jkni commented Sep 7, 2023

@jbellis I did some synthetic testing in the cases I'd expect to stress the difference. Workloads included concurrency levels of 4/8/16/32/64 threads with mixed read-write workloads profiles consisting of 12.5% writes, 25% writes, and 50% writes. In addition, I also tested concurrency levels of 8/16/32 prebuilding the graph (all writes) and searching random vectors (all reads).

Profiles confirmed this set up did cause data structure operations to dominate search/indexing, as desired. In all cases, the differences between CHM and NBHM were minimal and within run-to-run variation. Given this, I think there's no reason to advocate for a change at this time. We could revisit this down the road, but I think there are plenty of higher payoff changes right now.

@jkni
Copy link
Collaborator

jkni commented Sep 7, 2023

Deps slimmed in #49

@jkni jkni closed this as completed Sep 7, 2023
@jkni jkni linked a pull request Sep 7, 2023 that will close this issue
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

Successfully merging a pull request may close this issue.

2 participants