Skip to content

Commit 55c4b99

Browse files
committed
Allow IOG's contra-tracer
1 parent 2259987 commit 55c4b99

File tree

5 files changed

+34
-7
lines changed

5 files changed

+34
-7
lines changed

bench/macro/lsm-tree-bench-wp8.hs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,21 @@ mkTableConfigOverride GlobalOpts{diskCachePolicy} RunOpts {pipelined} =
211211
mkTracer :: GlobalOpts -> Tracer IO LSM.LSMTreeTrace
212212
mkTracer gopts
213213
| trace gopts =
214+
#if MIN_VERSION_contra_tracer(0,2,0)
214215
-- Don't trace update/lookup messages, because they are too noisy
215216
squelchUnless
216217
(\case
217218
LSM.TraceTable _ LSM.TraceUpdates{} -> False
218219
LSM.TraceTable _ LSM.TraceLookups{} -> False
219220
_ -> True )
220221
(show `contramap` stdoutTracer)
222+
#else
223+
Tracer $
224+
\case
225+
LSM.TraceTable _ LSM.TraceUpdates{} -> pure ()
226+
LSM.TraceTable _ LSM.TraceLookups{} -> pure ()
227+
e -> traceWith (show `contramap` stdoutTracer) e
228+
#endif
221229
| otherwise = nullTracer
222230

223231
-------------------------------------------------------------------------------

lsm-tree.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,7 @@ library
613613
, bytestring ^>=0.11.4.0 || ^>=0.12.1.0
614614
, cborg ^>=0.2.10.0
615615
, containers ^>=0.6 || ^>=0.7
616-
, contra-tracer ^>=0.2
616+
, contra-tracer ^>=0.1 || ^>=0.2
617617
, crc32c ^>=0.2.1
618618
, deepseq ^>=1.4 || ^>=1.5
619619
, filepath

src/Database/LSMTree/Internal/Unsafe.hs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,17 @@ data TableTrace =
202202
| TraceSupplyUnionCredits UnionCredits
203203
deriving stock Show
204204

205+
#if MIN_VERSION_contra_tracer(0,2,0)
205206
contramapTraceMerge :: Monad m => Tracer m TableTrace -> Tracer m (AtLevel MergeTrace)
206207
#ifdef DEBUG_TRACES
207208
contramapTraceMerge t = TraceMerge `contramap` t
208209
#else
209210
contramapTraceMerge t = traceMaybe (const Nothing) t
210211
#endif
212+
#else
213+
contramapTraceMerge :: Applicative m => Tracer m TableTrace -> Tracer m (AtLevel MergeTrace)
214+
contramapTraceMerge _t = nullTracer
215+
#endif
211216

212217
data CursorTrace =
213218
TraceCreateCursor TableId

test-prototypes/Test/ScheduledMerges.hs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
{-# LANGUAGE CPP #-}
2+
13
module Test.ScheduledMerges (tests) where
24

35
import Control.Exception
46
import Control.Monad (replicateM_, when)
57
import Control.Monad.ST
68
import Control.Tracer (Tracer (Tracer))
9+
#if MIN_VERSION_contra_tracer(0,2,0)
710
import qualified Control.Tracer as Tracer
11+
#endif
812
import Data.Foldable (find, traverse_)
913
import Data.Maybe (fromJust)
1014
import Data.STRef
@@ -526,7 +530,11 @@ genShrinkTrace !n x
526530
runWithTracer :: (Tracer (ST RealWorld) Event -> IO a) -> IO a
527531
runWithTracer action = do
528532
events <- stToIO $ newSTRef []
529-
let tracer = Tracer $ Tracer.emit $ \e -> modifySTRef events (e :)
533+
let tracer = Tracer $
534+
#if MIN_VERSION_contra_tracer(0,2,0)
535+
Tracer.emit $
536+
#endif
537+
\e -> modifySTRef events (e :)
530538
action tracer `catch` \e -> do
531539
if isDiscard e -- don't intercept these
532540
then throwIO e

test/Test/Database/LSMTree.hs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{-# LANGUAGE CPP #-}
12
{-# LANGUAGE LambdaCase #-}
23
{-# LANGUAGE OverloadedStrings #-}
34
{-# LANGUAGE RecordWildCards #-}
@@ -134,11 +135,16 @@ prop_openSession_restoreSession =
134135
-- | A tracer that records session open, session new, and session restore
135136
-- messages in a mutable variable.
136137
mkSessionOpenModeTracer :: IORef [String] -> Tracer IO LSMTreeTrace
137-
mkSessionOpenModeTracer var = Tracer $ emit $ \case
138-
TraceOpenSession{} -> modifyIORef var ("Open" :)
139-
TraceNewSession{} -> modifyIORef var ("New" :)
140-
TraceRestoreSession{} -> modifyIORef var ("Restore" :)
141-
_ -> pure ()
138+
mkSessionOpenModeTracer var =
139+
Tracer $
140+
#if MIN_VERSION_contra_tracer(0,2,0)
141+
emit $
142+
#endif
143+
\case
144+
TraceOpenSession{} -> modifyIORef var ("Open" :)
145+
TraceNewSession{} -> modifyIORef var ("New" :)
146+
TraceRestoreSession{} -> modifyIORef var ("Restore" :)
147+
_ -> pure ()
142148

143149
{-------------------------------------------------------------------------------
144150
Session: happy path

0 commit comments

Comments
 (0)