IP Library Granted Patent US 7,111,144
Granted Patent B2
US 7,111,144 · App. 10/247,787 · Granted Sep 19, 2006

Systems and methods for storing and retrieving data in a web server environment

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 7,111,144
App. No.
10/247,787
Granted
Sep 19, 2006
Kind
B2
Abstract

A redundant storage system implemented in a web server environment. The system comprises a web server database accessible to multiple web servers. The web server database is comprised of at least a first and a second storage bank. The first storage bank is comprised of at least a first and a second sub-bank with at least a portion of data stored on the first sub-bank also being stored on the second sub-bank. Methods for using the storage system comprise receiving a write access addressed to the first storage bank, and storing data associated with the write access to the second storage bank when the second sub-bank is inoperable. The storage area addressed by the write access is then de-allocated.

Claims (57)

1. A redundant data storage system associated with a database server in a web server environment, the system comprising:

a plurality of web servers;

a load balancer for distributing access requests to the plurality of web servers;

a web server database accessible to the plurality of web servers, wherein the web server database is comprised of at least a first and a second storage bank;

wherein the first storage bank is comprised of at least a first and a second sub-bank; and

wherein at least a substantial portion of data stored on the first sub-bank is also stored on the second sub-bank.

2. The system of claim 1 , wherein all data stored on the first sub-bank is also stored on the second sub-bank, and wherein the second sub-bank is a back-up for the first sub-bank.

3. The system of claim 1 , wherein the first sub-bank and the second sub-bank each comprise a first address space and a second address space, and wherein primary access to the first address space is from the first sub-bank and primary access to the second address space is from the second sub-bank.

4. The system of claim 1 , wherein the first storage bank further comprises a third sub-bank, and wherein at least a portion of data maintained on the second sub-bank is also maintained on the third sub-bank.

5. The system of claim 4 , wherein the first sub-bank comprises a first address space and a second address space, the second sub-bank comprises the second address space and a third address space, the third sub-bank comprises the third address space and the first address space.

6. The system of claim 5 , wherein the second sub-bank provides a primary access to the second address space and the third sub-bank provides a back-up of the second address space.

7. The system of claim 1 , wherein the first sub-bank is a serial accessible mass storage device.

8. The system of claim 1 , wherein the first sub-bank is an IDE mass storage device.

9. The system of claim 1 , wherein the first sub-bank is an SCSI mass storage device.

10. The system of claim 1 , further comprising a temporary storage area associated with the database server.

11. The system of claim 1 , wherein the plurality of web servers comprises a first and a second web server, and wherein the web server database is a first web server database associated with the first web server, the system further comprising:

a second web server database associated with the second web server, wherein data from the second web server database is accessible to the first web server.

12. A method for redundantly storing data in a web server environment comprising multiple web servers, the method comprising:

providing an interconnect between a first web server and a database server and a second web server and the database server;

providing a load balancer, wherein the load balancer distributes access requests to the web servers;

providing a database associated with the database server, wherein the database comprises a first and a second storage bank, and wherein the first storage bank is comprised of at least a first and a second sub-bank, and wherein the first and the second sub-banks each comprise an address space; and

transferring data from the first web server to the database server, wherein the database server writes the data to the address space of the first and the second sub-banks.

13. The method of claim 12 , wherein the database server writes the data to the address space of the first and the second sub-banks concurrently.

14. The method of claim 12 , wherein the address space is a first address space, and wherein the first and the second sub-banks each comprise a second address space, the method further comprising:

transferring data to the second address space of the first and the second sub-banks, wherein, in the absence of a failure of either the first sub-bank or the second sub-bank, data in the first address space is read from the first sub-bank and data in the second address space is read from the second sub-bank.

15. The method of claim 12 , further comprising:

preventing a write access to the first storage bank when the second sub-bank is inaccessible.

16. The method of claim 15 , further comprising:

indicating an error condition when the second sub-bank is inaccessible and a write access is attempted to the first storage bank.

17. The method of claim 15 , further comprising:

diverting data addressed to the first storage bank to a temporary storage when the second sub-bank is inaccessible; and

replacing the inaccessible second sub-bank; and

transferring the diverted data to the first storage bank, wherein the first storage bank comprises the replaced second sub-bank.

18. The method of claim 17 , further comprising: copying data from the first sub-bank to the replaced second sub-bank.

19. The method of claim 12 , further comprising:

receiving a write access to the first storage bank when the second sub-bank is inoperable;

storing data associated with the write access to the second storage bank; and

maintaining an out of use pointer to the storage area of the first storage bank to which the write access was addressed.

20. The method of claim 19 , further comprising:

providing access to the data at the second storage bank; and

de-allocating a storage area in the first storage bank associated with the out of use pointer, wherein a sub-bank replacing the inoperable second sub-bank contains the same data stored on the first sub-bank.

21. The method of claim 20 , wherein the de-allocating the storage area comprises deleting data maintained in the storage area.

22. The method of claim 12 , wherein the database comprises a third sub-bank, and wherein the address space is a first address space, the method further comprising:

writing data to a second address space in the second sub-bank and in the third sub-bank;

writing data to a third address space in the first sub-bank and the third sub-bank; and

wherein, in the absence of a failure of the third sub-bank, the data in the third address space is read from the third sub-bank.

23. A storage system distributed between multiple database servers in a web server environment, the system comprising:

a plurality of web servers;

a load balancer for distributing access requests to the plurality of web servers;

a first database associated with a first database server and a second database associated with a second database server;

the first database comprising a first and a second storage bank, at least the first storage bank comprising a first and a second sub-bank;

the second database comprising a third and a fourth storage bank, at least the third storage bank including a third and a fourth sub-bank;

wherein at least a portion of data stored on the first sub-bank is replicated on the second sub-bank; and

wherein at least a portion of data stored on the third sub-bank is replicated on the fourth sub-bank.

24. The storage system of claim 23 , wherein the first, second, third and fourth storage banks comprise IDE mass storage devices.

25. The storage system of claim 23 , wherein the first and second sub-banks are concurrently written.

26. The storage system of claim 23 , wherein the first and second database servers are accessible to the plurality of web servers.

Assignments (11)
RELEASE OF FIRST LIEN SECURITY INTEREST Recorded Dec 7, 2020
From: JPMORGAN CHASE BANK, N.A.
To: ANCESTRY.COM OPERATIONS INC.; IARCHIVES, INC.; ANCESTRY.COM DNA, LLC; ANCESTRYHEALTH.COM, LLC; ADPAY, INC.
Reel/Frame 054618/0298 →
SECURITY INTEREST Recorded Dec 7, 2020
From: ANCESTRY.COM DNA, LLC; ANCESTRY.COM OPERATIONS INC.; IARCHIVES, INC.; ANCESTRYHEALTH.COM, LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054627/0212 →
SECURITY INTEREST Recorded Dec 7, 2020
From: ANCESTRY.COM DNA, LLC; ANCESTRY.COM OPERATIONS INC.; IARCHIVES, INC.; ANCESTRYHEALTH.COM, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 054627/0237 →
RELEASE OF SECURITY INTEREST Recorded Nov 29, 2017
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: ANCESTRY.COM LLC; ANCESTRY US HOLDINGS INC.; ANCESTRY.COM INC.; ANCESTRY.COM OPERATIONS INC.
Reel/Frame 044529/0025 →
SECOND LIEN SECURITY AGREEMENT Recorded Oct 24, 2016
From: ANCESTRY.COM OPERATIONS INC.; IARCHIVES, INC.; ANCESTRY.COM DNA, LLC; ANCESTRYHEALTH.COM, LLC; ADPAY, INC.
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 040259/0978 →
FIRST LIEN SECURITY AGREEMENT Recorded Oct 21, 2016
From: ANCESTRY.COM OPERATIONS INC.; IARCHIVES, INC.; ANCESTRY.COM DNA, LLC; ANCESTRYHEALTH.COM, LLC; ADPAY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 040449/0663 →
RELEASE OF SECURITY INTEREST Recorded Oct 20, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ANCESTRY.COM OPERATIONS INC.; ANCESTRY.COM DNA, LLC; IARCHIVES, INC.
Reel/Frame 040424/0354 →
SECURITY AGREEMENT Recorded Sep 1, 2015
From: ANCESTRY.COM OPERATIONS INC.; IARCHIVES, INC.; ANCESTRY.COM DNA, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 036519/0853 →
RELEASE (REEL 029537/ FRAME 0064) Recorded Aug 31, 2015
From: BARCLAYS BANK PLC
To: ANCESTRY.COM OPERATIONS INC.; ANCESTRY.COM DNA, LLC; IARCHIVES, INC.
Reel/Frame 036514/0816 →
PATENT SECURITY AGREEMENT Recorded Dec 28, 2012
From: ANCESTRY.COM OPERATIONS INC.; ANCESTRY.COM DNA, LLC; IARCHIVES, INC.
To: BARCLAYS BANK PLC, COLLATERAL AGENT
Reel/Frame 029537/0064 →
TERMINATION OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2012
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: ANCESTRY.COM OPERATIONS INC.
Reel/Frame 029548/0515 →