This commit is contained in:
2026-06-14 23:12:03 +03:00
parent 181031a753
commit b32279deaf
35 changed files with 1395 additions and 1062 deletions

View File

@@ -9,7 +9,6 @@ import (
"sync"
"time"
"gordenko.dev/dima/qb"
"gordenko.dev/dima/qb/inbox"
"gordenko.dev/dima/qb/recovery"
"gordenko.dev/dima/qb/storage"
@@ -69,21 +68,20 @@ func New(opt Options) (_ *Database, err error) {
s := &Database{
dir: opt.Dir,
databaseName: opt.DatabaseName,
//metricLockEntries: make(map[uint32]*metricLockEntry),
//dataFreeList: dataFreeList,
//indexFreeList: indexFreeList,
tcpPort: opt.TCPPort,
logfile: opt.Logfile,
logger: log.New(opt.Logfile, "", log.LstdFlags),
exitCh: opt.ExitCh,
waitGroup: opt.WaitGroup,
tcpPort: opt.TCPPort,
logfile: opt.Logfile,
logger: log.New(opt.Logfile, "", log.LstdFlags),
exitCh: opt.ExitCh,
waitGroup: opt.WaitGroup,
}
recoveryReport, err := recovery.Recovery(s.dir, s.databaseName)
if err != nil {
return
return nil, fmt.Errorf("recovery.Recovery: %s", err)
}
fmt.Printf("%#v\n", recoveryReport)
storageInbox := inbox.New()
s.workerInbox = inbox.New()
@@ -99,18 +97,21 @@ func New(opt Options) (_ *Database, err error) {
WaitGroup: s.waitGroup,
})
if err != nil {
qb.Abort(qb.CreateChangesWriterFailed, err)
return nil, fmt.Errorf("storage.NewWriter: %s", err)
}
fmt.Println("storage created")
s.worker = worker.New(worker.Options{
Inbox: s.workerInbox,
StorageInbox: storageInbox,
//Metrics: make(map[uint32]*_metric), FIX
Dir: opt.Dir,
ExitCh: opt.ExitCh,
WaitGroup: opt.WaitGroup,
Inbox: s.workerInbox,
StorageInbox: storageInbox,
ReplayMetrics: recoveryReport.ReplayMetrics,
Dir: opt.Dir,
DatabaseName: opt.DatabaseName,
ExitCh: opt.ExitCh,
WaitGroup: opt.WaitGroup,
})
fmt.Println("worker created")
return s, nil
}
@@ -120,6 +121,7 @@ func (s *Database) ListenAndServe() (err error) {
return fmt.Errorf("net.Listen: %s; port=%d", err, s.tcpPort)
}
//s.waitGroup.Add(1)
go s.storage.Run()
// s.atree, err = atree.New(atree.Options{