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