-
Notifications
You must be signed in to change notification settings - Fork 89
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
VIP-3: Rust Server Read Path #604
Conversation
So, I won't belabor the rust vs. C++ conversation, I don't think I'm really qualified to die on either hill. But I do wonder, Rocksdb is written in C++. Today, the Venice team is far more java oriented. If we go for a native read path, we're going to have to build a competency in some non managed language in the team. It strikes me that if we build that competency in the same language that rocksdb is implemented, then we'd gain more introspection within the team in that layer. Admittedly, the situations where we're digging through the guts of rocksdb are few and far in between, but maybe that would start to change? I kind of liken this to our Kafka clients. We're not doing big changes in the clients, but by being able to read the code and understanding how the clients/Kafka works, we've been able to make design decisions more informed based on that. |
Hmm... it is true that if the team gains more hands-on experience with C++, we could better understand the RocksDB codebase than today. But I am not sure that this incremental benefit (meaning: we're not starting from zero understanding today) is sufficiently important to warrant the downsides. The downsides being that the learning curve and productivity of C++ are generally considered to be worse than Rust's. |
When I read RocksDB code, my feeling is that I can certainly understand the code even written in C++, and I think the difficult part is the design principle and architecture of RocksDB. |
This could hold true, but not sure how deep you folks want to dig into RocksDB, I doubt y'all will do any development on RocksDB. Even so, if the plan using C++ here so the team will have a more hands on experience in C++ because that is what RocksDB is written in, then in my opinion Rust is still a better option as Rust programmers tend to treat and write C++ code in a Rust way vs the old style C++ way. Where as onboarding engineers who previously only used Java or Python, they will write C++ code the Java way which will lead into problems w/ memory leaks and safety. The Rust -> Modern C++ transition is quicker and the safer one. But that is even IF the team decides to work on RocksDB code |
Love the proposal, don't have much to say from a architecture, justification and a higher level aspect it looks promising. Would love to see how things plan to be implemented, from the choice of the gRPC server to choice of how you folks decide to build the rust server, lots of promising things in that space, especially for clean, robust and explicit external APIs that insure idiomatic Rust code |
Also tweaked the VIP template, main VIP landing page and VIP-1 in order to improve the navigation. Added guidance on how to embed images in the doc_guide.
…stion for quotas.
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.
LGTM
Also tweaked the VIP template, main VIP landing page and VIP-1 in order to improve the navigation.
Added guidance on how to embed images in the doc_guide.
The rendered page for this VIP can be seen here: https://felixgv.github.io/venice/docs/proposals/vip-3