Comments (5)
Hi!
i think you used the for-loop in a "wrong" way. You put a Next()-call at the initializing position. Looking at the godoc for the NewIterator
-function, it says
for it.Rewind(); it.Valid(); it.Next() {
...
}
So you can just put the Rewind()-call inside the head of the for-loop.
Still wondering, why a new created iterator must be rewinded, following does not work too, if the Rewind()-call is missing:
it.Rewind()
for it.Valid() {
kvItem = it.Item()
fmt.Println("k", string(kvItem.Key()), "v", string(kvItem.Value()), "c", kvItem.Counter())
it.Next()
}
I would expect a new iterator is just usable after creating it.
from badger.
The reason Rewind
must be called, is because we need to know where to start prefetching from. One could use Seek
instead of Rewind
. In that case, if we automatically start prefetching from the beginning, all that work would need to be abandoned and would cause delays in doing the Seek
call.
In short, the reason to specify the initial point is that we do extra work in the background; and we need to know where to begin.
Hope that answers your query.
from badger.
Well, the idea was to implement a custom Seek but as far as I understood it's not possible without calling Rewind.
from badger.
You can call Seek
directly, then you don't need to call Rewind
.
from badger.
Yes, but you can't build a Seek like Seek([]byte("contains")). You can only seek the whole key and that's my issue. I thought it would be possible to build a custom seek without Rewind.
from badger.
Related Issues (20)
- [Documentation]: absent documentation about v4 HOT 3
- [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
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.