Comments (2)
The Open and Recover calls seem to accomplish the same thing (opening a database) with separate limitations; the Open calls can create a database but not open a corrupt one, while Recover can open a corrupt database (for specific values of corrupt) but not create one.
Recover is expensive, it scans all tables for corruption and rebuilding it if necessary (table scans also needed in order to extract latest sequence number).
Assuming one always wants to make a best effort to open a database, is best practice to use Open and retry with Recover if Open failed? Or start with Recover and use Open if the db did not exist?
Open and retry with Recover is the way to go. Open will return error with type of ErrCorrupted if it fails due to corruption.
Or else? What is the risk/downside of exiting abruptly without close - corruption, or just a non-compact database or similar? Will that be fixed on open, or only on recover?
Exiting abruptly without close should not cause corruption. But it is a best practice to close the DB before exiting.
from goleveldb.
Gotcha. Thanks for clarifying.
from goleveldb.
Related Issues (20)
- Nil pointer in leveldb
- Importance of db.Close() HOT 1
- Restart goleveldb takes long time to run HOT 8
- support wasm
- Difference between github.com/golang/leveldb and syndtr/goleveldb HOT 2
- batch merge in Write Operator
- feasible ways to bailout of blocked .Get call
- Difference between iterating over subset with range and Seek-then-Iterate?
- starting ABCI with Tendermint Error: failed to initialize database: file missing, Is this a problem with leveldb,How to deal with it HOT 2
- Abandoned / Maintained? HOT 3
- Browser indexeddb in golang / wasm
- Does the 【Get】 method support * and ? fuzzy matching HOT 1
- long time no update release HOT 3
- Bad result in find by prefix
- Large Manifest file is repeatedly re-created HOT 2
- Locking the DB
- panic in `db.Stats()` during `db.Close()`
- data race
- some node will pass to f() function many times, is this a bug or a feature?
- slice bounds out of range [:18014398510996847] with capacity 4194304
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 goleveldb.