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)
- [FEATURE]: Storing values larger than 2 GB HOT 4
- [BUG]: Panic, help! HOT 1
- [FEATURE]: <TTL Event> HOT 1
- update ristretto HOT 5
- [BUG]: db.Backup maybe see the `partial write` in one transaction HOT 2
- [QUESTION]: Can transactions be seen out-of-order within a single Go application? HOT 1
- loop run backup, out of memory HOT 1
- [FEATURE]: Allow holding back specific timestamps HOT 1
- [BUG]: serializable behavior is broken HOT 6
- [BUG]: Corrupt and lost data HOT 1
- [Documentation]: The description of the incremental backup method is misleading
- [FEATURE]: Stream maxStreamSize support change
- [FEATURE]: Substitute the deprecated "github.com/golang/protobuf" for "google.golang.org/protobuf" replacement
- panic: runtime error: slice bounds out of range [:2165545518] with capacity 158 HOT 1
- [FEATURE]: two helper methods, IsLocked() and IsDB()
- [BUG]: Empty slice is returned as `nil`
- [BUG]: <iterator cpu high>
- d.Backup() is 100% read IO ! HOT 1
- [QUESTION]: badger transaction lock range, when mutilple routines accessing/updating some key
- confusion about entry.ExpiresAt
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.