Comments (2)
I'm not sure what the right thing to do is. Perhaps just document: "you'll want to keep a reference to your keyspace, while you still have an open partition", or make it not allowed to keep a reference to a partition, after the keyspace has been dropped?
from fjall.
or make it not allowed to keep a reference to a partition, after the keyspace has been dropped
Yeah I am not sure how to handle it nicely. I don't think giving PartitionHandle
is that ergonomic, and just handing out short-lived handles is not feasible because that just makes every operation go through another RwLock, which I want to avoid.
The only thing I can think of is to keep track of open partitions in a separate RC-ed structure that references the keyspace, so that when the keyspace is dropped, it is still referenced. Then when all partitions are dropped at last, the RC drops to 0, the struct is dropped and thus the keyspace, too...
Perhaps just document: "you'll want to keep a reference to your keyspace, while you still have an open partition"
It should definitely be documented that the keyspace should ideally be kept around for the entire duration of the program, or at least as long as partitions are open...
from fjall.
Related Issues (20)
- level_ratio should be changeable retroactively
- Write with sync vs Write with flush only vs Write without any flushing
- Create axum-kv
- Create rocket-kv
- How to flush manually HOT 1
- Think about backup strategies HOT 1
- unexpected warning : shard.rs:106: Invalid batch: found batch start inside batch HOT 6
- [Tracking] Breaking changes in V2 HOT 2
- Concurrency control through SSI
- SingleDelete
- impl Drop flush for Journal, resolve cyclic Arcs on Drop HOT 1
- Level ratio is not recovered
- Recreating a deleted partition may be undefined behaviour HOT 2
- Correctly track lowest closed instant/snapshot seqno HOT 1
- Make fjall::WriteTransaction Send HOT 4
- Feature request: memory backend HOT 3
- Database reached a seemingly irrecoverable state HOT 5
- Lock version file to prevent multi-process access
- Insert-during-iterate deadlock
- Cull partition seqnos on journal rotation if possible
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 fjall.