hbs2/hbs2-tests/test/TestLSMWrite.hs

37 lines
835 B
Haskell

{-# Language NumericUnderscores #-}
module Main where
import HBS2.Prelude.Plated
import HBS2.Hash
import HBS2.Data.Types.Refs
import HBS2.Storage.Compact
import Data.ByteString.Builder qualified as B
import Data.ByteString.Lazy qualified as LBS
import Data.ByteString.Char8 qualified as BS8
import Data.Function
import Streaming.Prelude qualified as S
import System.TimeIt
import Data.HashSet qualified as HS
import Data.HashSet (HashSet)
import Data.List qualified as List
import UnliftIO
import System.Random
import Data.Word
import Control.Monad
import System.Environment
main :: IO ()
main = do
[f] <- getArgs
sto <- compactStorageOpen @HbSync mempty f
for_ [0..10_000_000] $ \i -> do
let k = B.toLazyByteString (B.word64BE i) & LBS.toStrict
let v = BS8.pack (show k)
put sto k v
compactStorageClose sto