A method for a transaction manager in a database system to provide consistency across multiple persistent key-value, KV, stores, each having its own non-persistent transactions, for modifications to the persistent KV stores that must all persist or none at all, the method comprising: by a transaction manager: joining a first KV store's transaction; joining a second KV store's transaction; for a set of modifications including a first modification to the first KV store and a second modification to the second KV store that must all persist or none at all: inserting the first modification into the first KV store's transaction; inserting the second modification into the second KV store's transaction; creating and writing by a single write operation a combined journal entry comprising first and second sub-entries describing the first and the second modifications in a persistent global journal, respectively; and after the combined journal entry has completed writing to the global journal, detaching from the first KV store's transaction and detaching from the second KV store's transaction; and in response to detecting a storage system restart: determining last committed transactions from among transactions of the first and the second KV stores that were recorded as having been committed; examining the combined entry in the global journal to determine any sub-entry that has not been committed to a corresponding KV store; and replaying any sub-entry that has not been committed to a corresponding KV store; wherein a KV store's transaction can only commit once the transaction manager for every said join transaction has detached from the transaction. by a transaction manager: joining a first KV store's transaction; joining a second KV store's transaction; for a set of modifications including a first modification to the first KV store and a second modification to the second KV store that must all persist or none at all: inserting the first modification into the first KV store's transaction; inserting the second modification into the second KV store's transaction; creating and writing by a single write operation a combined journal entry comprising first and second sub-entries describing the first and the second modifications in a persistent global journal, respectively; and after the combined journal entry has completed writing to the global journal, detaching from the first KV store's transaction and detaching from the second KV store's transaction; and in response to detecting a storage system restart: determining last committed transactions from among transactions of the first and the second KV stores that were recorded as having been committed; examining the combined entry in the global journal to determine any sub-entry that has not been committed to a corresponding KV store; and replaying any sub-entry that has not been committed to a corresponding KV store; joining a first KV store's transaction; joining a second KV store's transaction; for a set of modifications including a first modification to the first KV store and a second modification to the second KV store that must all persist or none at all: inserting the first modification into the first KV store's transaction; inserting the second modification into the second KV store's transaction; creating and writing by a single write operation a combined journal entry comprising first and second sub-entries describing the first and the second modifications in a persistent global journal, respectively; and after the combined journal entry has completed writing to the global journal, detaching from the first KV store's transaction and detaching from the second KV store's transaction; and inserting the first modification into the first KV store's transaction; inserting the second modification into the second KV store's transaction; creating and writing by a single write operation a combined journal entry comprising first and second sub-entries describing the first and the second modifications in a persistent global journal, respectively; and after the combined journal entry has completed writing to the global journal, detaching from the first KV store's transaction and detaching from the second KV store's transaction; and in response to detecting a storage system restart: determining last committed transactions from among transactions of the first and the second KV stores that were recorded as having been committed; examining the combined entry in the global journal to determine any sub-entry that has not been committed to a corresponding KV store; and replaying any sub-entry that has not been committed to a corresponding KV store; determining last committed transactions from among transactions of the first and the second KV stores that were recorded as having been committed; examining the combined entry in the global journal to determine any sub-entry that has not been committed to a corresponding KV store; and replaying any sub-entry that has not been committed to a corresponding KV store; wherein a KV store's transaction can only commit once the transaction manager for every said join transaction has detached from the transaction.