@norootcause @andy_pavlo
1) append-only storage to support jukeboxes of magneto-optical WORM discs, the hot storage technology of the early 90s
2) time-traveling queries (removed to reduce overhead)
3) recovery without needing write-ahead logging (it later turned out that WAL was faster and more correct)
Concurrency control was done originally using 2PL, and because that was not an interesting research problem, it only supported table-granularity locks, which was, of course, a performance nightmare.
Years later, when we were adding serializable isolation, we faced a lot of opposition from people who had trauma from the 2PL days and assumed any implementation that required any blocking would be that bad.