firestorm use the ParseKey() funcs to avoid unneeded value parsing
With this change, the row allocation also happens only once per loop, instead of once per item.
This commit is contained in:
parent
009d59222a
commit
7df07f94fa
|
@ -135,9 +135,10 @@ func (gc *GarbageCollector) cleanup() {
|
|||
termFreqStart := TermFreqIteratorStart(0, []byte{ByteSeparator})
|
||||
termFreqEnd := TermFreqIteratorStart(math.MaxUint16, []byte{ByteSeparator})
|
||||
|
||||
var tfr TermFreqRow
|
||||
dictionaryDeltas := make(map[string]int64)
|
||||
err = visitRange(reader, termFreqStart, termFreqEnd, func(key, val []byte) (bool, error) {
|
||||
tfr, err := NewTermFreqRowKV(key, val)
|
||||
err := tfr.ParseKey(key)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
@ -158,8 +159,9 @@ func (gc *GarbageCollector) cleanup() {
|
|||
}
|
||||
|
||||
// walk all the stored rows
|
||||
var sr StoredRow
|
||||
err = visitPrefix(reader, StoredKeyPrefix, func(key, val []byte) (bool, error) {
|
||||
sr, err := NewStoredRowKV(key, val)
|
||||
err := sr.ParseKey(key)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
|
|
@ -91,10 +91,11 @@ func (l *Lookuper) lookup(item *InFlightItem) {
|
|||
|
||||
prefix := TermFreqPrefixFieldTermDocId(0, nil, item.docID)
|
||||
logger.Printf("lookuper prefix - % x", prefix)
|
||||
var tfk TermFreqRow
|
||||
docNums := make(DocNumberList, 0)
|
||||
err = visitPrefix(reader, prefix, func(key, val []byte) (bool, error) {
|
||||
logger.Printf("lookuper sees key % x", key)
|
||||
tfk, err := NewTermFreqRowKV(key, val)
|
||||
err := tfk.ParseKey(key)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
|
|
@ -67,10 +67,11 @@ func (f *Firestorm) warmup(reader store.KVReader) error {
|
|||
|
||||
tfkPrefix := TermFreqIteratorStart(idField, nil)
|
||||
|
||||
var tfk TermFreqRow
|
||||
var lastDocId []byte
|
||||
lastDocNumbers := make(DocNumberList, 1)
|
||||
err = visitPrefix(reader, tfkPrefix, func(key, val []byte) (bool, error) {
|
||||
tfk, err := NewTermFreqRowKV(key, val)
|
||||
err := tfk.ParseKey(key)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user