IP Library › Granted Patent US 8,893,131
Granted Patent B2
US 8,893,131 · App. 12/101,443 · Granted Nov 18, 2014

System and/or method for bulk loading of records into an ordered distributed database

Inventors: Raghu Ramakrishnan (Los Altos, CA); Erik Vee (San Jose, CA); Ramana Yerneni (Cupertino, CA); Utkarsh Srivastava (Fremont, CA); Brian Frank Cooper (San Jose, CA); Adam Silberstein (San Jose, CA)
Assignee: Yahoo! Inc.
G06F17/30339G06F9/5083G06F9/505
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 8,893,131
App. No.
12/101,443
Granted
Nov 18, 2014
Kind
B2
Abstract

In a large-scale transaction such as the bulk loading of new records into an ordered, distributed database, a transaction limit such as an insert limit may be chosen, partitions on overfull storage servers may be designated to be moved to underfull storage servers, and the move assignments may be based, at least in part on the degree to which a storage server is underfull and the move and insertion costs of the partitions to be moved.

Claims (41)

1. A method comprising:

identifying a plurality of partitions on a first storage server, wherein at least some partitions of the plurality of partitions includes a set of existing records;

identifying a set of new records to be inserted into at least one partition of the plurality of partitions;

in response to determining the first storage server is in an overfull state, said determining being based at least in part on the identified set of new records exceeding an insert limit, said insert limit being based at least in part on a maximum permissible number of records the plurality of partitions is capable to receive, determining an insertion cost for inserting a portion of said set of new records into respective partitions of the plurality of partitions, wherein said insertion cost is based, at least in part, on a number of new records within the portion of said set of new records to be inserted into the respective partitions of the plurality of partitions;

for each of the respective partitions of the plurality of partitions, determining a move cost based, at least in part, on a number of records in each of the respective partitions of the set of existing records;

selecting a first partition of the respective partitions of the plurality of partitions for transition to a second storage server based, at least in part, on a ratio of said move cost associated with the first partition of the respective partitions of the plurality of partitions to said insertion cost associated with the first partition of the respective partitions of the plurality of partitions; and

transitioning the set of existing records of the selected first partition to the second storage server identified as an underfull storage server.

2. The method of claim 1 , and further comprising:

determining whether said first storage server is in an overfull state based at least in part on an insert limit, wherein said insert limit is based at least in part on a maximum permissible number of records that said plurality of partitions is capable to receive.

3. The method of claim 1 further comprising determining a cost based at least in part on a sum of a maximum permissible number of new records that said second storage server is to receive, and a maximum permissible number of existing records that said first storage server is to transfer.

4. The method of claim 1 wherein said ratio is a first ratio, the method further comprising:

selecting a second partition of the respective partitions of the plurality of partitions for transition to the second storage server based, at least in part, on a second ratio, wherein said second ratio comprises a ratio of a move cost associated with the second partition of the respective partitions of the plurality of partitions to said insertion cost; and

determining an order for transitioning the first partition of the respective partitions of the plurality of partitions relative to the second partition of the respective partitions of the plurality of partitions based at least in part on said first ratio and said second ratio.

5. An apparatus comprising:

a computing platform, the computing platform comprising at least one communications port for communicating with storage servers, the computing platform to:

identify a plurality of partitions on a first storage server, wherein at least some partitions of the plurality of partitions includes a set of existing records;

identify a set of new records to be inserted into at least one partition of the plurality of partitions;

in response to determining the first storage server is in an overfull state, said determining being based at least in part on the identified set of new records exceeding an insert limit, said insert limit being based at least in part on a maximum permissible number of records the plurality of partitions is capable to receive, determine an insertion cost for inserting a portion of said set of new records into respective partitions of the plurality of partitions, wherein said insertion cost is based, at least in part, on a number of new records within the portion of said set of new records to be inserted into the respective partitions of the plurality of partitions;

for each of the respective partitions of the plurality of partitions, determine a move cost based, at least in part, on a number of records in each of the respective partitions of the set of existing records;

select a first partition of the respective partitions of the plurality of partitions for transition to a second storage server based, at least in part, on a ratio of said move cost associated with the first partition of the respective partitions of the plurality of partitions to said insertion cost associated with the first partition of the respective partitions of the plurality of partitions; and

transition the set of existing records of the selected first partition to the second storage server identified as an underfull storage server.

6. The apparatus of claim 5 , the computing platform to further:

determine whether said first storage server is in an overfull state based at least in part on an insert limit, wherein said insert limit is based at least in part on a maximum permissible number of records that said plurality of partitions is capable to receive.

7. The apparatus of claim 5 wherein said ratio is a first ratio, the computing platform to further:

select a second partition of the respective partitions of the plurality of partitions for transition to the second storage server based, at least in part, on a second ratio, wherein said second ratio comprises a ratio of a move cost associated with the second partition of the respective partitions of the plurality of partitions to said insertion cost; and

determine an order for transitioning the first partition of the respective partitions of the plurality of partitions relative to the second partition of the respective partitions of the plurality of partitions based at least in part on said first ratio and said second ratio.

8. An article comprising:

a non-transitory storage medium comprising machine readable instructions stored thereon executable by a computing platform to:

identify a plurality of partitions on a first storage server, wherein at least some partitions of the plurality of partitions includes a set of existing records;

identify a set of new records to be inserted into at least one partition of the plurality of partitions;

in response to determining the first storage server is in an overfull state, said determining being based at least in part on the identified set of new records exceeding an insert limit, said insert limit being based at least in part on a maximum permissible number of records the plurality of partitions is capable to receive, determine an insertion cost for inserting a portion of said set of new records into respective partitions of the plurality of partitions, wherein said insertion cost is based, at least in part, on a number of new records within the portion of said set of new records to be inserted into the respective partitions of the plurality of partitions;

for each of the respective partitions of the plurality of partitions, determine a move cost based, at least in part, on a number of records in each of the respective partitions of the set of existing records;

select a first partition of the respective partitions of the plurality of partitions for transition to a second storage server based, at least in part, on a ratio of said move cost associated with the first partition of the respective partitions of the plurality of partitions to said insertion cost associated with the first partition of the respective partitions of the plurality of partitions; and

transition the set of existing records of the selected first partition to the second storage server identified as an underfull storage server.

9. The article of claim 8 , said machine readable instructions being further executable by said computing platform to:

determine whether said first storage server is in an overfull state based at least in part on an insert limit, wherein said insert limit is based at least in part on a maximum permissible number of records that said plurality of partitions is capable to receive.

10. The article of claim 8 , said machine readable instructions being further executable by said computing platform to:

determine a cost based at least in part on a sum of a maximum permissible number of new records that said second storage server is to receive, and a maximum permissible number of existing records that said first storage server is to transfer.

11. The article of claim 8 wherein said ratio is a first ratio, said machine readable instructions being further executable by said computing platform to:

select a second partition of the respective partitions of the plurality of partitions for transition to the second storage server based, at least in part, on a second ratio, wherein said second ratio comprises a ratio of a move cost associated with the second partition of the respective partitions of the plurality of partitions to said insertion cost; and

determine an order for transitioning the first partition of the respective partitions of the plurality of partitions relative to the second partition of the respective partitions of the plurality of partitions based at least in part on said first ratio and said second ratio.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2008
From: RAMAKRISHNAN, RAGHU; VEE, ERIK; YERNENI, RAMANA; SRIVASTAVA, UTKARSH; COOPER, BRIAN FRANK; SILBERSTEIN, ADAM
To: YAHOO! INC.
Reel/Frame 020790/0261 →
Continuity (1)
Related Publication 20090260016A1 · Oct 15, 2009