4 ms·
BoltDB author here. I'm glad to see that Bolt is working well for the OP! It seems like a great use case for Bolt (multi-core, high read volume, local storage).
by benbjohnson 11y ago
BoltDB author here. I'm glad to see that Bolt is working well for the OP! It seems like a great use case for Bolt (multi-core, high read volume, local storage).
There seems to be a lot of focus on the performance improvements by commenters. Using a local mmapped KV can remove a lot of network and serialization overhead, however, I would caution others from thinking Bolt is a silver bullet. There are a TON of use cases where Redis would utterly destroy Bolt (e.g. high random write volume).
The two data stores have fundamentally different designs and purposes. For example, Bolt provides MVCC with fully serializable transaction isolation. If you need that then Redis isn't an option. If you don't need that then Bolt may be overkill.
As always, YMMV and be sure to test out different options based on your requirements.
- andrewguenther 11y agoThis post makes me so happy. The key statement is here: > The two data stores have fundamentally different designs and purposes With all the datastore hooplah nowadays, it is really nice to see an author come out and say "this isn't for everyone" rather than "we're the fastest for everyone, period." and throwing around a bunch of meaningless benchmarks.
- jaekwon 11y agoHello Ben, thanks for the great tool. If Bolt supports MVCC using a page log, why does Redis destroy Bolt on random write volume? Also, I'm seeing wildly different write performance measures. Siddontang on #237 back in 2014 for Ledis suggests 970 Sets per second. This HN article mentions 800 requests per second. Running "bolt bench --count 10000000 --batch-size 10000 --write-mode rnd" gets me 29203 ops per second. Can you shed some light on what random write performance I can expect?