US 12,254,900 B2
Reader bias based locking technique enabling high read concurrency for read-mostly workloads
David Dice, Foxboro, MA (US); and Alex Kogan, Needham, MA (US)
Assigned to Oracle International Corporation, Redwood City, CA (US)
Filed by Oracle International Corporation, Redwood City, CA (US)
Filed on Mar. 26, 2024, as Appl. No. 18/617,546.
Application 18/617,546 is a continuation of application No. 18/174,520, filed on Feb. 24, 2023, granted, now 11,972,777.
Application 18/174,520 is a continuation of application No. 17/507,714, filed on Oct. 21, 2021, granted, now 11,594,252, issued on Feb. 28, 2023.
Application 17/507,714 is a continuation of application No. 17/020,655, filed on Sep. 14, 2020, granted, now 11,170,816, issued on Nov. 9, 2021.
Application 17/020,655 is a continuation of application No. 16/739,851, filed on Jan. 10, 2020, granted, now 10,811,049, issued on Oct. 20, 2020.
Application 16/739,851 is a continuation of application No. 16/290,431, filed on Mar. 1, 2019, granted, now 10,535,368, issued on Jan. 14, 2020.
Claims priority of provisional application 62/734,197, filed on Sep. 20, 2018.
Prior Publication US 2024/0265945 A1, Aug. 8, 2024
Int. Cl. G11B 20/10 (2006.01); G06F 9/52 (2006.01); G06F 16/23 (2019.01); G11B 20/18 (2006.01); G11C 16/26 (2006.01)
CPC G11B 20/10268 (2013.01) [G06F 9/526 (2013.01); G06F 16/2343 (2019.01); G06F 16/2365 (2019.01); G11B 20/105 (2013.01); G11C 16/26 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
determining, by a first writer of a plurality of data accessors which includes at least the first writer and at least one reader, that a flag associated with a data object on which a write operation is to be performed by the first writer is set to a first value, wherein the first value indicates that a read operation on the data object can be performed without acquiring a lock associated with the data object;
computing, by the first writer based on one or more metrics associated with the write operation, a duration during which readers are to be prevented from performing read operations on the data object without acquiring the lock; and
causing, by the first writer, the flag to be set to a second value for at least the duration, wherein the second value indicates that the lock has to be acquired to perform a read operation on the data object.