Comments (5)
Run twice
fmt.Println("testBadger called")
opts := badger.DefaultOptions
dir := "/Users/stef/tmp"
opts.Dir = dir
opts.ValueDir = dir
b, err := badger.NewKV(&opts)
if err != nil {
fmt.Println("error")
return
}
key := []byte("key")
item := badger.KVItem{}
b.Get(key, &item)
if item.Value() == nil {
fmt.Println("non existent key")
val := []byte("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789FOOBARZOGZOG")
b.Set(key, val)
fmt.Println("key value has been inserted")
b.Get(key, &item)
fmt.Println("getting the value")
fmt.Println(string(item.Value()))
b.Delete(key)
fmt.Println("key value has been deleted")
fmt.Println("getting the value again")
b.Get(key, &item)
fmt.Println(item.Value())
} else {
fmt.Println("key exists")
fmt.Println(string(item.Value()))
}
b.Close()
from badger.
Hi @stephane-martin, thanks for the bug report. I have submitted a fix and this shouldn't be a problem anymore.
from badger.
The fix works, thanks!
from badger.
I'm actually not sure why this is the case. If you close cleanly, then Badger should not have to replay the value log, which means the delete markers in value log won't be required.
There's something else going on here, which is causing value log to be replayed even when Badger is closed properly. We should look into why that is happening.
from badger.
We update valuePointer even if Fid and Offset are 0 and it has length and we replay from end of last entry instead of start so we don't need to have delete markers anymore.
from badger.
Related Issues (20)
- [BUG]: return odd keys bytes when scaning with prefix HOT 1
- [QUESTION]: Why badger use WAL? HOT 2
- [QUESTION]: How can I limit the disk size used by Badger or the number of keys that Badger can store through parameter configuration in the program? HOT 4
- Hi,badger-rs, a rust implements version has release [QUESTION]: <Title>
- [BUG]: Panic from a lot of DELs and SETs with very large keys
- [BUG]: when compression is none block cache will cache the table
- [QUESTION]: Batch write is partially committed when badger crashes
- [QUESTION]: Search keys by regular expressions HOT 1
- [BUG]: arm64 inconsistencies HOT 1
- [QUESTION]: Is Badger rsync friendly during db in use ? HOT 3
- How to achieve multiple process sharing and open a db
- [BUG]: compilation fails with `GOOS=aix` (Unix) HOT 1
- Memory crash
- [BUG]: RunValueGC HOT 1
- [FEATURE]: Storing values larger than 2 GB HOT 2
- [BUG]: Panic, help!
- [FEATURE]: <TTL Event>
- update ristretto HOT 2
- [BUG]: db.Backup maybe see the `partial write` in one transaction
- [QUESTION]: Can transactions be seen out-of-order within a single Go application?
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 badger.