Comments (2)
Is this project a higher-level abstraction/ORM around lmdb-rs that aims to eventually support multiple DBs?
My intent in writing it was to provide a safe, typed abstraction that smoothed off many of the sharp edges of LMDB but preserved its performance.
I'm sure some of the goals have shifted over time (e.g., rkv now seems to support multiple backends!), but I believe those are still the core. @victorporof and @mykmelez can likely comment more.
Are the bugs corrupting the DB in this repo or in lmdb-rs (it's hard to tell since they're tracked in bugzilla rather than on github) or are these fundamental problems with LMDB itself?
They look like crashes in LMDB itself; I would be surprised if lmdb-rs would behave any differently if your own code called it instead of rkv, and in theory that is also true if you used mdb.c
.
The two public-visible bugs map to these in LMDB:
https://www.openldap.org/lists/openldap-bugs/201410/msg00051.html
https://www.openldap.org/its/index.cgi/Incoming?id=9037;selectid=9037
How likely am I to get bitten by the crashes/bugs you mention in the use case I described?
I suspect that you will not; if you control your key length, filesystem, etc. then your system is a great deal more predictable than Firefox running on millions of end-user computers and operating systems and filesystems.
https://bugzilla.mozilla.org/show_bug.cgi?id=1596063 is tracking three crashes. One has occurred once, one is "low volume" but a startup crash, and one is non-public.
from rkv.
I don't have much to add beyond what @rnewman said. As he noted, the crashes in question look like crashes in LMDB, although I haven't been able to absolutely confirm that. Nevertheless, it's unlikely that you'll experience them, unless you happen to be distributing software to tens of millions of users running a variety of often-archaic versions of popular desktop operating systems.
As for the goals, as far as I know, they remain the same at a high level as @rnewman stated. However, I haven't been involved much since @victorporof took over primary responsibility for the project, so he's the authoritative source for info about its goals and direction.
from rkv.
Related Issues (20)
- Expose NotFound as a specific StoreError HOT 1
- Expose open_with_permissions
- Have rkv::error::StoreError implement std::error::Error HOT 1
- Consider adding a `Value` type for `u8` and `u128`.
- Implement closing of stores via Manager HOT 2
- Reverse iterators
- lmdb::Error and semantic versioning
- Potential performance issue: using serde's generic sequence (de)serialization instead of serde's `bytes` support
- Using RKV inside struct implementation HOT 4
- Ensure backwards-compatibility for bincode-serialized data HOT 3
- Should an empty file be considered invalid?
- Travis CI free usage ends Dec 3; mozilla repos should switch to other CI platforms
- Examples on how to iterate backwards?
- Run cargo audit in CI
- No details for the LMDB crashes mentioned in the README HOT 7
- Remove LMDB backend HOT 2
- Build is failing on Rust beta/nightly HOT 1
- Make sure there is no parallel file write by `write_to_disk`
- Replace set_discard_if_corrupted with a set_corruption_recovery_strategy
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rkv.