Share latch clearing
First Claim
1. A computer-implemented method operable on a database access to which is governed by a core process able to assert an exclusive latch onto a section of the database and a client process able to assert a share latch onto the section the database, the method comprising:
- determining that the client process has terminated;
upon determining that the client process has terminated, determining whether the share latch of the client is still being asserted onto the section of the database; and
, upon determining that the share latch of the client is still being asserted onto the section of the database, clearing the share latch, wherein the determination of whether the share latch of the terminated client is still asserted comprises attempting to assert the exclusive latch onto the section of the database.
2 Assignments
0 Petitions
Accused Products
Abstract
Clearing share latches for databases, such as in-memory databases, is disclosed. In one embodiment, a computerized system includes a database having a number of sections, a client process and a core process. The client process is capable of asserting a share latch on a section of the database. The core process is capable of asserting an exclusive latch on a section of the database. The core process is further capable of clearing the share latch asserted by the client process, upon termination of the client process while the share latch is still asserted. Specific methods for such clearing, as well as latch logs, are also disclosed.
86 Citations
39 Claims
-
1. A computer-implemented method operable on a database access to which is governed by a core process able to assert an exclusive latch onto a section of the database and a client process able to assert a share latch onto the section the database, the method comprising:
-
determining that the client process has terminated;
upon determining that the client process has terminated, determining whether the share latch of the client is still being asserted onto the section of the database; and
,upon determining that the share latch of the client is still being asserted onto the section of the database, clearing the share latch, wherein the determination of whether the share latch of the terminated client is still asserted comprises attempting to assert the exclusive latch onto the section of the database. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented method operable on a database access to which is governed by a core process able to assert an exclusive latch onto a section of the database and a client process able to assert a share latch onto the section the database, the method comprising:
-
determining that the client process has terminated;
upon determining that the client process has terminated, determining whether the share latch of the client is still being asserted onto the section of the database; and
,upon determining that the share latch of the client is still being asserted onto the section of the database, clearing the share latch, wherein the determination of whether the share latch of the terminated client is still asserted comprises attempting to assert the exclusive onto the section of the database, wherein determining whether the share latch of the client is still being asserted onto the section of the database comprises;
attempting to assert the exclusive latch onto the section of the database; and
,upon determining that attempting to assert the exclusive latch onto the section of the database was successful, concluding that the share latch of the client is not still being asserted onto the section of the database, wherein determining whether the share latch of the client is still being asserted onto the section of the database further comprises, upon determining that attempting to assert the exclusive latch onto the section of the database was unsuccessful, determining whether another exclusive latch is already being asserted onto the section of the database, upon determining that another exclusive latch is not already being asserted onto the section of the database, waiting for a predetermined length of time;
determining whether any shared latches are still being asserted on the section of the database;
concluding that the share latch of the client is still being asserted on the section of the database upon determining that there are any shared latches still being asserted on the section of the database; and
,otherwise concluding that the share latch of the client is not still being asserted on the section of the database. - View Dependent Claims (8)
waiting for at least a second predetermined length of time while another exclusive latch is being asserted onto the section of the database; while waiting, determining whether any share latches are still being asserted on the section of the database by client processes including the client process;
upon determining that there are not any shared latches still being asserted on the section of the database by client processes including the client process, concluding that the share latch of the client is not still being asserted on the section of the database; and
,otherwise, after waiting, concluding that the share latch of the client is still being asserted on the section of the database.
-
-
9. A machine-readable medium having instructions stored thereon for execution by a processor to perform a method operable on a database access to which is governed by a core process able to assert an exclusive latch onto a section of the database and a client process able to assert a share latch onto the section of the database, the method comprising:
-
determining that the client process has terminated;
upon determining that the client process has terminated, attempting to assert the exclusive latch onto the section of the database;
upon determining that attempting to assert the exclusive latch onto the section of the database was successful, concluding that the share latch of the client is not still being asserted onto the section of the database;
upon determining that attempting to assert the exclusive latch onto the section of the database was unsuccessful, determining whether the share latch of the client is still being asserted onto the section of the database; and
,upon concluding that the share latch of the client is still being asserted onto the section of the database, clearing the share latch. - View Dependent Claims (10, 11, 12)
-
-
13. A machine-readable medium having instructions stored thereon for execution by a processor to perform a method operable on a database access to which is governed by a core process able to assert an exclusive latch onto a section of the database and a client process able to assert a share latch onto the section the database, the method comprising:
-
determining that the client process has terminated;
upon determining that the client process has terminated, attempting to assert the exclusive latch onto the section of the database;
upon determining that attempting to assert the exclusive latch onto the section of the database was successful, concluding that the share latch of the client is not still being asserted onto the section of the database;
upon determining that attempting to assert the exclusive latch onto the section of the database was unsuccessful, determining whether the share latch of the client is still being asserted onto the section of the database; and
,upon concluding that the share latch of the client is still being asserted onto the section of the database, clearing the share latch, wherein determining whether the share latch of the client is still being asserted onto the section of the database comprises;
determining whether another exclusive latch is already being asserted onto the section of the database;
upon determining that another exclusive latch is not already being asserted onto the section of the database, waiting for a predetermined length of time;
determining whether any shared latches are still being asserted on the section of the database;
concluding that the share latch of the client is still being asserted on the section of the database upon determining that there are any shared latches still being asserted on the section of the database; and
,otherwise concluding that the share latch of the client is not still being asserted on the section of the database. - View Dependent Claims (14)
waiting for at least a second predetermined length of time while one of the another exclusive latch is being asserted onto the section of the database; while waiting, determining whether any share latches are still being asserted on the section of the database by client processes including the client process;
upon determining that there are not any shared latches still being asserted on the section of the database by client processes including the client process, concluding that the shared latch of the client is not still being asserted on the section of the database; and
,otherwise, after waiting, concluding that the share latch of the client is still being asserted on the section of the database.
-
-
15. A computer-implemented method comprising:
-
for a client process that has terminated, determining a latch log having a plurality of entries;
scanning each entry of the latch log for a section of the entry;
upon locating a section of an entry, determining whether the client process has asserted a share latch on the section, taking into account potential occurrence that a latch flag of the entry indicating whether the client process has asserted the share latch is incorrect; and
,clearing a share latch for the section upon determining that the client process has asserted the share latch on the section. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
-
23. A machine-readable medium having instructions stored thereon for execution by a processor to perform a method comprising:
-
for a client process that has terminated, determining a latch log having a plurality of entries;
scanning each entry of the latch log for a section of the entry;
upon locating a section of an entry, determining whether the client process terminated after the latch flag of the entry was set to indicate that the client process has not asserted the share latch but before the share latch was unasserted; and
,clearing a share latch for the section upon so determining. - View Dependent Claims (24, 25)
-
-
26. A machine-readable medium having instructions stored thereon for execution by a processor to perform a method comprising:
-
for a client process that has terminated, determining a latch log having a plurality of entries;
scanning each entry of the latch log for a section of the entry;
upon locating a section of an entry, determining whether the client process terminated after the share latch has been asserted but before a latch flag of the entry was set to indicate that the client process has asserted the share latch; and
,clearing a share latch for the section upon so determining. - View Dependent Claims (27, 28)
-
-
29. A computerized system comprising:
-
a database having a plurality of sections;
a client process capable of asserting a share latch on a section of the database; and
,a core process capable of asserting an exclusive latch on a section of the database in order to determine whether a share latch is asserted on the section by a terminated client process, wherein the core process is capable of clearing the share latch asserted by the client process upon termination of the client process while the share latch is still asserted. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
-
-
37. A machine-readable medium having instructions stored thereon to transform a general-purpose computer to a special-purposed computer comprising:
-
a database having a plurality of sections;
means for asserting a share latch on a section of the database; and
,means for asserting an exclusive latch on a section of the database and for clearing the share latch asserted by the client process upon termination of the client process while the share latch is still asserted;
wherein the exclusive share latch is asserted on a section of the database in order to determine whether the client process terminated while the share latch is still asserted. - View Dependent Claims (38, 39)
-
Specification