IP Library Granted Patent US 10,838,931
Granted Patent B1
US 10,838,931 · App. 15/581,665 · Granted Nov 17, 2020

Use of stream-oriented log data structure for full-text search oriented inverted index metadata

Inventors: Aaron W. Spiegel (Stilwell, KS); Stephen G. Graham (Chapel Hill, NC); Paul R Kingston (Cumming, GA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F16/215G06F16/2228G06F16/258G06F16/31
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 10,838,931
App. No.
15/581,665
Granted
Nov 17, 2020
Kind
B1
Abstract

Systems and methods are disclosed for efficiently indexing stream data to facilitate full-text search of the stream data. A stream comprises a plurality of intervals of log data records. An interval of log data records are indexed. The index and log data records for the interval are written to an indexed stream data file. The index for each interval contains pointers to the terms in the log data records for the interval. After a number of intervals of index and log data records have been written, a merge operation can merge the number of intervals of index into a single merged index. The merged index and intervals of log data records are written to the indexed data stream file. A full-text search index is generated by traversing and merging the interval indexes for the data stream.

Claims (48)

1. A computer-implemented method performed by a server, for efficiently generating a full-text search index for a data stream of records, the method comprising:

for each of a plurality of predetermined intervals of time:

receiving a plurality of data stream records;

generating an index of terms for the plurality of data stream records for the interval;

writing the index of terms for the plurality of data stream records for the interval, and the plurality of data stream records for the interval, into a single file termed an indexed data stream file;

in response to determining that the data stream records for a threshold number of predetermined time intervals have been indexed, generating the full-text search index for the plurality of time intervals by merging the index of terms from one or more of the plurality of intervals of time in the indexed data stream file in an ordered manner.

2. The method of claim 1 , wherein the index of terms for each of the plurality of intervals of time is generated in response to receiving a database query for the data stream of records.

3. The method of claim 1 , wherein the full-text search index is generated in response to a database query containing a database action, the method further comprising:

performing the database action against the data stream of records for a subset of the intervals of time, in accordance with the query.

4. The method of claim 3 , wherein the database action comprises one of: search, update, read, or delete.

5. The method of claim 1 , wherein the index of terms for each interval in the plurality of intervals references the terms in the plurality of data stream records indexed for the interval by a pointer.

6. The method of claim 1 , further comprising:

after a predetermined number of intervals of time:

merging the indexes from the indexed data streams files in the predetermined number of intervals, thereby generating a merged index for the predetermined number of intervals;

writing the merged index and the plurality of records from each of the indexed data stream files in the predetermined number of intervals into a single file containing the merged index and the plurality of records from each of the indexed data stream files in the predetermined number of intervals; and

marking for deletion, the indexed data stream file for each interval of the predetermined number of intervals.

7. A non-transitory computer readable medium, programmed with executable instructions that, when executed by a processing system, perform operations for efficiently generating a full-text search index for a data stream of records, the operations comprising:

for each of a plurality of predetermined intervals of time:

receiving a plurality of data stream records;

generating an index of terms for the plurality of data stream records for the interval;

writing the index of terms for the plurality of data stream records for the interval, and the plurality of data stream records for the interval, into a single file termed an indexed data stream file;

in response to determining that the data stream records for a threshold number of predetermined time intervals have been indexed, generating the full-text search index for the plurality of time intervals by merging the index of terms from one or more of the plurality of intervals of time in the indexed data stream file in an ordered manner.

8. The medium of claim 7 , wherein the index of terms for each of the plurality of intervals of time is generated in response to receiving a database query for the data stream of records.

9. The medium of claim 7 , wherein the full-text search index is generated in response to a database query containing a database action, the operations further comprising:

performing the database action against the data stream of records for a subset of the intervals of time, in accordance with the query.

10. The medium of claim 9 , wherein the database action comprises one of: search, update, index, or delete.

11. The medium of claim 7 , wherein the index of terms for each interval in the plurality of intervals references the terms in the plurality of data stream records indexed for the interval by a pointer.

12. The medium of claim 7 , the operations further comprising:

after a predetermined number of intervals of time:

merging the indexes from the indexed data stream files in the predetermined number of intervals, thereby generating a merged index for the predetermined number of intervals;

writing the merged index and the plurality of records from each of the indexed data stream files in the predetermined number of intervals into a single file containing the merged index and the plurality of records from each of the indexed data stream files in the predetermined number of intervals; and

marking for deletion, the indexed data stream file for each of the predetermined number of intervals.

13. A processing system, comprising a hardware processor coupled to a memory programmed with executable instructions, that when executed by the processing system, perform operations for efficiently generating a full-text search index for a data stream of records, the operations comprising:

for each of a plurality of predetermined intervals of time:

receiving a plurality of data stream records;

generating an index of terms for the plurality of data stream records for the interval;

writing the index of terms for the plurality of data stream records for the interval, and the plurality of data stream records for the interval, into a single file termed an indexed data stream file;

in response to determining that the data stream records for a threshold number of predetermined time intervals have been indexed, generating the full-text search index for the plurality of time intervals by merging the index of terms from one or more of the plurality of intervals of time in the indexed data stream file in an ordered manner.

14. The system of claim 13 , wherein the index of terms for each of the plurality of intervals of time is generated in response to receiving a database query for the data stream of records.

15. The system of claim 13 , wherein the full-text search index is generated in response to a database query containing a database action, the operations further comprising:

performing the database action against the data stream of records for a subset of the intervals of time, in accordance with the query.

16. The system of claim 15 , wherein the database action comprises one of: search, update, index, or delete.

17. The system of claim 13 , wherein the index of terms for each interval in the plurality of intervals references the terms in the plurality of data stream records indexed for the interval by a pointer.

18. The system of claim 13 , the operations further comprising:

after a predetermined number of intervals of time:

merging the indexes from the indexed data stream files in the predetermined number of intervals, thereby generating a merged index for the predetermined number of intervals;

writing the merged index and the plurality of records from each of the indexed data stream files in the predetermined number of intervals into a single file containing the merged index and the plurality of records from each of the indexed data stream files in the predetermined number of intervals; and

marking for deletion, the indexed data stream file for each of the predetermined number of intervals.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2017
From: KINGSTON, PAUL R.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044182/0514 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2017
From: SPIEGEL, AARON W.; GRAHAM, STEPHEN G.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042180/0575 →