Viewing profile — puzpuzpuz-hn
puzpuzpuz-hn
HN member- Joined
- Tue, Jan 11, 2022, 9:06 AM UTC
- HN karma
- 28
- Public activity
- 28 items
- HN profile
- View on Hacker News ↗
About puzpuzpuz-hn
No profile information was provided.
Recent public activity
-
comment
Comment #48673129
Thanks! We do our best to be as transparent as possible when it comes to benchmarking.
-
comment
Comment #48673106
Thanks for the reference. Will check!
-
comment
Comment #48673094
Exactly! The task gets even trickier when you're benchmarking lots of systems of different kinds: cloud databases, self-hosted ones, embedded engines, CLI tools.
-
comment
Comment #47134201
Allocation rates comparison is included. If your application writes into the map most of the time, you should go with plain map + RWMutex (or orcaman/concurrent-map). But if, for i…
-
comment
Comment #47134150
Thanks. There are downsides in each approach, e.g. if you care about minimal allocation rate, you should go with plain map + RWMutex. So yeah, no silver bullet.
-
comment
Comment #47134139
Unsafe usage in the recent xsync versions is very limited (runtime.cheaprand only). On the other hand, your point is valid and it'd be great to see standard library improvements.
-
comment
Comment #47134120
My box is 12c/24t only, so it won't make any difference. But on a beefy box, it may improve performance in high cardinality key scenarios.
-
comment
Comment #47134113
There are multiple GH issues around better sync.Map. Among other alternatives, xsync.Map is also mentioned. But Golang core team doesn't seem interested in sync.Map (or a generic v…
-
comment
Comment #47134103
Would be great to see that - there are multiple GH issues for that. But so far, I'm not convinced that Google prioritizes community requests over its own needs.
-
comment
Comment #47134094
Allocation rates are also compared. Long story short, vanilla map + RWMutex (or a sharded variant of it like orcaman/concurrent-map) is the way to go if you want to minimize alloca…
-
comment
Comment #47134065
Yup, that's a valid point. I'll consider adding these metrics.
-
comment
Comment #47102497
Benchmarks for 5 concurrent hash map implementations in Go: sync.Map, xsync.Map, cornelk/hashmap, alphadose/haxmap, and orcaman/concurrent-map. Workloads: read-heavy to write-heavy…
- story
-
comment
Comment #41145847
Nice article, thanks for sharing it. It's a pity kdb+ has a DeWitt Clause, so that no one can benchmark it against other databases from the article. I wonder if they have any publi…
-
comment
Comment #38718106
Hi, if you're asking about the hash table itself, then currently we use linear probing, i.e. k/v pairs with a collision are inserted sequentially starting with the hash%capacity in…
-
comment
Comment #38718092
That's correct. In practice, there is an insignificant amount of hash collisions, so false comparisons are extremely rare. And thanks for sharing your experience with RH and the li…
-
comment
Comment #38712623
> Unless I'm missing something, hashing function is fast compared to random bouncing around inside ram – very much faster then random memory accesses. So I can't see how it make a …
-
comment
Comment #38712512
Thanks, Gavin, I'm pleased to hear that. And thanks for recommending my blog!
-
comment
Comment #38712487
Thanks! We're still benchmarking Robin Hood hashing and are open to further experiments. The benchmarks look promising.
- story
-
comment
Comment #37715221
> Obviously, it's a bit sad when due credit is not given where it should be The post actually references your paper. :)
- story
-
comment
Comment #37377848
Yes, the core idea is pretty close to Epoch-based synchronization.
- story
-
comment
Comment #34837015
Recently we've started using io_uring for disk access in QuestDB. So far, it's being used in CSV import, but we'd like to expand it to network and other disk access use cases. Apar…