E001Of 35 SQL checks, DSQL passed 17 and rejected 16 as unsupported (0A000). The three control services passed 34, all except the DSQL-only CREATE INDEX ASYNC. The order transaction (including FKs) passed on DSQL without modification.
Measured 2026-09-24
E002In a DSQL-only re-measurement (2026-09-29), DSQL handled 24,541 TPS at a fixed concurrency of 256 connections while meeting the SLO (write p99 35.7 ms). Under the same conditions, the highest throughput at which the controls met the SLO was 5,839 TPS for RDS Multi-AZ, 3,375 for Aurora Provisioned, and 11,559 for Aurora Serverless v2. DSQL latency was almost independent of load, but in absolute terms write p95 was about 28–41 ms, longer than Serverless v2 (7–9 ms). The load generator was close to saturation, so the DSQL value is a lower bound, and the main measurement and repetitions were not done.
Measured 2026-09-29
E003MVP (DSQL only). Signing an IAM token took p50 0.2 ms, a small burden, and a new connection (TLS, authentication, first query) took p50 15.5 ms and p99 120 ms when run sequentially. Requesting 500 and 1,000 connections at once succeeded for all of them with no rejections. However, opening a new connection per request brought the read throughput of 16 workers to 121 TPS, about 1/70 of the rate with persistent connections (8,370 TPS). Using a connection pool is effectively mandatory; the control comparison and RDS Proxy were not measured.
Measured 2026-09-29
E004There were zero business invariant violations across all 66 load cells and all isolation level scenarios. Under concentrated (hot) contention, DSQL failed with commit-time conflicts (40001) without waiting and kept p99 at or below 110 ms, but its raw conflict rate rose to 67–71% at concurrency 256. The controls (small configurations) saw lock waits exceed the 2-second deadline, and throughput dropped to tens of TPS. These are results from one repetition, 25-second cells, and small controls, and are not a basis for capacity comparison.
Measured 2026-09-26
E005MVP. In 200 trials that read the same row from another connection immediately after a commit was acknowledged, DSQL returned the new value on the first read in all 200 trials (p99 5.5 ms until visible). With the Aurora Serverless v2 reader endpoint, 199 of 200 first reads returned the old value, and the new value took p50 21.8 ms and p99 32.6 ms to become visible. Another connection on the writer endpoint saw it immediately. Read throughput scaling was not measured.
Measured 2026-09-29
E006MVP. During an order load of 300 transactions per second, we created a client-side network failure by dropping packets from the load generator to the database for 30 seconds. For both DSQL and Aurora Serverless v2, requests during the blocked period failed with connection errors, giving an overall cell failure rate of about 20.6%, but a new connection succeeded 0.02–0.07 seconds after the block was lifted, and both services had 0 lost commits and 0 duplicated effects when reconciled against business receipts. Database-side failover and DSQL internal failures were not tested.
Measured 2026-09-29
E007MVP. On about 100 MB of data, we wrote 30 markers one second apart, then made a mistake that overwrote all the markers, and recovered. DSQL has no point-in-time restore, so we restored to a new cluster from an AWS Backup full backup taken before the mistake (481 seconds); the restore took 129 seconds. Aurora Serverless v2 was restored to a point in time just before the mistake; the cluster was ready in 223 seconds and the instance in 587 seconds. Both restores had all 30 correct markers intact, and 0 overwritten rows and 0 rows added after the mistake.
Measured 2026-09-29
E008MVP (DSQL only). Under an order load of 1,000 transactions per second, we built an asynchronous index on 11 million order rows. The command returned in 0.1 seconds, and it took 736 seconds until the index was actually usable. During the build, order creation p95 rose from 27.5 ms to 52.0 ms and p99 from 30.7 ms to 79.8 ms, but stayed within the SLO with 0 failures. Adding and dropping a column and dropping the index each finished within 0.1 seconds. A transaction changing 5,000 rows and a transaction held open for 310 seconds were rejected by the row-count limit and the 300-second limit, respectively.
Measured 2026-09-29
E009MVP. Under a spike load that changed from 200 to 2,000 to 1,000 to 50 requests per second, both DSQL and Aurora Serverless v2 handled every request with zero failures and no manual intervention. DSQL's write p95 stayed at 29–36 ms regardless of load, while A2 was at 8–12 ms. After 15 minutes with no connections at all, DSQL answered the first request with a 112–287 ms connection and a 115–123 ms first query, but A2, which had auto-paused down to 0 ACU, resumed slowly and its first connection failed both times by exceeding the 15-second timeout.
Measured 2026-09-29
E010MVP (no additional AWS runs). Using measurements from E002 and E009, we calculated the hourly cost of the same order workload. DSQL costs about USD 0.31 per million requests, proportional to the number of requests (0.029–0.032 DPU per request), while RDS Multi-AZ cost about USD 1.22 per hour regardless of load. When average load is below about 1,100 TPS or idle time is long, DSQL is cheaper; when load above that level continues, a fixed instance is cheaper. Aurora Serverless v2 with a read replica was more expensive than or similar to DSQL at every measured load.
Measured 2026-09-29
E011MVP (no additional AWS runs). We collected the work involved in actually creating, using, and deleting four services across E001–E012. DSQL was faster than Aurora Serverless v2 (about 11 minutes to create, about 15 minutes to delete), with 32 seconds to create and about 2 minutes to delete, and it needed no capacity selection, password management, vacuum, or reader routing. On the other hand, 16 of 35 workload SQL statements had to be changed, and additional code and procedures were needed for conflict retries, splitting transactions at 3,000 rows and 300 seconds, confirming completion of asynchronous indexes, manually creating indexes on the foreign-key side, rotating connections every hour, IAM token signing, and the absence of point-in-time recovery. Working time was not measured.
Measured 2026-09-29
E012MVP (DSQL only, S data). A JOIN for a customer's recent orders had a p50 of 4.4 ms; a daily sales aggregation over 10% of orders (1.1 million rows) took 2.4–2.6 seconds; a product ranking over about 270,000 order-item rows took 0.7 seconds; and a full aggregation over all 11 million order rows took about 36 seconds. One full aggregation used about 1,700 DPU (about USD 0.017). Even with the 10% aggregation repeated continuously during an order load of 1,000 per second, OLTP met the SLO with zero failures, and order-creation p99 rose from 30.7 ms to 41.8 ms. Comparison with control configurations and L-scale data were not measured.
Measured 2026-09-29