I don't want to be dismissive but how much of this success belongs to the team of rock solid senior engineers with enough experience under their belt rather than rewrite in Rust?
Rust – A hard decision pays off
11–20 of 386 posts
Re: Rust – A hard decision pays off
#12Why not try leveldb. We're doing random reads of 170,000 vectors (/130M) a second. No startup needed.
Re: Rust – A hard decision pays off
#13Maybe it’s just me but it seems irresponsible to move your entire team to a programming language none of them knows. Rust is great, but modern C++ is great too.
Great in the way that Alexander the Great was great. Achieved big things and killed a lot of people.
Though in the case of C++ they're just dead inside.
Re: Rust – A hard decision pays off
#14Rust deserves mention in the title only if actually getting it done in Rust was particularly difficult.
Re: Rust – A hard decision pays off
#15I don't want to be dismissive but how much of this success belongs to the team of rock solid senior engineers with enough experience under their belt rather than rewrite in Rust?
Re: Rust – A hard decision pays off
#16> ..complex runtime issues which were almost impossible to reproduce or isolate > That’s when internal murmurs about a complete rewrite started brewing… > We decided to move our entire codebase to Rust > there was still one minor problem - no one on the team knew Rust "We have runtime issues so we will fix them by a complete rewrite in a language that no one on the team knows." I would not call that a "hard decision"…
Re: Rust – A hard decision pays off
#17Maybe it’s just me but it seems irresponsible to move your entire team to a programming language none of them knows. Rust is great, but modern C++ is great too.
Based on my experiences, I would agree. There seems to be a very important difference between my experiences, which probably align with most of the industry, and the Pinecone team. My career has been working with average developers doing ordinary business and internet things. Stuff that takes organization and teamwork, but not necessarily advanced or esoteric knowledge. So the COBOL programmers that went to the "Java in 21 Days" training that I consulted with, or the C# programmers who went with Go, they did poor-to-OK, but that was Good Enough.
The Pinecone team, though. They were already writing C/C++ to solve Hard Problems. As experienced programmers, they probably already understood the landscape of systems languages with pointers and having to manage their own memory. Rust, while imposing, would not be a huge leap for them.
Another aspect worth noting: they did they re-write incrementally, never completely abandoning the existing system. At least it seems so. I'll be interested in seeing the presentation from the upcoming talk about the rewrite that's mentioned in the story.
Re: Rust – A hard decision pays off
#18So I was one of the 3 hackers who wrote the LSM that predated Rocks at FB, and as a result I distinctly remember when Rocks overtook it in features by trading off performance, and again when it met and exceeded the performance while keeping the greater capability. RocksDB kicks ass and has for a long time, I’d recommend it to anyone in the market for that sort of thing. FAISS is also great, and has been for years. I…
The original title appears to be “Inside the Pinecone”, but seeing as they submitted it themselves I’m guessing they wanted the uptick on the Rust.
The article itself doesn’t discuss their transition to Rust until the end. So I wouldn’t say they led with it originally, but perhaps didn’t get traction on the original title.
Re: Rust – A hard decision pays off
#19I don't want to be dismissive but how much of this success belongs to the team of rock solid senior engineers with enough experience under their belt rather than rewrite in Rust?
I would let the same team of "rock solid senior engineers" be the judge of that. They seem to think it mattered significantly enough.
Re: Rust – A hard decision pays off
#20I think Rust is really shaping up to be in a sweet spot.
One thing that is not talked about enough with Rust, is that you do not need to start with fighting the borrow checker from day one.
Making copies and using Rc can bypass a lot of the trickier parts of the borrow checker and still allow you to access much of the benefits of Rust in terms of performance and correctness, especially compared to a dynamic language like Python.
As you get more experience, you can then use references and other techniques to eliminated unnecessary copies, etc.