This commit is contained in:
2026-06-15 05:32:15 +03:00
parent 80309aab99
commit ca125c99d2
16 changed files with 685 additions and 1350 deletions

View File

@@ -278,39 +278,39 @@ func (s *Database) GetMetric(conn io.Writer, req proto.GetMetricReq) error {
}
func (s *Database) DeleteMetric(req proto.DeleteMetricReq) uint16 {
resultCh := make(chan worker.DeleteMetricResult, 1)
// resultCh := make(chan worker.DeleteMetricResult, 1)
s.workerInbox.Push(worker.DeleteMetricReq{
MetricID: req.MetricID,
ResultCh: resultCh,
})
// s.workerInbox.Push(worker.DeleteMetricReq{
// MetricID: req.MetricID,
// ResultCh: resultCh,
// })
result := <-resultCh
// result := <-resultCh
switch result.ResultCode {
case worker.Succeed:
// var (
// //freePageNumbers []uint32
// )
// if result.RootPageNo > 0 {
// var err error
// freePageNumbers, err = s.atree.GetAllPages(result.RootPageNo)
// if err != nil {
// qb.Abort(qb.FailedAtreeRequest, err)
// }
// }
// s.storage.Append(storage.DeletedMetric{
// MetricID: req.MetricID,
// //FreePageNumbers: freePageNumbers, FIX
// })
//<-waitCh
// switch result.ResultCode {
// case worker.Succeed:
// // var (
// // //freePageNumbers []uint32
// // )
// // if result.RootPageNo > 0 {
// // var err error
// // freePageNumbers, err = s.atree.GetAllPages(result.RootPageNo)
// // if err != nil {
// // qb.Abort(qb.FailedAtreeRequest, err)
// // }
// // }
// // s.storage.Append(storage.DeletedMetric{
// // MetricID: req.MetricID,
// // //FreePageNumbers: freePageNumbers, FIX
// // })
// //<-waitCh
case worker.NoMetric:
return proto.ErrNoMetric
// case worker.NoMetric:
// return proto.ErrNoMetric
default:
qb.Abort(qb.WrongResultCodeBug, ErrWrongResultCodeBug)
}
// default:
// qb.Abort(qb.WrongResultCodeBug, ErrWrongResultCodeBug)
// }
return 0
}
@@ -363,7 +363,7 @@ func (s *Database) AppendMeasures(conn io.Writer, req proto.AppendMeasuresReq) e
}
func (s *Database) DeleteMeasures(req proto.DeleteMeasuresReq) uint16 {
resultCh := make(chan worker.DeleteMeasuresResult, 1)
resultCh := make(chan byte, 1)
s.workerInbox.Push(worker.DeleteMeasuresReq{
MetricID: req.MetricID,
@@ -373,36 +373,38 @@ func (s *Database) DeleteMeasures(req proto.DeleteMeasuresReq) uint16 {
result := <-resultCh
switch result.ResultCode {
case worker.NoMeasuresToDelete:
// ok
_ = result
//case worker.DeleteFromAtreeNotNeeded:
// регистрирую удаление в TransactionLog
// s.storage.Append(storage.MeasuresDeleteRecord{
// MetricID: req.MetricID,
// })
//<-waitCh
// switch result.ResultCode {
// case worker.NoMeasuresToDelete:
// // ok
//case worker.DeleteFromAtreeRequired:
// собираю номера всех data и index страниц метрики (типа запись REDO лога).
// pageNumbers, err := s.atree.GetAllPages(req.MetricID)
// if err != nil {
// qb.Abort(qb.FailedAtreeRequest, err)
// }
// //case worker.DeleteFromAtreeNotNeeded:
// // регистрирую удаление в TransactionLog
// s.storage.Append(storage.DeletedMeasures{
// MetricID: req.MetricID,
// FreePageNumbers: pageNumbers,
// })
//<-waitCh
// // s.storage.Append(storage.MeasuresDeleteRecord{
// // MetricID: req.MetricID,
// // })
// //<-waitCh
case worker.NoMetric:
return proto.ErrNoMetric
// //case worker.DeleteFromAtreeRequired:
// // собираю номера всех data и index страниц метрики (типа запись REDO лога).
// // pageNumbers, err := s.atree.GetAllPages(req.MetricID)
// // if err != nil {
// // qb.Abort(qb.FailedAtreeRequest, err)
// // }
// // // регистрирую удаление в TransactionLog
// // s.storage.Append(storage.DeletedMeasures{
// // MetricID: req.MetricID,
// // FreePageNumbers: pageNumbers,
// // })
// //<-waitCh
default:
qb.Abort(qb.WrongResultCodeBug, ErrWrongResultCodeBug)
}
// case worker.NoMetric:
// return proto.ErrNoMetric
// default:
// qb.Abort(qb.WrongResultCodeBug, ErrWrongResultCodeBug)
// }
return 0
}
@@ -616,17 +618,17 @@ func (s *Database) fullScan(req fullScanReq) error {
req.ResponseWriter.Close()
case worker.UntilFound:
// err := s.atree.ContinueFullScan(atree.ContinueFullScanReq{
// FracDigits: result.FracDigits,
// ResponseWriter: req.ResponseWriter,
// LastPageNo: result.LastPageNo,
// })
// s.worker.AddJobToQueue(req.MetricID)
// if err != nil {
// reply(req.Conn, proto.ErrUnexpected)
// } else {
// req.ResponseWriter.Close()
// }
err := s.atree.ContinueFullScan(atree.ContinueFullScanReq{
FracDigits: result.FracDigits,
ResponseWriter: req.ResponseWriter,
LastPageNo: result.LastPageNo,
})
//s.worker.AddJobToQueue(req.MetricID) // FIX release rlock
if err != nil {
reply(req.Conn, proto.ErrUnexpected)
} else {
req.ResponseWriter.Close()
}
case worker.NoMetric:
reply(req.Conn, proto.ErrNoMetric)