echo
----
db0.Txn(ctx, func(ctx context.Context, txn *kv.Txn) error {
  txn.SetIsoLevel(isolation.Serializable)
  txn.Put(ctx, tk(1), sv(1)) // <nil>
  txn.Put(ctx, tk(2), sv(2)) // <nil>
  return nil
}) // @0.000000001,0 <nil>
db0.Txn(ctx, func(ctx context.Context, txn *kv.Txn) error {
  txn.SetIsoLevel(isolation.Serializable)
  txn.Scan(ctx, tk(1), tk(3), 0) // (/Table/100/"0000000000000002":v2, <nil>)
  txn.Del(ctx, tk(1) /* @s3 */) // <nil>
  return nil
}) // @0.000000002,0 <nil>
db0.Put(ctx, tk(1), sv(4)) // @0.000000003,0 <nil>
db0.Del(ctx, tk(1) /* @s5 */) // @0.000000004,0 <nil>
/Table/100/"0000000000000001"/0.000000001,0 @ s1 v1
/Table/100/"0000000000000002"/0.000000001,0 @ s2 v2
/Table/100/"0000000000000001"/0.000000002,0 @ s3 <nil>
/Table/100/"0000000000000001"/0.000000003,0 @ s4 v4
/Table/100/"0000000000000001"/0.000000004,0 @ s5 <nil>
committed serializable txn non-atomic timestamps: [s]/Table/100/"000000000000000{1"-3"}:{0:[0.000000001,0, <max>), gap:[<min>, 0.000000001,0),[0.000000004,0, <max>)}->[/Table/100/"0000000000000002":v2] [d]/Table/100/"0000000000000001":0.000000002,0-><nil>@s3
