wp
This commit is contained in:
@@ -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,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user