This message was deleted.
# general
s
This message was deleted.
z
Hey @Suman Karumuri. Answers in line: β€’ Not today no. Though maybe we have some answers depending on what you're trying to achieve? The davinci client today is a read only interface. β€’ This is also not supported today but we have had internal discussion about something like this frequently. Again it'd be good to understand what you're after. Today data transfer is all based off of our PubSubConsumer interface, and it's fast enough that we haven't had much urgency to rework it (always something to do around here πŸ˜… ) β€’ I'm sure I could find some public examples of this. It'd be a comparison between rocksdbjni and straight rocksdn microbenchmark. I'll get back to you.
πŸ™‡ 1
And as always, contributions welcome 😁
f
What Zac said is correct. Some extra details: 1. Da Vinci consumes from Kafka (soon it could be from other non-Kafka pub subs) and writes the data to RocksDB. The end result is some SST files in the Da Vinci data directory, though those are fully managed by the library. Currently, we support 2 RocksDB formats: block-based (ideal for SSD+RAM) and PlainTable (ideal for all-in-RAM). 2. We recently saw an internal use case clocking in at 800K k/v consumed and written per second on a single node (it's fast). And we are continuously optimizing it further. Personally, I think we'll get to 1M writes/sec/node in the not too distant future. Blob-based transfer is on our radar but so far we've resisted adding extra moving parts as it didn't seem quite necessary. Still open to considering it in the future. 3. The JNI layer doesn't add too much penalty from my understanding, though I don't have concrete numbers in terms of the delta it adds. In absolute numbers, I've seen Da Vinci configured in the PlainTable format perform lookup + deserializarion in ~2 microseconds for a 10 KB payload. In the block-based format, on SSD, about 200 microseconds.
πŸ‘ 1
s
Thanks for a quick response. I am looking for a good backend for persistent store backend for yuvi. Currently, it’s an in-memory store but we are looking to persist it to disk. Kaldb already has the bits to persist data to s3, so we are looking for a good local KV store like rocksdb but that is also cloud native.
f
RocksDB is really solid IMHO. If you decide to use it, you may find that a lot of other things aren't needed anymore... e.g. you might not need to manage the in-memory part anymore, as RocksDB is already super fast if you give it RAM to hold the hot portion of the data. Regading making it cloud native, you might want to check out https://github.com/rockset/rocksdb-cloud
s
Can I replace rocksdb in Venice with rocksdb cloud?
f
Good question... I suppose you could. I don't know the differences well enough, but I imagine it's pretty similar and so should be possible. There may be minimal effort to integrate it.
In general, I would say it is aligned with the Venice vision to plug in other storage engines than RocksDB. In the past we used another embedded KV store and migrated to Rocks, so it's certainly feasible. Currently Rocks is the only production-grade engine wired in out of the box, but I would love to have extra ones. PR welcome!
πŸ™Œ 1