IP Library Granted Patent US 9,747,164
Granted Patent B1
US 9,747,164 · App. 14/588,447 · Granted Aug 29, 2017

Guide word paged hash table

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,747,164
App. No.
14/588,447
Granted
Aug 29, 2017
Kind
B1
Abstract

A set of pages including a set of entries are stored on disk. A set of page headers are stored in memory. Each page header corresponds to a page on disk. A page header includes a page number identifying a corresponding page on disk, a first guide word, and a second guide word. The first and second guide words define minimum and maximum name values, respectively, of entries on the page. Upon a request to determine if an entry associated with a name value exists, the page headers are scanned to identify a page number in a header where the name value is between the guide words. The page, if not resident in memory, is located on disk, loaded into memory, and examined to determine whether the entry exists on the page.

Claims (55)

1. A method for accessing data comprising:

storing, on disk, a plurality of pages, each page comprising a plurality of entries;

storing, in memory, a plurality of page headers, each page header corresponding to a respective page of the plurality of pages, each page header comprising a page number identifying the respective page, a first guide word, and a second guide word, wherein the first and second guide words define minimum and maximum name values, respectively, of entries on the respective page;

upon a request to determine if an entry associated with a name value exists, scanning the first and second guide words of the plurality of page headers stored in memory;

identifying a particular page number in a particular page header when, based on the scan, the name value is between first and second guide words of the particular page header;

checking in memory pages for a page identified by the particular page number;

upon determining that the page is not in memory, locating the page on disk and loading, subject to a page replacement algorithm, the page into memory; and

examining the page loaded into memory to determine whether the entry exists on the page.

2. The method of claim 1 wherein the plurality of entries identify items previously backed up, an existing entry thereby indicating that an item identified by the existing entry has been previously backed up, and the examining the page comprises:

if the entry does not exist on the page, transmitting the item to a backup server for a backup.

3. The method of claim 1 wherein the plurality of entries identify items previously backed up, an existing entry thereby indicating that an item identified by the existing entry has been previously backed up, and the examining the page comprises:

if the entry does exist on the page, transmitting a reference to the backup server for the backup.

4. The method of claim 1 comprising:

not examining pages of the plurality of pages where the name value falls outside first and second guide words of page headers corresponding to the pages.

5. The method of claim 1 wherein the plurality of page headers are sorted according to the first and second guide words.

6. The method of claim 1 wherein a subset of the plurality of pages are associated with a backup and the method comprises:

checking with a backup server that the backup is valid; and

if the backup is not valid, excluding the subset of pages associated with the backup from the examination.

7. A system for accessing data, the system comprising:

a processor-based system executed on a computer system and configured to:

store, on disk, a plurality of pages, each page comprising a plurality of entries;

store, in memory, a plurality of page headers, each page header corresponding to a respective page of the plurality of pages, each page header comprising a page number identifying the respective page, a first guide word, and a second guide word, wherein the first and second guide words define minimum and maximum name values, respectively, of entries on the respective page;

upon a request to determine if an entry associated with a name value exists, scan the first and second guide words of the plurality of page headers stored in memory;

identify a particular page number in a particular page header when, based on the scan, the name value is between first and second guide words of the particular page header;

check in memory pages for a page identified by the particular page number;

upon a determination that the page is not in memory, locate the page on disk and load, subject to a page replacement algorithm, the page into memory; and

examine the page loaded into memory to determine whether the entry exists on the page.

8. The system of claim 7 wherein the plurality of entries identify items previously backed up, an existing entry thereby indicating that an item identified by the existing entry has been previously backed up, and the processor-based system is configured to:

if the entry does not exist on the page, transmit the item to a backup server for a backup.

9. The system of claim 7 wherein the plurality of entries identify items previously backed up, an existing entry thereby indicating that an item identified by the existing entry has been previously backed up, and the processor-based system is configured to:

if the entry does exist on the page, transmit a reference to the backup server for the backup.

10. The system of claim 7 wherein the processor-based system is configured to:

not examine pages of the plurality of pages where the name value falls outside first and second guide words of page headers corresponding to the pages.

11. The system of claim 7 wherein the plurality of page headers are sorted according to the first and second guide words.

12. The system of claim 7 wherein a subset of the plurality of pages are associated with a backup, and the processor-based system is configured to:

check with a backup server that the backup is valid; and

if the backup is not valid, exclude the subset of pages associated with the backup from the examination.

13. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:

storing, on disk, a plurality of pages, each page comprising a plurality of entries;

storing, in memory, a plurality of page headers, each page header corresponding to a respective page of the plurality of pages, each page header comprising a page number identifying the respective page, a first guide word, and a second guide word, wherein the first and second guide words define minimum and maximum name values, respectively, of entries on the respective page;

upon a request to determine if an entry associated with a name value exists, scanning the first and second guide words of the plurality of page headers stored in memory;

identifying a particular page number in a particular page header when, based on the scan, the name value is between first and second guide words of the particular page header;

checking in memory pages for a page identified by the particular page number;

upon determining that the page is not in memory, locating the page on disk and loading, subject to a page replacement algorithm, the page into memory; and

examining the page loaded into memory to determine whether the entry exists on the page.

14. The computer program product of claim 13 wherein the plurality of entries identify items previously backed up, an existing entry thereby indicating that an item identified by the existing entry has been previously backed up, and the examining the page comprises:

if the entry does not exist on the page, transmitting the item to a backup server for a backup.

15. The computer program product of claim 13 wherein the plurality of entries identify items previously backed up, an existing entry thereby indicating that an item identified by the existing entry has been previously backed up, and the examining the page comprises:

if the entry does exist on the page, transmitting a reference to the backup server for the backup.

16. The computer program product of claim 13 wherein the method comprises:

not examining pages of the plurality of pages where the name value falls outside first and second guide words of page headers corresponding to the pages.

17. The computer program product of claim 13 wherein the plurality of page headers are sorted according to the first and second guide words.

18. The computer program product of claim 13 wherein a subset of the plurality of pages are associated with a backup and the method comprises:

checking with a backup server that the backup is valid; and

if the backup is not valid, excluding the subset of pages associated with the backup from the examination.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 1, 2015
From: AUCHMOODY, SCOTT; MALAMUT, MARK
To: EMC CORPORATION
Reel/Frame 034610/0236 →