US 12,298,859 B2
Transactional access to resource repositories
Sami Hiltunen, Helsinki (FI)
Assigned to GitLab Inc., San Francisco, CA (US)
Filed by GitLab Inc., San Francisco, CA (US)
Filed on Sep. 14, 2023, as Appl. No. 18/368,378.
Prior Publication US 2025/0094289 A1, Mar. 20, 2025
Int. Cl. G06F 11/14 (2006.01); G06F 16/23 (2019.01)
CPC G06F 11/1458 (2013.01) [G06F 16/2365 (2019.01)] 20 Claims
OG exemplary drawing
 
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.