wp
This commit is contained in:
@@ -7,8 +7,8 @@ import (
|
||||
"gordenko.dev/dima/qb/atree"
|
||||
"gordenko.dev/dima/qb/enc"
|
||||
"gordenko.dev/dima/qb/proto"
|
||||
"gordenko.dev/dima/qb/storage"
|
||||
"gordenko.dev/dima/qb/transform"
|
||||
"gordenko.dev/dima/qb/txlog"
|
||||
)
|
||||
|
||||
// AddMetric - create metric in map and set Xlock, rwad - append to queue
|
||||
@@ -83,7 +83,7 @@ func (s *Database) DoWork() {
|
||||
case tryAppendMeasuresReq:
|
||||
s.tryAppendMeasures(req)
|
||||
|
||||
case txlog.Changes:
|
||||
case storage.Changes:
|
||||
s.applyChanges(req) // all metrics only
|
||||
|
||||
case tryListCurrentValuesReq:
|
||||
@@ -132,7 +132,7 @@ func (s *Database) processMetricQueue(metricID uint32, metric *_metric) {
|
||||
s.tryGetMetric(req)
|
||||
|
||||
case tryAppendMeasuresReq:
|
||||
metric.StartAppendMeasures(req, s.txlog.Append)
|
||||
metric.StartAppendMeasures(req, s.storage.Append)
|
||||
|
||||
case tryDeleteMetricReq:
|
||||
s.startDeleteMetric(metric, req)
|
||||
@@ -294,7 +294,7 @@ func (s *Database) startDeleteMeasures(metric *_metric, req tryDeleteMeasuresReq
|
||||
// }
|
||||
}
|
||||
|
||||
func (s *Database) finAppendMeasures(rec txlog.AppendMeasuresSummary) {
|
||||
func (s *Database) finAppendMeasures(rec storage.AppendMeasuresSummary) {
|
||||
metric, ok := s.metrics[rec.MetricID]
|
||||
if !ok {
|
||||
qb.Abort(qb.NoMetricBug,
|
||||
@@ -322,7 +322,7 @@ func (s *Database) tryAppendMeasures(req tryAppendMeasuresReq) {
|
||||
metric.WaitQueue = append(metric.WaitQueue, req)
|
||||
return
|
||||
}
|
||||
metric.StartAppendMeasures(req, s.txlog.Append)
|
||||
metric.StartAppendMeasures(req, s.storage.Append)
|
||||
}
|
||||
|
||||
type tryRangeScanReq struct {
|
||||
@@ -408,25 +408,25 @@ func (s *Database) tryListCurrentValues(req tryListCurrentValuesReq) {
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
|
||||
func (s *Database) applyChanges(req txlog.Changes) {
|
||||
func (s *Database) applyChanges(req storage.Changes) {
|
||||
for _, untyped := range req.Records {
|
||||
switch rec := untyped.(type) {
|
||||
case txlog.AddedMetric:
|
||||
case storage.MetricAddRecord:
|
||||
s.applyAddMetric(rec)
|
||||
|
||||
case txlog.DeletedMetric:
|
||||
case storage.MetricDeleteRecord:
|
||||
s.deleteMetric(rec)
|
||||
|
||||
// case txlog.AppendedMeasure:
|
||||
// case storage.AppendedMeasure:
|
||||
// s.appendMeasure(rec)
|
||||
|
||||
case txlog.AppendMeasuresSummary:
|
||||
case storage.AppendMeasuresSummary:
|
||||
s.finAppendMeasures(rec)
|
||||
|
||||
// case txlog.AppendedMeasureWithOverflowExtended:
|
||||
// case storage.AppendedMeasureWithOverflowExtended:
|
||||
// s.appendMeasureAfterOverflow(rec)
|
||||
|
||||
case txlog.DeletedMeasures:
|
||||
case storage.DeletedMeasures:
|
||||
s.deleteMeasures(rec)
|
||||
}
|
||||
}
|
||||
@@ -436,7 +436,7 @@ func (s *Database) applyChanges(req txlog.Changes) {
|
||||
err := writeSnapshot(writeSnapshotIn{
|
||||
SnapshotNumber: s.snapshotNumber,
|
||||
Dir: s.dir,
|
||||
WriteBufferSize: 1 * 1024 * 1024, // 1mb
|
||||
WriteBufferSize: 4 * 1024 * 1024, // 1mb
|
||||
Metrics: s.metrics,
|
||||
FrozenIndexPagesCount: req.FrozenIndexPagesCount,
|
||||
IndexPageNumbers: req.IndexPageNumbers,
|
||||
@@ -451,7 +451,7 @@ func (s *Database) applyChanges(req txlog.Changes) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Database) applyAddMetric(rec txlog.AddedMetric) {
|
||||
func (s *Database) applyAddMetric(rec storage.MetricAddRecord) {
|
||||
// fix lock
|
||||
_, ok := s.metrics[rec.MetricID]
|
||||
if ok {
|
||||
@@ -470,28 +470,26 @@ func (s *Database) applyAddMetric(rec txlog.AddedMetric) {
|
||||
// delete(s.metricLockEntries, rec.MetricID)
|
||||
}
|
||||
|
||||
func (s *Database) addMetric(rec txlog.AddedMetric) {
|
||||
func (s *Database) addMetric(rec storage.MetricAddRecord) {
|
||||
var (
|
||||
values qb.ValueCompressor
|
||||
buffer = make([]byte, minBufferSize)
|
||||
)
|
||||
|
||||
if rec.MetricType == qb.Cumulative {
|
||||
values = enc.NewCumulativeDeltaCompressor(buffer, byte(rec.FracDigits))
|
||||
values = enc.NewCumulativeDeltaCompressor(byte(rec.FracDigits), buffer, 0)
|
||||
} else {
|
||||
values = enc.NewInstantDeltaCompressor(buffer, byte(rec.FracDigits))
|
||||
values = enc.NewInstantDeltaCompressor(byte(rec.FracDigits), buffer, 0)
|
||||
}
|
||||
|
||||
s.metrics[rec.MetricID] = &_metric{
|
||||
metricType: rec.MetricType,
|
||||
fracDigits: byte(rec.FracDigits),
|
||||
buffer: buffer,
|
||||
timestamps: enc.NewTimeDeltaCompressor(buffer),
|
||||
timestamps: enc.NewTimeDeltaCompressor(buffer, 0),
|
||||
values: values,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Database) deleteMetric(rec txlog.DeletedMetric) {
|
||||
func (s *Database) deleteMetric(rec storage.MetricDeleteRecord) {
|
||||
metric, ok := s.metrics[rec.MetricID]
|
||||
if !ok {
|
||||
qb.Abort(qb.NoMetricBug,
|
||||
@@ -552,7 +550,7 @@ func (s *Database) deleteMetric(rec txlog.DeletedMetric) {
|
||||
}
|
||||
delete(s.metrics, rec.MetricID)
|
||||
|
||||
// ADD in txlog
|
||||
// ADD in storage
|
||||
// if len(rec.FreePageNumbers) > 0 {
|
||||
// s.freeList.AddPages(rec.FreePageNumbers)
|
||||
// }
|
||||
@@ -562,7 +560,7 @@ func (s *Database) deleteMetric(rec txlog.DeletedMetric) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Database) deleteMeasures(rec txlog.DeletedMeasures) {
|
||||
func (s *Database) deleteMeasures(rec storage.DeletedMeasures) {
|
||||
metric, ok := s.metrics[rec.MetricID]
|
||||
if !ok {
|
||||
qb.Abort(qb.NoMetricBug,
|
||||
@@ -577,7 +575,7 @@ func (s *Database) deleteMeasures(rec txlog.DeletedMeasures) {
|
||||
}
|
||||
metric.DeleteMeasures()
|
||||
metric.XLock = false
|
||||
// FIX add in txlog
|
||||
// FIX add in storage
|
||||
// if len(rec.FreePageNumbers) > 0 {
|
||||
// s.freeList.AddPages(rec.FreePageNumbers)
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user