IP Library Granted Patent US 9,535,961
Granted Patent B2
US 9,535,961 · App. 14/358,500 · Granted Jan 3, 2017

Query summary generation using row-column data storage

Inventors: Debabrata Dash (Vaud, CH); Wenting Tang (Sunnyvale, CA); Marylou Orayani (San Jose, CA); Bradley W. Cleveland (Los Altos, CA); Masaki Utsumiya (San Jose, CA)
Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
G06F17/30554G06F17/30315G06F17/30477G06F17/30536
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,535,961
App. No.
14/358,500
Filed
May 15, 2014
Granted
Jan 3, 2017
Kind
B2
Art Unit
2158
USPC
707/722
Abstract

A data storage system includes a column store and a row store. The data storage system may generate a query summary. The data storage system determines query summary fields comprised of a subset of fields from a schema used to store data in the row store. The data storage system searches the column store or the row store for query results in the query summary fields. A query summary field is generated from the query results in the query summary fields.

Claims (76)

1. A method of generating a query summary from data stored in a column store and a row store in a data storage system, the method comprising:

receiving a query;

determining query summary fields comprised of a subset of fields from a schema used to store data in the row store;

determining if all the query summary fields are stored in the column store;

if all the query summary fields are stored in the column store, searching the column store for query results in the query summary fields;

if one of the query summary fields is not stored in the column store, searching the row store instead of the column store for the query results in the query summary fields;

generating, by a processor, a query summary from the query results in the query summary fields;

receiving a drill down request pertaining to the query summary, the drill down request identifying a query summary field;

determining that the query summary field is not a field of the schema used to store data in the row store;

in response to determining that the query summary field is not a field of the schema, creating a discovered field and adding the discovered field to the row store; and

searching the row store using tokens associated with the discovered field to retrieve events matching the query for the query summary field, to satisfy the drill down request.

2. The method of claim 1 , wherein generating a query summary from the query results in the query summary fields comprises:

determining counts of field values in each of the query summary fields; and

providing the counts in the query summary.

3. The method of claim 1 , wherein generating a query summary from the query results in the query summary fields comprises:

bucketizing, by the processor, field values for a query summary field into buckets;

determining aggregated counts of the field values in the buckets; and

providing the aggregated counts in the query summary.

4. The method of claim 1 , wherein bucketizing field values for a query summary field into buckets comprises determining buckets by increasing a log scale if uniform buckets are scored.

5. The method of claim 1 , wherein generating a query summary from the query results in the query summary fields comprises:

determining an approximate count of field values in a query summary field, wherein determining an approximate count comprises:

determining a predetermined number of field values for the query summary field;

receiving a field value not in the predetermined number of field values;

determining using a bloom filter for the query summary field, whether the received field value is a field value that was received previously;

if the field value is determined to have been received previously, identifying a field value from the predetermined number of field values having a lowest count, discarding the field value having the lowest count, including the received field value in the predetermined number of field values, and assigning a count to the received value equal to the lowest count plus one; and

if the field value is determined to not have been received previously, identifying a field value from the predetermined number of field values having a lowest count, discarding the field value having a lowest count, including the received field value in the predetermined number of field values, and assigning a count to the received value equal to one.

6. The method of claim 1 , wherein determining the query summary fields comprises:

prioritizing the query summary fields based on skew and frequency of hits in the query summary fields; and

generating the query summary according to the priorities of the query summary fields.

7. The method of claim 1 , comprising:

identifying specific field values in the query results that are the query results more than a predetermined number of times;

determining correlations between the specific field values;

generating tuples of the specific field values based on the correlations; and

generating a tuple display for the tuples, the tuple display comprising a list of the tuples, a tree-based display for each tuple, or a table display of tuples in each tree.

8. The method of claim 1 , comprising:

generating episodic global summaries;

using the episodic global summaries to optimize the query if the query is time-based.

9. A non-transitory computer readable medium including machine readable instructions that when executed by a processor perform a method of generating a query summary from data stored in a column store and a row store in a data storage system, the instructions comprising instructions to:

receive a query;

determine query summary fields comprised of a subset of fields from a schema used to store data in the row store;

determine if all the query summary fields are stored in the column store;

if all the query summary fields are stored in the column store, search the column store for query results in the query summary fields;

if one of the query summary fields is not stored in the column store, search the row store instead of the column store for the query results in the query summary fields;

generate a query summary from the query results in the query summary fields;

receive a drill down request pertaining to the query summary, the drill down request identifying a query summary field;

determine that the query summary field is not a field of the schema used to store data in the row store;

in response to determining that the query summary field is not a field of the schema, create a discovered field and adding the discovered field to the row store; and

search the row store using tokens associated with the discovered field to retrieve events matching the query for the query summary field, to satisfy the drill down request.

10. The non-transitory computer readable medium of claim 9 , wherein instructions to generate a query summary from the query results in the query summary fields comprise instructions to:

determine counts of field values in each of the query summary fields; and

provide the counts in the query summary.

11. The non-transitory computer readable medium of claim 9 , wherein instructions to generate a query summary from the query results in the query summary fields comprise instructions to:

bucketize field values for a query summary field into buckets;

determine aggregated counts of the field values in the buckets; and

provide the aggregated counts in the query summary.

12. The non-transitory computer readable medium of claim 9 , wherein instructions to bucketize field values for a query summary field into buckets comprise instructions to determine buckets by increasing a log scale if uniform buckets are scored.

13. The non-transitory computer readable medium of claim 9 , wherein instructions to generate a query summary from the query results in the query summary fields comprise instructions to:

determine an approximate count of field values in a query summary field, wherein determining an approximate count comprises:

determining a predetermined number of field values for the query summary field;

receiving a field value not in the predetermined number of field values;

determining using a bloom filter for the query summary field, whether the received field value is a field value that was received previously;

if the field value is determined to have been received previously, identifying a field value from the predetermined number of field values having a lowest count, discarding the field value having the lowest count, including the received field value in the predetermined number of field values, and assigning a count to the received value equal to the lowest count plus one; and

if the field value is determined to not have been received previously, identifying a field value from the predetermined number of field values having a lowest count, discarding the field value having a lowest count, including the received field value in the predetermined number of field values, and assigning a count to the received value equal to one.

14. A data storage system comprising:

a processor to

receive a query;

determine query summary fields comprised of a subset of fields from a schema used to store data in the row store;

determine if all the query summary fields are stored in the column store;

if all the query summary fields are stored in the column store, search the column store for query results in the query summary fields;

if one of the query summary fields is not stored in the column store, search the row store instead of the column store for the query results in the query summary fields;

generate a query summary from the query results in the query summary fields;

receive a drill down request pertaining to the query summary, the drill down request identifying a query summary field;

determine that the query summary field is not a field of the schema used to store data in the row store;

in response to determining that the query summary field is not a field of the schema, create a discovered field and adding the discovered field to the row store; and

search the row store using tokens associated with the discovered field to retrieve events matching the query for the query summary field, to satisfy the drill down request; and

a memory to store the query summary.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2014
From: DASH, DEBABRATA; TANG, WENTING; ORAYANI, MARYLOU; CLEVELAND, BRADLEY W.; UTSUMIYA, MASAKI
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 033315/0309 →
Continuity (1)
Related Publication 20140330816A1 · Nov 6, 2014