Comments (6)
Nice catch!
We do currently document the potential for a call to Store::write() to block on an extant Writer (in the Basic Usage example and the Store::write() API reference). However, we don't currently document that Rkv::open_or_create() will also block on an extant Writer, given the details of the underlying implementation. And that'll trip up API consumers. So we should definitely document it (and perhaps research ways to fix or work around the limitation, if it's feasible to do so).
from rkv.
This also reminds me that we should also allow a store to be opened in the read_only mode. Doing so allows the consumer to open the store to read while there is an in-flight write transaction on the same store.
This might require some changes in lmdb-rs.
from rkv.
This might require some changes in lmdb-rs.
Indeed. I've not had luck engaging with the lmdb-rs project recently. I have several PRs pending, the first two of which are now two months old. And you've received no response to your issue danburkert/lmdb-rs#33. So I think we're going to need to fork the project and maintain our own fork, at least for the time being, in order to make this and other changes to it.
from rkv.
Agreed, let's fork it for now. Its code looks pretty neat and well-organized, should be easy for us to maintain and develop.
from rkv.
Agreed, let's fork it for now. Its code looks pretty neat and well-organized, should be easy for us to maintain and develop.
Ok, I've forked it to https://github.com/mozilla/lmdb-rs/ and added you as a collaborator!
from rkv.
Close it via #61
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`.
- Trying to understand general goal/state/bugs of the project HOT 2
- 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.