github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/kv/kvserver/concurrency/testdata/concurrency_manager/basic (about)

     1  new-txn name=txn1 ts=10,1 epoch=0
     2  ----
     3  
     4  new-txn name=txn2 ts=12,1 epoch=0
     5  ----
     6  
     7  new-txn name=txn3 ts=14,1 epoch=0
     8  ----
     9  
    10  # -------------------------------------------------------------
    11  # Simple read-only request
    12  # -------------------------------------------------------------
    13  
    14  new-request name=req1 txn=txn1 ts=10,1
    15    get  key=k
    16    scan key=k endkey=k2
    17  ----
    18  
    19  sequence req=req1
    20  ----
    21  [1] sequence req1: sequencing request
    22  [1] sequence req1: acquiring latches
    23  [1] sequence req1: scanning lock table for conflicting locks
    24  [1] sequence req1: sequencing complete, returned guard
    25  
    26  debug-latch-manager
    27  ----
    28  write count: 0
    29   read count: 1
    30  
    31  finish req=req1
    32  ----
    33  [-] finish req1: finishing request
    34  
    35  reset
    36  ----
    37  
    38  # -------------------------------------------------------------
    39  # Simple read-write request that acquires a lock
    40  # -------------------------------------------------------------
    41  
    42  new-request name=req2 txn=txn2 ts=12,1
    43    put key=k value=v
    44  ----
    45  
    46  sequence req=req2
    47  ----
    48  [1] sequence req2: sequencing request
    49  [1] sequence req2: acquiring latches
    50  [1] sequence req2: scanning lock table for conflicting locks
    51  [1] sequence req2: sequencing complete, returned guard
    52  
    53  on-lock-acquired req=req2 key=k
    54  ----
    55  [-] acquire lock: txn 00000002 @ k
    56  
    57  debug-lock-table
    58  ----
    59  global: num=1
    60   lock: "k"
    61    holder: txn: 00000002-0000-0000-0000-000000000000, ts: 0.000000012,1, info: unrepl epoch: 0, seqs: [0]
    62  local: num=0
    63  
    64  finish req=req2
    65  ----
    66  [-] finish req2: finishing request
    67  
    68  debug-lock-table
    69  ----
    70  global: num=1
    71   lock: "k"
    72    holder: txn: 00000002-0000-0000-0000-000000000000, ts: 0.000000012,1, info: unrepl epoch: 0, seqs: [0]
    73  local: num=0
    74  
    75  reset
    76  ----
    77  
    78  # Demonstrate that 'reset' clears the lock table.
    79  debug-lock-table
    80  ----
    81  global: num=0
    82  local: num=0
    83  
    84  # -------------------------------------------------------------
    85  # 1. Acquire a lock
    86  # 2. Read-only requests blocks on lock
    87  # 3. Lock is released
    88  # 4. Read-only request proceeds
    89  # 5. Read-write request blocks on latches
    90  # 6. Requests proceed in order
    91  # -------------------------------------------------------------
    92  
    93  sequence req=req2
    94  ----
    95  [1] sequence req2: sequencing request
    96  [1] sequence req2: acquiring latches
    97  [1] sequence req2: scanning lock table for conflicting locks
    98  [1] sequence req2: sequencing complete, returned guard
    99  
   100  on-lock-acquired req=req2 key=k
   101  ----
   102  [-] acquire lock: txn 00000002 @ k
   103  
   104  finish req=req2
   105  ----
   106  [-] finish req2: finishing request
   107  
   108  new-request name=req3 txn=txn3 ts=14,1
   109    get  key=k
   110    scan key=k endkey=k2
   111  ----
   112  
   113  sequence req=req3
   114  ----
   115  [2] sequence req3: sequencing request
   116  [2] sequence req3: acquiring latches
   117  [2] sequence req3: scanning lock table for conflicting locks
   118  [2] sequence req3: waiting in lock wait-queues
   119  [2] sequence req3: pushing timestamp of txn 00000002 above 0.000000014,1
   120  [2] sequence req3: blocked on select in concurrency_test.(*cluster).PushTransaction
   121  
   122  on-txn-updated txn=txn2 status=committed
   123  ----
   124  [-] update txn: committing txn2
   125  [2] sequence req3: resolving intent "k" for txn 00000002 with COMMITTED status
   126  [2] sequence req3: acquiring latches
   127  [2] sequence req3: scanning lock table for conflicting locks
   128  [2] sequence req3: sequencing complete, returned guard
   129  
   130  debug-lock-table
   131  ----
   132  global: num=0
   133  local: num=0
   134  
   135  new-request name=req4 txn=txn1 ts=10,1
   136    put key=k value=v
   137  ----
   138  
   139  sequence req=req4
   140  ----
   141  [3] sequence req4: sequencing request
   142  [3] sequence req4: acquiring latches
   143  [3] sequence req4: blocked on select in spanlatch.(*Manager).waitForSignal
   144  
   145  debug-latch-manager
   146  ----
   147  write count: 1
   148   read count: 1
   149  
   150  finish req=req3
   151  ----
   152  [-] finish req3: finishing request
   153  [3] sequence req4: scanning lock table for conflicting locks
   154  [3] sequence req4: sequencing complete, returned guard
   155  
   156  finish req=req4
   157  ----
   158  [-] finish req4: finishing request
   159  
   160  reset
   161  ----
   162  
   163  # -------------------------------------------------------------
   164  # 1. Acquire a lock
   165  # 2. Two read-only requests block on lock, one pushes
   166  # 3. Txn is updated to a timestamp above the read's
   167  # 4. Read-only request proceeds
   168  # 5. Read-write request blocks on lock
   169  # 6. Lock is released
   170  # 7. Read-write request blocks on latches
   171  # 8. Requests proceed in order
   172  # -------------------------------------------------------------
   173  
   174  sequence req=req2
   175  ----
   176  [1] sequence req2: sequencing request
   177  [1] sequence req2: acquiring latches
   178  [1] sequence req2: scanning lock table for conflicting locks
   179  [1] sequence req2: sequencing complete, returned guard
   180  
   181  on-lock-acquired req=req2 key=k
   182  ----
   183  [-] acquire lock: txn 00000002 @ k
   184  
   185  finish req=req2
   186  ----
   187  [-] finish req2: finishing request
   188  
   189  new-request name=req5 txn=none ts=14,1
   190    scan key=a endkey=m
   191  ----
   192  
   193  sequence req=req5
   194  ----
   195  [2] sequence req5: sequencing request
   196  [2] sequence req5: acquiring latches
   197  [2] sequence req5: scanning lock table for conflicting locks
   198  [2] sequence req5: waiting in lock wait-queues
   199  [2] sequence req5: pushing timestamp of txn 00000002 above 0.000000014,1
   200  [2] sequence req5: blocked on select in concurrency_test.(*cluster).PushTransaction
   201  
   202  new-request name=req6 txn=none ts=16,1
   203    scan key=c endkey=z
   204  ----
   205  
   206  sequence req=req6
   207  ----
   208  [3] sequence req6: sequencing request
   209  [3] sequence req6: acquiring latches
   210  [3] sequence req6: scanning lock table for conflicting locks
   211  [3] sequence req6: waiting in lock wait-queues
   212  [3] sequence req6: blocked on select in concurrency.(*lockTableWaiterImpl).WaitOn
   213  
   214  on-txn-updated txn=txn2 status=pending ts=18,1
   215  ----
   216  [-] update txn: increasing timestamp of txn2
   217  [2] sequence req5: resolving intent "k" for txn 00000002 with PENDING status
   218  [2] sequence req5: acquiring latches
   219  [2] sequence req5: scanning lock table for conflicting locks
   220  [2] sequence req5: sequencing complete, returned guard
   221  [3] sequence req6: acquiring latches
   222  [3] sequence req6: scanning lock table for conflicting locks
   223  [3] sequence req6: sequencing complete, returned guard
   224  
   225  new-request name=req7 txn=none ts=12,1
   226    put key=k value=v
   227  ----
   228  
   229  sequence req=req7
   230  ----
   231  [4] sequence req7: sequencing request
   232  [4] sequence req7: acquiring latches
   233  [4] sequence req7: blocked on select in spanlatch.(*Manager).waitForSignal
   234  
   235  finish req=req5
   236  ----
   237  [-] finish req5: finishing request
   238  
   239  finish req=req6
   240  ----
   241  [-] finish req6: finishing request
   242  [4] sequence req7: scanning lock table for conflicting locks
   243  [4] sequence req7: waiting in lock wait-queues
   244  [4] sequence req7: pushing txn 00000002 to abort
   245  [4] sequence req7: blocked on select in concurrency_test.(*cluster).PushTransaction
   246  
   247  on-txn-updated txn=txn2 status=committed
   248  ----
   249  [-] update txn: committing txn2
   250  [4] sequence req7: resolving intent "k" for txn 00000002 with COMMITTED status
   251  [4] sequence req7: acquiring latches
   252  [4] sequence req7: scanning lock table for conflicting locks
   253  [4] sequence req7: sequencing complete, returned guard
   254  
   255  finish req=req7
   256  ----
   257  [-] finish req7: finishing request
   258  
   259  reset
   260  ----