US 11,860,829 B2
Page split detection and affinity in query processing pushdowns
Craig S. Freedman, Sammamish, WA (US); Adrian-Leonard Radu, Sammamish, WA (US); Daniel G. Schall, Woodinville, WA (US); Hanumantha R. Kodavalla, Sammamish, WA (US); Panagiotis Antonopoulos, Redmond, WA (US); Raghavendra Thallam Kodandaramaih, Redmond, WA (US); Alejandro Hernandez Saenz, Kirkland, WA (US); and Naveen Prakash, Sammamish, WA (US)
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Feb. 19, 2021, as Appl. No. 17/180,508.
Claims priority of provisional application 63/127,790, filed on Dec. 18, 2020.
Prior Publication US 2022/0197873 A1, Jun. 23, 2022
Int. Cl. G06F 16/21 (2019.01); G06F 16/24 (2019.01); G06F 16/245 (2019.01)
CPC G06F 16/21 (2019.01) [G06F 16/245 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
storing, by a page server, a first page of a database, the first page including first data;
receiving, by the page server, a database read request for the first data that includes an expected next page identifier of a page of the database that is logically adjacent to the first page at a time the database read request was generated;
identifying, by the page server, an actual next page identifier from the first page, the actual next page identifier identifying a page of the database that is logically adjacent to the first page at a second point in time, the second point in time occurring after receiving the database read request by the page server;
comparing, by the page server, the expected next page identifier and the actual next page identifier;
determining, by the page server and during fulfillment of the database read request, that there is a mismatch between the expected next page identifier and the actual next page identifier, the mismatch indicating that a concurrent database operation has caused a page split in the first page to occur during the fulfillment of the database read request by the page server; and
in response to determining that a mismatch exists, fulfilling, by the page server, the database read request using a portion of data from the first page, and a portion of data from the page of the database that is logically adjacent to the first page at the second point in time.