0
0
Fork 0

Merge pull request #790 from mschoch/use-vellum-reset

update to use new vellum Reset API
This commit is contained in:
Marty Schoch 2018-03-01 10:06:38 -08:00 committed by GitHub
commit bbfda08cf7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 16 deletions

View File

@ -471,16 +471,11 @@ func persistDictionary(memSegment *mem.Segment, w *CountHashWriter, postingsLocs
varintBuf := make([]byte, binary.MaxVarintLen64)
var buffer bytes.Buffer
builder, err := vellum.New(&buffer, nil)
if err != nil {
return nil, err
}
for fieldID, fieldTerms := range memSegment.DictKeys {
if fieldID != 0 {
buffer.Reset()
}
// start a new vellum for this field
builder, err := vellum.New(&buffer, nil)
if err != nil {
return nil, err
}
dict := memSegment.Dicts[fieldID]
// now walk the dictionary in order of fieldTerms (already sorted)
@ -514,6 +509,13 @@ func persistDictionary(memSegment *mem.Segment, w *CountHashWriter, postingsLocs
if err != nil {
return nil, err
}
// reset buffer and vellum builder
buffer.Reset()
err = builder.Reset(&buffer)
if err != nil {
return nil, err
}
}
return rv, nil

View File

@ -180,16 +180,13 @@ func persistMergedRest(segments []*SegmentBase, dropsIn []*roaring.Bitmap,
var docTermMap [][]byte
var vellumBuf bytes.Buffer
newVellum, err := vellum.New(&vellumBuf, nil)
if err != nil {
return nil, 0, err
}
// for each field
for fieldID, fieldName := range fieldsInv {
if fieldID != 0 {
vellumBuf.Reset()
}
newVellum, err := vellum.New(&vellumBuf, nil)
if err != nil {
return nil, 0, err
}
// collect FST iterators from all active segments for this field
var newDocNums [][]uint64
@ -423,6 +420,13 @@ func persistMergedRest(segments []*SegmentBase, dropsIn []*roaring.Bitmap,
if err != nil {
return nil, 0, err
}
// reset vellum buffer and vellum builder
vellumBuf.Reset()
err = newVellum.Reset(&vellumBuf)
if err != nil {
return nil, 0, err
}
}
fieldDvLocsOffset := uint64(w.Count())