| CPC G06F 11/1458 (2013.01) [G06F 16/2365 (2019.01)] | 20 Claims |

|
1. A resource repository system comprising:
a memory for storing a plurality of data structures, each data structure comprising a current version of a corresponding resource and at least one past version of the corresponding resource; and
a processor communicatively coupled to the memory and configured to:
receive a request for a transaction on a resource of a repository, the transaction making one or more changes to the resource of the repository;
create a snapshot of the repository by:
copying a directory structure of the repository into a temporary directory and hard linking resources of the repository to the temporary directory; or
using a copy-on-write functionality of a filesystem to create a clone of the repository into a temporary directory;
perform reads and/or writes of the transaction on the snapshot;
evaluate potential conflicts between the reads and/or the writes of the transaction and those of other concurrently committed transactions;
responsive to no conflict being found, commit the transaction to a write-ahead log; and
update the repository based on the changes recorded in the write-ahead log.
|