Does Rust have chance in database implementation?


#1

Since I/O is the bottleneck of traditional relation database, Rust, however, is good at paralell computation and safety problem. Is it feasible to rewrite some current DBMS’s like SQLite to support higher concurrency?


#2

Someone is probably already working on a database in Rust. For now it’s probably just a toy project, yes, but a lot of popular crates started as toy projects or experiments and now they’re integral to the ecosystem.

Rust isn’t magical. It won’t automatically make your program faster (unless your program was written in an interpreted language without a JIT, like Python or Ruby), and it won’t decide for you how to split your program’s work up into different threads.

What Rust does do, is it makes it much easier to reason about the safety of parallel programs. Mutations are synchronized, either with mutexes or atomic operations, and data that may be invalidated asynchronously isn’t allowed to move across thread boundaries.

These properties make Rust an excellent option for applications that might otherwise be written in C or C++, where the programmer would be the one responsible for making sure that their program doesn’t do anything bad.


#3

IO is often not the bottleneck of traditional relational databases. It’s possible that IO is a bottleneck in situations where the database has been misconfigured. If the database has been misconfigured, then Rust won’t help you.

Otherwise, what @DroidLogician said is spot on.