Remove leaky Appender abstraction for hashedAppend

pull/5805/head
Fabian Reinartz 2017-03-06 14:27:33 +01:00
parent 87d270fe11
commit 50791a412e
2 changed files with 2 additions and 17 deletions

15
db.go
View File

@ -459,19 +459,6 @@ func (a *dbAppender) Add(lset labels.Labels, t int64, v float64) (uint64, error)
return ref | (uint64(h.generation) << 40), nil return ref | (uint64(h.generation) << 40), nil
} }
func (a *dbAppender) hashedAdd(hash uint64, lset labels.Labels, t int64, v float64) (uint64, error) {
h, err := a.appenderFor(t)
if err != nil {
return 0, err
}
ref, err := h.hashedAdd(hash, lset, t, v)
if err != nil {
return 0, err
}
a.samples++
return ref | (uint64(h.generation) << 40), nil
}
func (a *dbAppender) AddFast(ref uint64, t int64, v float64) error { func (a *dbAppender) AddFast(ref uint64, t int64, v float64) error {
// We store the head generation in the 4th byte and use it to reject // We store the head generation in the 4th byte and use it to reject
// stale references. // stale references.
@ -809,7 +796,7 @@ func (a *partitionedAppender) Add(lset labels.Labels, t int64, v float64) (uint6
h := lset.Hash() h := lset.Hash()
p := h >> (64 - a.db.partitionPow) p := h >> (64 - a.db.partitionPow)
ref, err := a.partitions[p].hashedAdd(h, lset, t, v) ref, err := a.partitions[p].Add(lset, t, v)
if err != nil { if err != nil {
return 0, err return 0, err
} }

View File

@ -223,10 +223,8 @@ type refdSample struct {
} }
func (a *headAppender) Add(lset labels.Labels, t int64, v float64) (uint64, error) { func (a *headAppender) Add(lset labels.Labels, t int64, v float64) (uint64, error) {
return a.hashedAdd(lset.Hash(), lset, t, v) hash := lset.Hash()
}
func (a *headAppender) hashedAdd(hash uint64, lset labels.Labels, t int64, v float64) (uint64, error) {
if ms := a.get(hash, lset); ms != nil { if ms := a.get(hash, lset); ms != nil {
return uint64(ms.ref), a.AddFast(uint64(ms.ref), t, v) return uint64(ms.ref), a.AddFast(uint64(ms.ref), t, v)
} }