wp
This commit is contained in:
@@ -352,6 +352,11 @@ func (s *Database) tryAppendMeasure(req tryAppendMeasureReq) {
|
||||
s.startAppendMeasure(metric, req, lockEntry)
|
||||
}
|
||||
|
||||
type ReadBound struct {
|
||||
ValuesPos int
|
||||
ValuesLastValue float64
|
||||
}
|
||||
|
||||
func (s *Database) startAppendMeasure(metric *_metric, req tryAppendMeasureReq, lockEntry *metricLockEntry) {
|
||||
if req.Timestamp <= metric.Until {
|
||||
req.ResultCh <- tryAppendMeasureResult{
|
||||
@@ -466,8 +471,7 @@ func (s *Database) appendMeasure(rec txlog.AppendedMeasure) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Database) appendMeasures(extended txlog.AppendedMeasuresExtended) {
|
||||
rec := extended.Record
|
||||
func (s *Database) appendMeasures(rec txlog.AppendedMeasures) {
|
||||
metric, ok := s.metrics[rec.MetricID]
|
||||
if !ok {
|
||||
diploma.Abort(diploma.NoMetricBug,
|
||||
@@ -500,10 +504,8 @@ func (s *Database) appendMeasures(extended txlog.AppendedMeasuresExtended) {
|
||||
metric.UntilValue = measure.Value
|
||||
}
|
||||
|
||||
if !extended.HoldLock {
|
||||
lockEntry.XLock = false
|
||||
s.doAfterReleaseXLock(rec.MetricID, metric, lockEntry)
|
||||
}
|
||||
lockEntry.XLock = false
|
||||
s.doAfterReleaseXLock(rec.MetricID, metric, lockEntry)
|
||||
}
|
||||
|
||||
func (s *Database) appendMeasureAfterOverflow(extended txlog.AppendedMeasureWithOverflowExtended) {
|
||||
@@ -544,10 +546,8 @@ func (s *Database) appendMeasureAfterOverflow(extended txlog.AppendedMeasureWith
|
||||
s.freeList.DeleteReservedPages(rec.ReusedIndexPages)
|
||||
}
|
||||
|
||||
if !extended.HoldLock {
|
||||
lockEntry.XLock = false
|
||||
s.doAfterReleaseXLock(rec.MetricID, metric, lockEntry)
|
||||
}
|
||||
lockEntry.XLock = false
|
||||
s.doAfterReleaseXLock(rec.MetricID, metric, lockEntry)
|
||||
}
|
||||
|
||||
type tryAppendMeasuresReq struct {
|
||||
@@ -880,7 +880,7 @@ func (s *Database) applyChanges(req txlog.Changes) {
|
||||
case txlog.AppendedMeasure:
|
||||
s.appendMeasure(rec)
|
||||
|
||||
case txlog.AppendedMeasuresExtended:
|
||||
case txlog.AppendedMeasures:
|
||||
s.appendMeasures(rec)
|
||||
|
||||
case txlog.AppendedMeasureWithOverflowExtended:
|
||||
@@ -1019,11 +1019,8 @@ func (s *Database) deleteMetric(rec txlog.DeletedMetric) {
|
||||
delete(s.metrics, rec.MetricID)
|
||||
delete(s.metricLockEntries, rec.MetricID)
|
||||
|
||||
if len(rec.FreeDataPages) > 0 {
|
||||
s.freeList.AddPages(rec.FreeDataPages)
|
||||
}
|
||||
if len(rec.FreeIndexPages) > 0 {
|
||||
s.freeList.AddPages(rec.FreeIndexPages)
|
||||
if len(rec.FreePageNumbers) > 0 {
|
||||
s.freeList.AddPages(rec.FreePageNumbers)
|
||||
}
|
||||
|
||||
if len(addMetricReqs) > 0 {
|
||||
@@ -1053,11 +1050,8 @@ func (s *Database) deleteMeasures(rec txlog.DeletedMeasures) {
|
||||
}
|
||||
metric.DeleteMeasures()
|
||||
lockEntry.XLock = false
|
||||
if len(rec.FreeDataPages) > 0 {
|
||||
s.freeList.AddPages(rec.FreeDataPages)
|
||||
}
|
||||
if len(rec.FreeDataPages) > 0 {
|
||||
s.freeList.AddPages(rec.FreeIndexPages)
|
||||
if len(rec.FreePageNumbers) > 0 {
|
||||
s.freeList.AddPages(rec.FreePageNumbers)
|
||||
}
|
||||
s.doAfterReleaseXLock(rec.MetricID, metric, lockEntry)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user