Patent ID: 8055853

Claim:
A data storage system for a nonvolatile storage medium storing data accessible by a plurality of users, the non-volatile storage medium comprising: predetermined blocks in which said data are held, such that while one of the users is processing a predetermined block, the other users cannot process said predetermined block, wherein said predetermined blocks include separately provided committed blocks, next-generation committed blocks and atomic blocks, said committed blocks, next-generation committed blocks and atomic blocks are grouped into a committed block aggregate, a next-generation committed block aggregate and an atomic block aggregate, respectively, each of the aggregates being a collection of blocks, and said committed block aggregate exists only on said nonvolatile storage medium, said data storage system comprising: at least one processor, and at least one memory including computer program code configured to, with the at least one processor, cause the data storage system to perform at least the following: form said next-generation committed block aggregate from said committed block aggregate by copying some blocks of said committed block aggregate, said next-generation committed block aggregate being able to exist across said nonvolatile storage medium and another storage medium; form said atomic block aggregate, for every user, from said next-generation committed block by copying some blocks of said next-generation committed block aggregate, said atomic block aggregate being able to exist across said nonvolatile storage medium and another storage medium; perform operations on said atomic block aggregate, the operations causing at least some blocks in the atomic block aggregates to be revised; merge the atomic block aggregate into said next-generation committed block aggregate after performing operations on the atomic block aggregates while maintaining atomicity for every user by replacing the blocks revised by said operations on said atomic block aggregates with blocks in said next-generation committed block aggregate that have not been revised; and transferring data within said merged atomic block aggregate/next-generation committed block aggregate to said committed block aggregate while maintaining the atomicity by writing all blocks existing in said merged atomic block aggregate/next-generation committed block aggregate but not on said nonvolatile storage medium onto said nonvolatile storage medium.