IP Library Granted Patent US 9,141,651
Granted Patent B1
US 9,141,651 · App. 13/563,293 · Granted Sep 22, 2015

Adaptive column set composition

Inventors: Silvius V. Rus (Orinda, CA); Thileepan Subramaniam (Mountain View, CA)
Assignee: Quantcast Corporation
G06F17/30292
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,141,651
App. No.
13/563,293
Granted
Sep 22, 2015
Kind
B1
Abstract

A column set server adapts to data use patterns by data consumers by modifying how a table produced by a data producer is partitioned into separate column sets to reduce the waste incurred in accessing the data by multiple consumers of the data. For example, the column set server adjusts a column set distribution when a new consumer process is added, when one is retired, or when relative data set size ratios change.

Claims (41)

1. A computer-implemented method of adapting a column set composition of a table produced by a data producer and used by a plurality of data consumers, the method comprising:

receiving notifications of a plurality of accesses to the table by the plurality of data consumers, the notifications including the columns of data of the table used by each of the data consumers, wherein at least two of the plurality of data consumers use overlapping but different subsets of columns of the table, and wherein the table is identified in the notifications by a table identifier;

analyzing by a column set server the plurality of accesses to determine an updated column set composition recommendation for the table, the analyzing comprising:

analyzing a plurality of combinations of column set partitions;

determining a total amount of waste for each of the plurality of combinations of column set partitions by determining, for a respective combination of column set partitions, an amount of data read from the table but not used by the respective data consumer for each access of the plurality of accesses to the table by the plurality of data consumers and performance losses due to a respective data consumer accessing multiple files;

selecting the combination of column set partitions having the lowest total amount of waste to be the updated column set composition recommendation;

communicating the updated column set composition recommendation for the table to the data producer for use in building the table for a next iteration; and

responsive to a change in the notifications of a plurality of accesses to the table, repeating the receiving, the analyzing, and the communicating steps above to adapt the column set composition to the changed accesses to the table.

2. The method of claim 1 , wherein analyzing the plurality of combinations of column set partitions comprises analyzing only combinations of column set partitions wherein the table is partitioned into five or fewer partitions.

3. The method of claim 1 , wherein the updated column set composition recommendation comprises identification of into how many sets the columns should be divided and which columns should be in each set.

4. The method of claim 1 , further comprising:

receiving notifications of a plurality of accesses to a plurality of other tables, and wherein the notifications of the accesses to the table and the notifications of accesses to the plurality of other tables each include a table identifier for the respective table.

5. The method of claim 1 , wherein a plurality of data producers produce a plurality of tables, each data producer associated with a respective producer identifier, and wherein the table is identified in the notifications by the table identifier and the producer identifier associated with the data producer that produced the table.

6. A non-transitory computer readable storage medium executing computer program instructions for adapting a column set composition of a table produced by a data producer and used by a plurality of data consumers, the computer program instructions comprising instructions for:

receiving notifications of a plurality of accesses to the table by the plurality of data consumers, the notifications including the columns of data of the table used by each of the data consumers, wherein at least two of the plurality of data consumers use overlapping but different subsets of columns of the table, and wherein the table is identified in the notifications by a table identifier;

analyzing the plurality of accesses to determine an updated column set composition recommendation for the table, the analyzing comprising:

analyzing a plurality of combinations of column set partitions;

determining a total amount of waste for each of the plurality of combinations of column set partitions by determining, for a respective combination of column set partitions, an amount of data read from the table but not used by the respective data consumer for each access of the plurality of accesses to the table by the plurality of data consumers and performance losses due to a respective data consumer accessing multiple files;

selecting the combination of column set partitions having the lowest total amount of waste to be the updated column set composition recommendation;

communicating the updated column set composition recommendation for the table to the data producer for use in building the table for a next iteration; and

responsive to a change in the notifications of a plurality of accesses to the table, repeating the receiving, the analyzing, and the communicating steps above to adapt the column set composition to the changed accesses to the table.

7. The storage medium of claim 6 , wherein the instructions for analyzing the plurality of combinations of column set partitions comprise instructions for analyzing only combinations of column set partitions wherein the table is partitioned into five or fewer partitions.

8. The storage medium of claim 6 , wherein the updated column set composition recommendation comprises identification of into how many sets the columns should be divided and which columns should be in each set.

9. The storage medium of claim 6 , further comprising instructions for:

receiving notifications of a plurality of accesses to a plurality of other tables, and wherein the notifications of the accesses to the table and the notifications of accesses to the plurality of other tables each include a table identifier for the respective table.

10. The storage medium of claim 6 , wherein a plurality of data producers produce a plurality of tables, each data producer associated with a respective producer identifier, and wherein the table is identified in the notifications by the table identifier and the producer identifier associated with the data producer that produced the table.

11. A system comprising:

a computer processor;

a non-transitory computer readable storage medium storing processor-executable computer program instructions for adapting a column set composition of a table produced by a data producer and used by a plurality of data consumers, the instructions comprising instructions for:

receiving notifications of a plurality of accesses to the table by the plurality of data consumers, the notifications including the columns of data of the table used by each of the data consumers, wherein at least two of the plurality of data consumers use overlapping but different subsets of columns of the table, and wherein the table is identified in the notifications by a table identifier;

analyzing the plurality of accesses to determine an updated column set composition recommendation for the table, the analyzing comprising:

analyzing a plurality of combinations of column set partitions;

determining a total amount of waste for each of the plurality of combinations of column set partitions by determining, for a respective combination of column set partitions, an amount of data read from the table but not used by the respective data consumer for each access of the plurality of accesses to the table by the plurality of data consumers and performance losses due to a respective data consumer accessing multiple files;

selecting the combination of column set partitions having the lowest total amount of waste to be the updated column set composition recommendation;

communicating the updated column set composition recommendation for the table to the data producer for use in building the table for a next iteration; and

responsive to a change in the notifications of a plurality of accesses to the table, repeating the receiving, the analyzing, and the communicating steps above to adapt the column set composition to the changed accesses to the table.

12. The system of claim 11 , wherein the instructions for analyzing the plurality of combinations of column set partitions comprise instructions for analyzing only combinations of column set partitions wherein the table is partitioned into five or fewer partitions.

13. The system of claim 11 , wherein the updated column set composition recommendation comprises identification of into how many sets the columns should be divided and which columns should be in each set.

14. The system of claim 11 , wherein the instructions further comprise instructions for:

receiving notifications of a plurality of accesses to a plurality of other tables, and wherein the notifications of the accesses to the table and the notifications of accesses to the plurality of other tables each include a table identifier for the respective table.

15. The system of claim 11 , wherein a plurality of data producers produce a plurality of tables, each data producer associated with a respective producer identifier, and wherein the table is identified in the notifications by the table identifier and the producer identifier associated with the data producer that produced the table.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Jun 21, 2024
From: BANK OF AMERICA, N.A.
To: QUANTCAST CORPORATION
Reel/Frame 067807/0017 →
SECURITY INTEREST Recorded Jun 18, 2024
From: QUANTCAST CORPORATION
To: CRYSTAL FINANCIAL LLC D/B/A SLR CREDIT SOLUTIONS
Reel/Frame 067777/0613 →
SECURITY INTEREST Recorded Dec 5, 2022
From: QUANTCAST CORPORATION
To: VENTURE LENDING & LEASING IX, INC.; WTI FUND X, INC.
Reel/Frame 062066/0265 →
SECURITY INTEREST Recorded Sep 30, 2021
From: QUANTCAST CORPORATION
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 057677/0297 →
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2021
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: QUANTCST CORPORATION
Reel/Frame 057678/0832 →
RELEASE OF SECURITY INTEREST Recorded May 6, 2021
From: VENTURE LENDING & LEASING VI, INC.; VENTURE LENDING & LEASING VII, INC.
To: QUANTCAST CORPORATION
Reel/Frame 056159/0702 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2021
From: TRIPLEPOINT VENTURE GROWTH BDC CORP.
To: QUANTCAST CORPORATION
Reel/Frame 055599/0282 →
SECURITY INTEREST Recorded Aug 7, 2018
From: QUANTCAST CORPORATION
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 046733/0305 →
FIRST AMENDMENT TO PATENT SECURITY AGREEMENT Recorded Nov 14, 2016
From: QUANTCAST CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 040614/0906 →
PATENT SECURITY AGREEMENT Recorded Jun 26, 2015
From: QUANTCAST CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 036020/0721 →
SECURITY AGREEMENT Recorded Oct 18, 2013
From: QUANTCAST CORPORATION
To: VENTURE LENDING & LEASING VI, INC.; VENTURE LENDING & LEASING VII, INC.
Reel/Frame 031438/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2012
From: RUS, SILVIUS V.; SUBRAMANIAM, THILEEPAN
To: QUANTCAST CORPORATION
Reel/Frame 028690/0583 →