3 ms·
It performs better and uses different design choices (for example: SableDb uses tokio's local task per connection, and in general it uses green threads to make
by SableDb 2y ago
It performs better and uses different design choices (for example: SableDb uses tokio's local task per connection, and in general it uses green threads to make the code more readable and easy to maintain).
I will release some design documents later on (hopefully this month). Remember that is a one man project (hopefully, not for long), so it takes time to organize everything :)
- theossuary 2y agoI like the idea of doing thread local execution of Tokyo tasks; I assume that means SableDb is mostly single threaded? Was this to reduce complexity, or for some other reason? I'm looking forward to the design doc on this!
- SableDb 2y agoIt is multi-threaded (configurable, you can set it to a specific number configuration file, or use the magic value 0 where SableDb decides based on the number of cores divided by 2). Each incoming connection is assigned to a worker thread, and two tokio tasks are created for the connection (one for reading and another for writing). Using tokio allowed me to use the `async` code without using "callback hell" so the code looks clean and readable in a single glance without the need to follow callbacks
- super_user 2y agoHi SableDb. I am looking for a tech cofounder in databases. Probably not the best place to ask for a cofounder. :-) Regardless, would you be interested?
- vlovich123 2y agoI’m potentially interested in a cofounder for my DB. Can you ping me on gmail to connect (username in profile)?
- scottlamb 2y agoYou might as well post it to the discussion of this article about why you won't find a technical co-founder. <https://news.ycombinator.com/item?id=39902372 https://news.ycombinator.com/item?id=39902372>
- PlutoIsAPlanet 2y agoI did some rookie testing between KVRocks and sableDB using Redis Benchmark KVRocks PING_INLINE: 171821.30 requests per second, p50=0.183 msec PING_MBULK: 173310.22 requests per second, p50=0.191 msec SET: 115074.80 requests per second, p50=0.399 msec GET: 163398.70 requests per second, p50=0.271 msec INCR: 110741.97 requests per second, p50=0.415 msec LPUSH: 89847.26 requests per second, p50=0.487 msec RPUSH: 94428.70 requests per second, p50=0.487 msec LPOP: 86880.97 requests per second, p50=0.535 msec RPOP: 88339.23 requests per second, p50=0.527 msec SableDB PING_INLINE: 90744.10 requests per second, p50=0.279 msec PING_MBULK: 90826.52 requests per second, p50=0.279 msec SET: 85763.29 requests per second, p50=0.311 msec GET: 87336.24 requests per second, p50=0.295 msec INCR: 68775.79 requests per second, p50=0.663 msec LPUSH: 36589.83 requests per second, p50=1.031 msec RPUSH: 38299.50 requests per second, p50=1.135 msec LPOP: 38051.75 requests per second, p50=1.191 msec RPOP: 37383.18 requests per second, p50=1.143 msec KVRocks seems faster but certainly not a bad start
- vlovich123 2y agoHow well does raw Redis and/or raw RocksDB perform on your machine?
- SableDb 2y agoSharing the build configuration (e.g. did you make sure to build `sabledb` in release mode?) + threads configurations etc, worth mentioning.