Skip to content

Run

7 emulators 832 tests

Results as of this run. The arrow shows each target's movement since the previous run it was tested in. The suite grew this run, so a downward arrow can be the new tests biting rather than a target regressing.

Suite grew from 824 to 832 tests this run.

That's 8 new tests measured against every target. Movement below compares to the previous run, so a fall here is as likely to be the stricter suite as a real regression.

What changed in the suite this run

Suite on

Grew to 832 tests, up 8, sharpening how the suite pins ConsumedCapacity capacity units on transactional and single-item operations. All characterised against real DynamoDB in eu-west-2.

The same-token replay case for TransactWriteItems now uses a ~1.5KB item instead of a sub-1KB one. Below 1KB a transactional write (2 * ceil(size / 1KB)) and a transactional read (2 * ceil(size / 4KB)) both round to 2, so the old item could not tell them apart. At ~1.5KB they separate: the first call reports 4 write capacity units, the replay 2 read. That settles what the replay bills - a transactional read recomputed against the item size, not the stored write magnitude relabelled as read. Answers #68.

ExecuteTransaction gains the ClientRequestToken idempotent-replay coverage TransactWriteItems already had. The same statements sent twice under one token apply exactly once - a counter incremented inside the transaction reads back 1, not 2 - and the accounting splits the same way, 2 write capacity units on the first call and 2 read on the replay. Answers #70.

The single-item read/write split turned out to be the opposite of what #69 assumed. Real DynamoDB returns no top-level ReadCapacityUnits or WriteCapacityUnits on GetItem, PutItem, UpdateItem, DeleteItem, Query or Scan; it reports the aggregate CapacityUnits alone, under both TOTAL and INDEXES. The split is transactional-only. So the pinned claim is the inverse: single-item operations report the aggregate and omit the split, with a strongly-consistent read at 1 unit, an eventually-consistent read at 0.5, and a small write at 1. Answers #69.

  1. live (AWS) full coverage
    100% ground truth
    Tier 1 100%
    Tier 2 100%
    Tier 3 100%
  2. 98.4% -0.1pp fell 0.1 percentage points
    Tier 1 99.3%
    Tier 2 97.9%
    Tier 3 97.2%
  3. 65f91ff15e63 full coverage
    88.8% -0.1pp fell 0.1 percentage points
    Tier 1 92.5%
    Tier 2 81.9%
    Tier 3 86.9%
  4. 87.6% -1.0pp fell 1.0 percentage points
    Tier 1 86.1%
    Tier 2 89.3%
    Tier 3 89.3%
  5. 87.4% -0.2pp fell 0.2 percentage points
    Tier 1 93.4%
    Tier 2 77.4%
    Tier 3 82.9%
  6. Tier 1 92.9%
    Tier 2 87.8%
    Tier 3 64.7%
  7. 81.9% +0.1pp rose 0.1 percentage points
    Tier 1 91.5%
    Tier 2 84.5%
    Tier 3 64.3%
  8. 75.9% +0.2pp rose 0.2 percentage points
    Tier 1 91.1%
    Tier 2 12.6%
    Tier 3 72.2%