This commit is contained in:
voidlizard 2025-07-31 15:22:36 +03:00
parent 5afd9c6048
commit bdf0395b1e
2 changed files with 17 additions and 15 deletions

View File

@ -71,12 +71,13 @@ ncqFossilMergeStep me@NCQStorage3{..} = withSem ncqServiceSem $ flip runContT p
for_ [f1, f2] $ \fi -> do
let fik = coerce fi
writeFiltered me (ncqGetFileName me fi) fd $ \_ _ k _ -> do
writeFiltered me (ncqGetFileName me fi) fd $ \o _ k _ -> do
ncqLocate_ False me k >>= \case
Nothing -> pure False
Just (InMemory{}) -> pure False
Just (InFossil fk _ _) -> do
let beWritten = fik >= fk
Just (InFossil fk o1 _) -> do
let skip = fk > fik || (fk == fik && o1 < fromIntegral o)
let beWritten = not skip
atomically do
here <- readTVar already <&> HS.member k
let proceed = not here && beWritten
@ -118,8 +119,8 @@ writeFiltered ncq fn out filt = do
ncqStorageScanDataFile ncq fn $ \o s k v -> do
skip <- filt o s k v <&> not
when skip do
debug $ pretty k <+> pretty "skipped"
-- when skip do
-- debug $ pretty k <+> pretty "skipped"
unless skip $ liftIO do
void $ appendSection out (LBS.toStrict (makeEntryLBS k v))

View File

@ -364,7 +364,7 @@ ncq3Tests = do
let (_, argz) = splitOpts [] syn
let n = headDef 50000 [ fromIntegral x | LitIntVal x <- argz ]
let p0 = headDef 0.25 [ realToFrac x | LitScientificVal x <- drop 1 argz ]
let p0 = headDef 0.55 [ realToFrac x | LitScientificVal x <- drop 1 argz ]
thashes <- newTVarIO mempty
@ -391,19 +391,20 @@ ncq3Tests = do
notice $ "should be deleted" <+> pretty (HS.size deleted) <+> "/" <+> pretty tnum
t0 <- getTimeCoarse
ncqWithStorage3 dir $ \sto@NCQStorage3{..} -> do
ncqIndexCompactFull sto
-- ncqCompactStep sto
notice "wait for compaction"
t1 <- getTimeCoarse
flip runContT pure do
let dt = timeSpecDeltaSeconds @(Fixed E6) t0 t1
notice $ "ncqCompactStep time" <+> pretty dt
none
void $ ContT $ withAsync $ forever do
fs <- dirFiles (ncqGetWorkDir sto)
let n = List.length fs
ss <- sum <$> mapM getFileSize fs
notice $ "dir size" <+> pretty n <+> pretty (ss `div` megabytes)
pause @'Seconds 20
pause @'Seconds 600
testNCQ3Concurrent1 :: MonadUnliftIO m
=> Bool