Use roaring.Bitmap.FromBuffer(), remove memory alignment.

pull/10122/head
Ben Johnson 2018-07-30 13:42:13 +00:00
parent 66920a181a
commit 5612511a8f
No known key found for this signature in database
GPG Key ID: 048846D1E3EB6818
5 changed files with 34 additions and 33 deletions

View File

@ -186,11 +186,11 @@ func (p IndexFiles) CompactTo(w io.Writer, sfile *tsdb.SeriesFile, m, k uint64,
}
// Ensure block is word aligned.
if offset := n % 8; offset != 0 {
if err := writeTo(bw, make([]byte, 8-offset), &n); err != nil {
return n, err
}
}
// if offset := n % 8; offset != 0 {
// if err := writeTo(bw, make([]byte, 8-offset), &n); err != nil {
// return n, err
// }
// }
// Write measurement block.
t.MeasurementBlock.Offset = n
@ -297,11 +297,11 @@ func (p IndexFiles) writeTagsetTo(w io.Writer, name []byte, info *indexCompactIn
}
// Ensure block is word aligned.
if offset := (*n) % 8; offset != 0 {
if err := writeTo(w, make([]byte, 8-offset), n); err != nil {
return err
}
}
// if offset := (*n) % 8; offset != 0 {
// if err := writeTo(w, make([]byte, 8-offset), n); err != nil {
// return err
// }
// }
kitr, err := p.TagKeyIterator(name)
if err != nil {

View File

@ -847,11 +847,11 @@ func (f *LogFile) CompactTo(w io.Writer, m, k uint64, cancel <-chan struct{}) (n
}
// Ensure block is word aligned.
if offset := n % 8; offset != 0 {
if err := writeTo(bw, make([]byte, 8-offset), &n); err != nil {
return n, err
}
}
// if offset := n % 8; offset != 0 {
// if err := writeTo(bw, make([]byte, 8-offset), &n); err != nil {
// return n, err
// }
// }
// Write measurement block.
t.MeasurementBlock.Offset = n
@ -932,11 +932,11 @@ func (f *LogFile) writeTagsetTo(w io.Writer, name string, info *logFileCompactIn
}
// Ensure block is word aligned.
if offset := (*n) % 8; offset != 0 {
if err := writeTo(w, make([]byte, 8-offset), n); err != nil {
return err
}
}
// if offset := (*n) % 8; offset != 0 {
// if err := writeTo(w, make([]byte, 8-offset), n); err != nil {
// return err
// }
// }
enc := NewTagBlockEncoder(w)
var valueN int

View File

@ -461,7 +461,7 @@ func (e *MeasurementBlockElem) UnmarshalBinary(data []byte) error {
if e.flag&MeasurementSeriesIDSetFlag == 0 {
e.series.data, data = data[:sz], data[sz:]
} else {
data = memalign(data)
// data = memalign(data)
e.seriesIDSet = tsdb.NewSeriesIDSet()
if err = e.seriesIDSet.UnmarshalBinaryUnsafe(data[:sz]); err != nil {
return err
@ -644,11 +644,11 @@ func (mw *MeasurementBlockWriter) writeMeasurementTo(w io.Writer, name []byte, m
}
// Word align bitmap data.
if offset := (*n) % 8; offset != 0 {
if err := writeTo(w, make([]byte, 8-offset), n); err != nil {
return err
}
}
// if offset := (*n) % 8; offset != 0 {
// if err := writeTo(w, make([]byte, 8-offset), n); err != nil {
// return err
// }
// }
nn, err := mw.buf.WriteTo(w)
*n += nn

View File

@ -426,7 +426,7 @@ func (e *TagBlockValueElem) unmarshal(buf []byte) {
if e.flag&TagValueSeriesIDSetFlag == 0 {
e.series.data, buf = buf[:sz], buf[sz:]
} else {
buf = memalign(buf)
// buf = memalign(buf)
e.seriesIDSetData, buf = buf, buf[sz:]
}
@ -646,11 +646,11 @@ func (enc *TagBlockEncoder) EncodeValue(value []byte, deleted bool, ss *tsdb.Ser
}
// Word align bitmap data.
if offset := (enc.n) % 8; offset != 0 {
if err := writeTo(enc.w, make([]byte, 8-offset), &enc.n); err != nil {
return err
}
}
// if offset := (enc.n) % 8; offset != 0 {
// if err := writeTo(enc.w, make([]byte, 8-offset), &enc.n); err != nil {
// return err
// }
// }
nn, err := enc.buf.WriteTo(enc.w)
if enc.n += nn; err != nil {

View File

@ -208,7 +208,8 @@ func (s *SeriesIDSet) UnmarshalBinary(data []byte) error {
func (s *SeriesIDSet) UnmarshalBinaryUnsafe(data []byte) error {
s.Lock()
defer s.Unlock()
return s.bitmap.UnmarshalBinaryUnsafe(data)
_, err := s.bitmap.FromBuffer(data)
return err
}
// WriteTo writes the set to w.