-
Notifications
You must be signed in to change notification settings - Fork 1
Feature/set operation functions #64
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
Conversation
dylon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did a bit of experimentation and could not find a dataset size or structure depth at which PathMap-based set operations outperformed HashMap-based ones. HashMap utilizes the hardware caches better than PathMap for generalized set operations. PathMap excels at prefix querying and incremental updates when structural sharing benefits can be maximized, but it is not the best for implementing generalized set operations (according to my benchmarks).
I pushed my experimental branch, based off this one, to dylon/set-operation-functions:
- HashMap-based set operations: src/backend/eval/set.rs
- Empirical benchmark analysis: crossover_analysis.md
- Commit diff: d90d2d597eb16fa1392846d7a3a09a2d51f21362
…enchmarks parallel PathMap multiset operations vs. sequential HashMap operations and demonstrates, empirically, that the HashMap-based operations perform better than the PathMap-based operations regardless the dataset size or depth of structures
24e4b59 to
aa0ed51
Compare
aa0ed51 to
b960999
Compare
b960999 to
dd46d7c
Compare
dylon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Thanks, Serhii.
No description provided.