This commit is contained in:
2026-06-15 01:20:30 +03:00
parent b32279deaf
commit 80309aab99
20 changed files with 149 additions and 40 deletions

View File

@@ -9,6 +9,7 @@ import (
"sync"
"time"
"gordenko.dev/dima/qb"
"gordenko.dev/dima/qb/inbox"
"gordenko.dev/dima/qb/recovery"
"gordenko.dev/dima/qb/storage"
@@ -85,6 +86,25 @@ func New(opt Options) (_ *Database, err error) {
storageInbox := inbox.New()
s.workerInbox = inbox.New()
// create separately, because needed for page cache
dataFile, err := os.OpenFile(
qb.GetDataFilePath(opt.Dir, opt.DatabaseName),
os.O_CREATE|os.O_RDWR,
0666,
)
if err != nil {
return nil, err
}
indexFile, err := os.OpenFile(
qb.GetIndexFilePath(opt.Dir, opt.DatabaseName),
os.O_CREATE|os.O_RDWR,
0666,
)
if err != nil {
return nil, err
}
s.storage, err = storage.NewWriter(storage.WriterOptions{
Inbox: storageInbox,
WorkerInbox: s.workerInbox,
@@ -93,6 +113,8 @@ func New(opt Options) (_ *Database, err error) {
WAL: recoveryReport.WAL,
IndexFreeList: recoveryReport.IndexFreeList,
DataFreeList: recoveryReport.DataFreeList,
DataFile: dataFile,
IndexFile: indexFile,
ExitCh: s.exitCh,
WaitGroup: s.waitGroup,
})