IP Library Granted Patent US 9,065,851
Granted Patent B2
US 9,065,851 · App. 12/986,086 · Granted Jun 23, 2015

Systems and methods for storing and retrieving data

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,065,851
App. No.
12/986,086
Granted
Jun 23, 2015
Kind
B2
Abstract

Storing data is disclosed. A range or addresses is received and the range of addresses is stored in a bulk object. Retrieving data is disclosed. A request to access data associated with an address within a range of addresses is received. A response is derived based at least in part on a bulk object.

Claims (54)

1. A method of storing data, comprising:

receiving a first network address, wherein the first network address corresponds to a plurality of contiguous network addresses;

receiving a range of network addresses, wherein the range of network addresses is associated with Domain Name System (DNS);

storing using a processor the range of network addresses as a first bulk object in a database for storing information associated with the range of network addresses, wherein the first bulk object is a bulk record associated with multiple hosts in a range of network addresses, wherein the range of network addresses includes a contiguous set of addresses bounded by an inclusive begin address and an inclusive end address, and wherein an index is used to access objects stored in the database; and

storing using the processor the first network address as a second bulk object in the database, the second bulk object being another bulk record and different from the first bulk object;

wherein storing includes:

inserting an edge associated with the begin address of the range of network addresses into the index, the edge including a begin marker for the range of network addresses and a reference to the first bulk object;

inserting an edge associated with the end address of the range of network addresses into the index, the edge including an end marker for the range of network addresses and a reference to the first bulk object; and

determining whether the first network address is located between the begin address and the end address;

in the event that each network address of the first network address is located between the begin address and the end address:

inserting an edge associated with the first network address into the index, the edge including an address marker and a split marker, wherein the address marker is a reference to the second bulk object, and wherein the split marker is a reference to the first bulk object; and

in the event that each network address of the first network address is located outside the begin address and the end address:

inserting the first network address into the index;

wherein the first and second bulk objects are reverse zone records and are associated with a constraint, the constraint being disjointed or nested;

wherein in the event that the first and second bulk objects are disjointed, the range of network addresses of the first bulk object does not overlap with a range of network addresses of the second bulk object; and

wherein in the event that the first and second bulk objects are nested, the range of network addresses of the first bulk object overlaps with the range of network addresses of the second bulk object.

2. The method as recited in claim 1 , wherein the ranges of network addresses the first and second bulk objects include ranges of Internet Protocol (IP) addresses.

3. The method as recited in claim 1 , wherein a split marker marks where another network address or edge is inserted between two existing edges.

4. A system for storing data, comprising:

a processor configured to:

receive a first network address, wherein the first network address corresponds to a plurality of contiguous network addresses;

receive a range of network addresses, wherein the range of network addresses is associated with Domain Name System (DNS);

store using a processor the range of network addresses as a first bulk object in a database for storing information associated with the range of network addresses, wherein the first bulk object is a bulk record associated with multiple hosts in a range of network addresses, wherein the range of network addresses includes a contiguous set of addresses bounded by an inclusive begin address and an inclusive end address, and wherein an index is used to access objects stored in the database; and

store using the processor the first network address as a second bulk object in the database, the second bulk object being another bulk record and different from the first bulk object;

wherein storing includes:

inserting an edge associated with the begin address of the range of network addresses into the index, the edge including a begin marker for the range of network addresses and a reference to the first bulk object;

inserting an edge associated with the end address of the range of network addresses into the index, the edge including an end marker for the range of network addresses and a reference to the first bulk object;

determining whether the first network address is located between the begin address and the end address;

in the event that each network address of the first network address is located between the begin address and the end address:

inserting an edge associated with the first network address into the index, the edge including an address marker and a split marker, wherein the address marker is a reference to the second bulk object and wherein the split marker is a reference to the first bulk object; and

in the event that each network address of the first network address is located outside the begin address and the end address:

inserting the first network address into the index;

wherein the first and second bulk objects are reverse zone records and are associated with a constraint, the constraint being disjointed or nested;

wherein in the event that the first and second bulk objects are disjointed, the range of network addresses of the first bulk object does not overlap with a range of network addresses of the second bulk object; and

wherein in the event that the first and second bulk objects are nested, the range of network addresses of the first bulk object overlaps with the range of network addresses of the second bulk object; and

a memory coupled with the processor, wherein the memory provides the processor with instructions.

5. The system as recited in claim 4 , wherein a split marker marks where another network address or edge is inserted between two existing edges.

6. A computer program product for storing data, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a first network address, wherein the first network address corresponds to a plurality of contiguous network addresses;

receiving a range of network addresses, wherein the range of network addresses is associated with Domain Name System (DNS);

storing using a processor the range of network addresses as a first bulk object in a database for storing information associated with the range of network addresses, wherein the first bulk object is a bulk record associated with multiple hosts in a range of network addresses, wherein the range of network addresses includes a contiguous set of addresses bounded by an inclusive begin address and an inclusive end address, and wherein an index is used to access objects stored in the database; and

storing using a processor the first network address as a second bulk object in the database, the second bulk object being another bulk record and different from the first bulk object;

wherein storing includes:

inserting an edge associated with the begin address of the range of network addresses into the index, the edge including a begin marker for the range of network addresses and a reference to the first bulk object;

inserting an edge associated with the end address of the range of network addresses into the index, the edge including an end marker for the range of network addresses and a reference to the first bulk object;

determining whether the first network address is located between the begin address and the end address;

in the event that each network address of the first network address is located between the begin address and the end address:

inserting an edge associated with the first network address into the index, the edge including an address marker and a split marker, wherein the address marker is a reference to the second bulk object and wherein the split marker is a reference to the first bulk object; and

in the event that each network address of the first network address is located outside the begin address and the end address:

inserting the first network address into the index;

wherein the first and second bulk objects are reverse zone records and are associated with a constraint, the constraint being disjointed or nested;

wherein in the event that the first and second bulk objects are disjointed, the range of network addresses of the first bulk object does not overlap with a range of network addresses of the second bulk object; and

wherein in the event that the first and second bulk objects are nested, the range of network addresses of the first bulk object overlaps with the range of network addresses of the second bulk object.

7. The computer program product as recited in claim 6 , wherein a split marker marks where another network address or edge is inserted between two existing edges.

Assignments (8)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS (RELEASES RF 040575/0549) Recorded Dec 3, 2020
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: INFOBLOX INC.
Reel/Frame 054585/0914 →
FIRST LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0317 →
SECOND LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0331 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (RELEASES RF 040579/0302) Recorded Oct 23, 2019
From: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
To: INFOBLOX, INC.
Reel/Frame 050809/0980 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 8, 2016
From: INFOBLOX INC.
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 040579/0302 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 7, 2016
From: INFOBLOX INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040575/0549 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DOCKET NUMBER PREVIOUSLY RECORDED ON REEL 027119 FRAME 0171. ASSIGNOR(S) HEREBY CONFIRMS THE THE CORRECT DOCKET NUMBER IS INFOP023C1. Recorded Nov 16, 2011
From: PULLEYN, IVAN W.; BAILEY, STUART M.
To: INFOBLOX INC.
Reel/Frame 027241/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2011
From: PULLEYN, IVAN W.; BAILEY, STUART M.
To: INFOBLOX INC.
Reel/Frame 027119/0171 →