Postgres isn't the best at naming things. Of course, there is the old computersaying,"There are only two hard things in Computer Science: cache invalidation and naming things." With Postgres being31 years oldand developed by several different project teams, naming can be even more inconsistent.
One naming inconsistency, which we have lived with for years, is the name of thewrite-ahead log.Postgres references this using the acronymwalin server variables likewal_level,but thePGDATAdirectory containing the write-ahead log files was calledpg_xlog.In "pg_xlog," the "x" stands for "trans" which is short for "transaction", and of course "log" means "log", so "xlog" was short for "transaction log." This was also confusing because there is aclogdirectory which records "transaction status" information (commits, aborts). So, "xlog" or "transaction log" was already a bad name, and having it also referenced aswaljust made it worse.
Postgres 10 has made the difficultchangeof removing references to "xlog" and "clog," and instead name them "wal" and "pg_xact" consistently. Thisemail thread covers many of the gory details of what we changed and why. It isn't ideal to be changing the name of internal database objects, and it will cause some pain to those moving to Postgres 10, but future users of Postgres will have a more consistent experience of Postgres and how it works.