A method for a key-value, KV, store database management system, DBMS, to provide a KV store to an application, comprising: providing a plurality of low-level stores and a top-level store, wherein: each of the plurality of low-level stores (114-0 to 114-i) includes key-value pairs and has a respective low-level running transaction accumulating a plurality of changes to the key-value pairs of the low-level store; and the top-level store includes for each of the plurality of low-level stores (114-0 to 114-i) information leading to the respective low-level store and information indicating which respective low-level running transaction was last committed in the low-level store, and has a top-level running transaction, distinct of a plurality of low-level running transactions of the plurality of low-level stores, accumulating a plurality of changes to the information indicating which respective low-level running transaction was last committed to a low-level store of the plurality of low-level stores; and identifying when a certain low-level store has accumulated a first number of changes to the plurality of key-value pairs in said certain low-level store, above a predetermined number and committing the respective low-level running transaction for the certain low-level store in response to said identification, independently from a number of accumulated changes to key-value pairs in other low-level stores (114-1 to 114-i), to reduce an amount of writes to secondary memory, comprising: persisting changes to the certain low-level store accumulated by the respective low-level running transaction to secondary memory; and updating the top-level store to indicate the respective low-level running transaction was last committed in the certain low-level store; and after committing the respective low-level running transaction of the certain low-level store, opening a new respective low-level running transaction for the certain low-level store. providing a plurality of low-level stores and a top-level store, wherein: each of the plurality of low-level stores (114-0 to 114-i) includes key-value pairs and has a respective low-level running transaction accumulating a plurality of changes to the key-value pairs of the low-level store; and the top-level store includes for each of the plurality of low-level stores (114-0 to 114-i) information leading to the respective low-level store and information indicating which respective low-level running transaction was last committed in the low-level store, and has a top-level running transaction, distinct of a plurality of low-level running transactions of the plurality of low-level stores, accumulating a plurality of changes to the information indicating which respective low-level running transaction was last committed to a low-level store of the plurality of low-level stores; and each of the plurality of low-level stores (114-0 to 114-i) includes key-value pairs and has a respective low-level running transaction accumulating a plurality of changes to the key-value pairs of the low-level store; and the top-level store includes for each of the plurality of low-level stores (114-0 to 114-i) information leading to the respective low-level store and information indicating which respective low-level running transaction was last committed in the low-level store, and has a top-level running transaction, distinct of a plurality of low-level running transactions of the plurality of low-level stores, accumulating a plurality of changes to the information indicating which respective low-level running transaction was last committed to a low-level store of the plurality of low-level stores; and identifying when a certain low-level store has accumulated a first number of changes to the plurality of key-value pairs in said certain low-level store, above a predetermined number and committing the respective low-level running transaction for the certain low-level store in response to said identification, independently from a number of accumulated changes to key-value pairs in other low-level stores (114-1 to 114-i), to reduce an amount of writes to secondary memory, comprising: persisting changes to the certain low-level store accumulated by the respective low-level running transaction to secondary memory; and updating the top-level store to indicate the respective low-level running transaction was last committed in the certain low-level store; and persisting changes to the certain low-level store accumulated by the respective low-level running transaction to secondary memory; and updating the top-level store to indicate the respective low-level running transaction was last committed in the certain low-level store; and after committing the respective low-level running transaction of the certain low-level store, opening a new respective low-level running transaction for the certain low-level store.