The append-only file rewrite used to fork the process and rewrite everything into one file, which doubled memory at the worst possible moment.
# 7.0: a manifest plus a base file plus incremental files
$ ls appendonlydir/
appendonly.aof.1.base.rdb
appendonly.aof.1.incr.aof
appendonly.aof.manifest
# the rewrite writes a new base and switches the manifest,
# rather than replaying everything through a fork.
# the practical effect: a memory spike during rewrite that
# was a real cause of OOM kills on a full instance
The fork-and-copy behaviour was the reason a Redis instance needed roughly twice its dataset in available memory, and the multi-part format removes most of that requirement. It also changes the on-disk layout from a file to a directory, which breaks any backup script that copied appendonly.aof by name.