Live data from Hacker News

An embedded database written in Rust

github.com

61–70 of 74 posts

Re: An embedded database written in Rust

#61
"don't wake up operators. bring reliability techniques from academia into real-world practice."

What does he mean here? Don't wake up people with operational problems? Or does "wake up" refer to a scheduling strategy?

Either way, what are these techniques?

Re: An embedded database written in Rust

#62

Does rust compile reliably to embedded targets yet? Last time I checked there were a lot of problems with armv5.

It's been a focus of the team, and been getting better. With efforts being made to move some external tools into the mainline toolchains. Last I checked it was possible, but still a bit cumbersome.

P.S. Really looking forward to writing Rust on AVRs.

Re: An embedded database written in Rust

#63

"don't wake up operators. bring reliability techniques from academia into real-world practice." What does he mean here? Don't wake up people with operational problems? Or does "wake up" refer to a scheduling strategy? Either way, what are these techniques?

I took that as a reference to pager duty.

Re: An embedded database written in Rust

#64

I see that MVCC is a planned feature. Why would you need MVCC for an embedded database? It seems like unnecessary overhead that conflicts with the performance goals.

In Rust abstractions are free.

Some are (more or less) free, others are not. Rust simply gives you some great tools to make the choices yourself. The biggest win tends to be that you can get away without a GC, but still keep the guarantee that you're not leaking memory by forgetting to collect it.

Re: An embedded database written in Rust

#65

"don't wake up operators. bring reliability techniques from academia into real-world practice." What does he mean here? Don't wake up people with operational problems? Or does "wake up" refer to a scheduling strategy? Either way, what are these techniques?

It means pay more attention to reliability than pop infrastructure and internet companies (who can offset poor reliability with human attention or intentionally deprioritize it to sell more support contacts) tend to put into these things. Specifically, exhaustive concurrency testing of lock-free algorithm interleavings via ptrace driven scheduling, model-based testing in combination with fault injection, ALICE-style file correctness testing, and for the various distributed modules that sit on top, network simulation combined with lineage driven fault injection. This is all very much a work in progress, and I'd love to work with more people on it!

Re: An embedded database written in Rust

#66

Earlier quoted context omitted.

In Rust abstractions are free.

Some are (more or less) free, others are not. Rust simply gives you some great tools to make the choices yourself. The biggest win tends to be that you can get away without a GC, but still keep the guarantee that you're not leaking memory by forgetting to collect it.

Rust doesn't guarantee freedom of leaks, as leaking is memory-safe.

Re: An embedded database written in Rust

#67

Earlier quoted context omitted.

Some are (more or less) free, others are not. Rust simply gives you some great tools to make the choices yourself. The biggest win tends to be that you can get away without a GC, but still keep the guarantee that you're not leaking memory by forgetting to collect it.

Rust doesn't guarantee freedom of leaks, as leaking is memory-safe.

To be fair, I think the way GP worded it might still be accurate; they said that you wouldn't leak by forgetting to collect it. I took that as a statement about not needing to manually free things than an assertion that Rust guarantees no memory leaks (which can still occur from things like reference cycles).

Re: An embedded database written in Rust

#68
post #32

Nice with more developments in embedded databases! Would be interesting with a comparison with mentat [1]. Do you plan to support any query langauge such as datalog, like mentat? [1] https://github.com/mozilla/mentat

Yeah, I'm curious about using sled as a more ssd friendly storage engine for mentat. I'm just starting to experiment with datalog implementations, but I think by having harmony between the storage engine, query language, and hardware properties we can make a really compelling stateful systems. If this is something that interests you, I'd love to work with more people on this.

Sounds exciting!

Re: An embedded database written in Rust

#69
post #32

Nice with more developments in embedded databases! Would be interesting with a comparison with mentat [1]. Do you plan to support any query langauge such as datalog, like mentat? [1] https://github.com/mozilla/mentat

Yeah, I'm curious about using sled as a more ssd friendly storage engine for mentat. I'm just starting to experiment with datalog implementations, but I think by having harmony between the storage engine, query language, and hardware properties we can make a really compelling stateful systems. If this is something that interests you, I'd love to work with more people on this.

Sounds very exciting!

Re: An embedded database written in Rust

#70
post #58
post #6

How does it compare relatively to dgraph's Badger library?

Considering this has not even exited alpha, it stands to reason that Badger is a fair bit more robust in performance and failure modes.

There is zero reason behind this assumption.
Post reply on HN