Date: 2025-05-14
Time: 17:00–17:25
Room: Cartier B
Level: Intermediate
Feedback: Leave feedback
To date there are no published benchmarks for temporal tables.[1] Because temporal tables have a specific structure, with a PERIOD or range column storing application time, as well as special primary keys, foreign keys, and DML commands, existing benchmark schemas and workflows are not suitable for them. But as temporal databases become more mainstream and supported by major RDBMS vendors, the need is increasing. I designed a temporal schema and set of transactions and added it as a benchmark to CMU's Benchbase framework.
This talk will give a brief introduction to Benchbase, then I'll show the benchmark I've designed. I'll discuss how I used it to compare three different implementations for Postgres's temporal foreign keys, showing the results I got and how I made sense of them with matplotlib, dstat/pcp, and bpftrace. I'll conclude with some lessons I learned about benchmarking methodology, especially how to iterate quickly, keep notes, and make things reproducible.
[1] The closest thing is the "Temporal Alignment" paper by Dignös, Böhlen, and Gamper, but (1) they don't publish their schema or table contents (2) they don't publish the SQL they compare against their proposed new operators.