| CPC G06F 16/2379 (2019.01) [G06F 16/2343 (2019.01); G06F 16/24542 (2019.01)] | 20 Claims |

|
1. A relational database system, comprising:
a processor; and
a memory that stores program code structured to cause the processor to:
receive a single data read command comprising first and second queries that both read data objects, each query referencing a metadata object in metadata storage of the relational database system and configured to read user data objects from a user data storage of the relational database system;
receive a metadata modification command to be executed concurrently with the single data read command, and wherein execution of the metadata modification command causes the metadata object stored in a metadata storage of the relational database system to be modified;
in response to receiving the single data read command:
start a first transaction at a time T1;
obtain a metadata access lock from a lock manager of the relational database system;
create a first query plan for the first query, wherein the first query plan references the metadata object;
begin execution of the first query plan inside the first transaction at a time T2 using the metadata access lock;
complete execution of the first query plan at a time T3; and
commit the first transaction at a time T4; and
in response to receiving the metadata modification command:
execute the metadata modification command to:
start a second transaction concurrently with the first transaction at a time T5;
obtain a metadata change lock from the lock manager;
modify the metadata object inside the second transaction using the metadata change lock, wherein said modify is not blocked by the metadata access lock; and
commit the second transaction at a time T6;
wherein said time T2 is subsequent to said time T1, said time T5 is subsequent to said time T2, said time T3 is subsequent to said time T5 and said time T6 is subsequent to said time T3.
|