wp
This commit is contained in:
@@ -53,7 +53,10 @@ func (s *_metric) LastTimestamp() uint32 {
|
||||
return s.timestamps.LastTimestamp()
|
||||
}
|
||||
|
||||
func (s *_metric) DeleteMeasures() {
|
||||
func (s *_metric) OnMeasuresDeleteCommited(rec storage.MeasuresDeleteCommited) {
|
||||
//s.timestamps.Reset()
|
||||
//s.values.Reset()
|
||||
s.XLock = false
|
||||
// s.Timestamps.Renew()
|
||||
// s.Values.Renew()
|
||||
|
||||
@@ -61,7 +64,9 @@ func (s *_metric) DeleteMeasures() {
|
||||
// s.Since = 0
|
||||
// s.SinceValue = 0
|
||||
// s.Until = 0
|
||||
// s.UntilValue = 0
|
||||
s.indexLevelTails = nil
|
||||
s.lastPageNo = 0
|
||||
s.lastValue = 0
|
||||
}
|
||||
|
||||
// func (s *_metric) startAppendMeasures(req tryAppendMeasuresReq, sendToStorage func(storage.AppendedMeasures)) {
|
||||
@@ -197,12 +202,20 @@ func (s *_metric) StartAppendMeasures(req tryAppendMeasuresReq, tmp []byte, send
|
||||
//ResultCh: req.ResultCh,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (s *_metric) FinAppendMeasures(rec storage.MeasuresAppendWithGrowCommited) {
|
||||
func (s *_metric) OnMeasuresAppendCommited(rec storage.MeasuresAppendCommited) {
|
||||
// Видаляю state. Оригінальні Timestamps і Values вже мають останню версію
|
||||
s.capturedState = nil
|
||||
s.timestamps.ForgetCapturedState()
|
||||
s.values.ForgetCapturedState()
|
||||
}
|
||||
|
||||
func (s *_metric) OnMeasuresAppendWithGrowCommited(rec storage.MeasuresAppendWithGrowCommited) {
|
||||
// Видаляю state. Оригінальні Timestamps і Values вже мають останню версію
|
||||
s.capturedState = nil
|
||||
s.timestamps.ForgetCapturedState()
|
||||
s.values.ForgetCapturedState()
|
||||
|
||||
if rec.LastPageNo > 0 {
|
||||
s.lastPageNo = rec.LastPageNo
|
||||
|
||||
@@ -84,7 +84,7 @@ func (s *Database) DoWork() {
|
||||
s.tryAppendMeasures(req)
|
||||
|
||||
case storage.Changes:
|
||||
s.applyChanges(req) // all metrics only
|
||||
s.applyCommits(req) // all metrics only
|
||||
|
||||
case tryListCurrentValuesReq:
|
||||
s.tryListCurrentValues(req) // all metrics only
|
||||
@@ -294,14 +294,24 @@ func (s *Database) startDeleteMeasures(metric *_metric, req tryDeleteMeasuresReq
|
||||
// }
|
||||
}
|
||||
|
||||
func (s *Database) finAppendMeasures(rec storage.MeasuresAppendWithGrowCommited) {
|
||||
func (s *Database) onMeasuresAppendCommited(rec storage.MeasuresAppendCommited) {
|
||||
metric, ok := s.metrics[rec.MetricID]
|
||||
if !ok {
|
||||
qb.Abort(qb.NoMetricBug,
|
||||
fmt.Errorf("finAppendMeasures: metric %d not found",
|
||||
rec.MetricID))
|
||||
}
|
||||
metric.FinAppendMeasures(rec)
|
||||
metric.OnMeasuresAppendCommited(rec)
|
||||
}
|
||||
|
||||
func (s *Database) onMeasuresAppendWithGrowCommited(rec storage.MeasuresAppendWithGrowCommited) {
|
||||
metric, ok := s.metrics[rec.MetricID]
|
||||
if !ok {
|
||||
qb.Abort(qb.NoMetricBug,
|
||||
fmt.Errorf("finAppendMeasures: metric %d not found",
|
||||
rec.MetricID))
|
||||
}
|
||||
metric.OnMeasuresAppendWithGrowCommited(rec)
|
||||
}
|
||||
|
||||
type tryAppendMeasuresReq struct {
|
||||
@@ -408,26 +418,23 @@ func (s *Database) tryListCurrentValues(req tryListCurrentValuesReq) {
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
func (s *Database) applyChanges(req storage.Changes) {
|
||||
for _, untyped := range req.Records {
|
||||
func (s *Database) applyCommits(req storage.Changes) {
|
||||
for _, untyped := range req.Commits {
|
||||
switch rec := untyped.(type) {
|
||||
case storage.MetricAddRecord:
|
||||
s.applyAddMetric(rec)
|
||||
case storage.MetricAddCommited:
|
||||
s.onMetricAddCommited(rec)
|
||||
|
||||
case storage.MetricDeleteRecord:
|
||||
s.deleteMetric(rec)
|
||||
case storage.MetricDeleteCommited:
|
||||
s.onMetricDeleteCommited(rec)
|
||||
|
||||
// case storage.AppendedMeasure:
|
||||
// s.appendMeasure(rec)
|
||||
case storage.MeasuresAppendCommited:
|
||||
s.onMeasuresAppendCommited(rec)
|
||||
|
||||
case storage.MeasuresAppendWithGrowCommited:
|
||||
s.finAppendMeasures(rec)
|
||||
s.onMeasuresAppendWithGrowCommited(rec)
|
||||
|
||||
// case storage.AppendedMeasureWithOverflowExtended:
|
||||
// s.appendMeasureAfterOverflow(rec)
|
||||
|
||||
case storage.MeasuresDeleteRecord:
|
||||
s.deleteMeasures(rec)
|
||||
case storage.MeasuresDeleteCommited:
|
||||
s.onMeasuresDeleteCommited(rec)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -451,7 +458,7 @@ func (s *Database) applyChanges(req storage.Changes) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Database) applyAddMetric(rec storage.MetricAddRecord) {
|
||||
func (s *Database) onMetricAddCommited(rec storage.MetricAddCommited) {
|
||||
// fix lock
|
||||
_, ok := s.metrics[rec.MetricID]
|
||||
if ok {
|
||||
@@ -484,7 +491,7 @@ func (s *Database) addMetric(rec storage.MetricAddRecord) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Database) deleteMetric(rec storage.MetricDeleteRecord) {
|
||||
func (s *Database) onMetricDeleteCommited(rec storage.MetricDeleteCommited) {
|
||||
metric, ok := s.metrics[rec.MetricID]
|
||||
if !ok {
|
||||
qb.Abort(qb.NoMetricBug,
|
||||
@@ -555,7 +562,7 @@ func (s *Database) deleteMetric(rec storage.MetricDeleteRecord) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Database) deleteMeasures(rec storage.MeasuresDeleteRecord) {
|
||||
func (s *Database) onMeasuresDeleteCommited(rec storage.MeasuresDeleteCommited) {
|
||||
metric, ok := s.metrics[rec.MetricID]
|
||||
if !ok {
|
||||
qb.Abort(qb.NoMetricBug,
|
||||
@@ -568,7 +575,7 @@ func (s *Database) deleteMeasures(rec storage.MeasuresDeleteRecord) {
|
||||
fmt.Errorf("deleteMeasures: xlock not set for the metric %d",
|
||||
rec.MetricID))
|
||||
}
|
||||
metric.DeleteMeasures()
|
||||
metric.OnMeasuresDeleteCommited(rec)
|
||||
metric.XLock = false
|
||||
// FIX add in storage
|
||||
// if len(rec.FreePageNumbers) > 0 {
|
||||
|
||||
Reference in New Issue
Block a user