IP Library Granted Patent US 10,467,193
Granted Patent B1
US 10,467,193 · App. 15/191,837 · Granted Nov 5, 2019

Real-time ad hoc querying of data records

Inventors: Rodrigo Dias Arruda Senra (Rio de Janeiro, BR); Percy E. Rivera Salas (Rio de Janeiro, BR); Diego Salomone Bruno (Niterói, BR); Rômulo Teixeira de Abreu Pinho (Niterói, BR); Caio Souza (Rio De Janeiro, BR)
Assignee: EMC IP Holding Company LLP
G06F16/162G06F16/2228G06F16/245G06Q50/26
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,467,193
App. No.
15/191,837
Granted
Nov 5, 2019
Kind
B1
Abstract

Methods and apparatus are provided for real-time ad hoc querying of data records, such as call detail records. An exemplary method comprises obtaining data records, wherein each data records comprises a plurality of fields and wherein one or more fields are used to aggregate a history of the data records; storing the data records in a consolidation queue (and optionally, a waiting queue), based on predefined indexing criteria; storing the data records from the consolidation queues in a historical database based on one or more predefined criteria related to a queue length and/or a time interval; creating a pre-processed index that maps indexed information for a given entity to a portion of the historical database; and, in response to a user query regarding attributes of the given entity: retrieving the data records related to the given entity from the historical database based on the pre-processed index for the given entity; storing the retrieved data records of the given entity into an in-memory database; and processing the retrieved data records of the given entity to answer the one or more user queries.

Claims (46)

1. A method, comprising the steps of:

obtaining a plurality of data records, wherein each of said data records comprise a plurality of fields and wherein one or more of said fields are used to aggregate a history of at least a portion of said data records;

storing each of said plurality of data records in one or more of a plurality of consolidation queues, based on predefined indexing criteria;

storing at least a portion of said plurality of data records from one or more of said consolidation queues in a historical database based on one or more predefined criteria related to one or more of a queue length and a time interval;

creating a pre-processed index that maps indexed information for a given entity to a portion of said historical database; and

in response to one or more user queries regarding one or more attributes of said given entity, performing the following steps:

retrieving at least a portion of the data records related to the given entity from the historical database based on the pre-processed index for the given entity;

storing the retrieved data records of the given entity into an in-memory database; and

processing said retrieved data records of the given entity to answer said one or more user queries.

2. The method of claim 1 , wherein said plurality of data records comprise call detail records and wherein said consolidation queues comprise a call source queue and a call destination queue for each of a plurality of users of a telecommunication service.

3. The method of claim 2 , wherein said one or more user queries comprise one or more of a query from a law enforcement agency and a customer profiling query.

4. The method of claim 1 , wherein said given entity comprises one or more of a user of a telecommunication service, an item of telecommunication equipment and a geographic area.

5. The method of claim 1 , wherein said storing in said plurality of consolidation queues further comprises storing said plurality of data records in a waiting queue to accommodate bursts of said data records.

6. The method of claim 1 , further comprising the step of updating said pre-processed index performed substantially simultaneously with a consolidation of one or more of said consolidation queues.

7. The method of claim 1 , further comprising the step of deleting data from said historical database based on predefined maintenance criteria.

8. The method of claim 1 , wherein said historical database comprises pre-aggregated data, aggregated for each of a plurality of entities based on said one or more of said fields.

9. The method of claim 1 , wherein said predefined indexing criteria comprises indexing by one or more fields of said data records that are targets of said one or more user queries.

10. A computer program product, comprising a tangible machine-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device perform the following steps:

obtaining a plurality of data records, wherein each of said data records comprise a plurality of fields and wherein one or more of said fields are used to aggregate a history of at least a portion of said data records;

storing each of said plurality of data records in one or more of a plurality of consolidation queues, based on predefined indexing criteria;

storing at least a portion of said plurality of data records from one or more of said consolidation queues in a historical database based on one or more predefined criteria related to one or more of a queue length and a time interval;

creating a pre-processed index that maps indexed information for a given entity to a portion of said historical database; and

in response to one or more user queries regarding one or more attributes of said given entity, performing the following steps:

retrieving at least a portion of the data records related to the given entity from the historical database based on the pre-processed index for the given entity;

storing the retrieved data records of the given entity into an in-memory database; and

processing said retrieved data records of the given entity to answer said one or more user queries.

11. The computer program product of claim 10 , wherein said plurality of data records comprise call detail records and wherein said consolidation queues comprise a call source queue and a call destination queue for each of a plurality of users of a telecommunication service.

12. The computer program product of claim 10 , wherein said storing in said plurality of consolidation queues further comprises storing said plurality of data records in a waiting queue to accommodate bursts of said data records.

13. The computer program product of claim 10 , wherein said historical database comprises pre-aggregated data, aggregated for each of a plurality of entities based on said one or more of said fields.

14. The computer program product of claim 10 , wherein said predefined indexing criteria comprises indexing by one or more fields of said data records that are targets of said one or more user queries.

15. A system, comprising:

a memory; and

at least one processing device, coupled to the memory, operative to implement the following steps:

obtaining a plurality of data records, wherein each of said data records comprise a plurality of fields and wherein one or more of said fields are used to aggregate a history of at least a portion of said data records;

storing each of said plurality of data records in one or more of a plurality of consolidation queues, based on predefined indexing criteria;

storing at least a portion of said plurality of data records from one or more of said consolidation queues in a historical database based on one or more predefined criteria related to one or more of a queue length and a time interval;

creating a pre-processed index that maps indexed information for a given entity to a portion of said historical database; and

in response to one or more user queries regarding one or more attributes of said given entity, performing the following steps:

retrieving at least a portion of the data records related to the given entity from the historical database based on the pre-processed index for the given entity;

storing the retrieved data records of the given entity into an in-memory database; and

processing said retrieved data records of the given entity to answer said one or more user queries.

16. The system of claim 15 , wherein said plurality of data records comprise call detail records and wherein said consolidation queues comprise a call source queue and a call destination queue for each of a plurality of users of a telecommunication service.

17. The system of claim 15 , wherein said storing in said plurality of consolidation queues further comprises storing said plurality of data records in a waiting queue to accommodate bursts of said data records.

18. The system of claim 15 , further comprising the step of deleting data from said historical database based on predefined maintenance criteria.

19. The system of claim 15 , wherein said historical database comprises pre-aggregated data, aggregated for each of a plurality of entities based on said one or more of said fields.

20. The system of claim 15 , wherein said predefined indexing criteria comprises indexing by one or more fields of said data records that are targets of said one or more user queries.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
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 AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2019
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050231/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 Aug 10, 2016
From: SENRA, RODRIGO DIAS ARRUDA; SALAS, PERCY E. RIVERA; BRUNO, DIEGO SALOMONE; ABREU PINHO, RÔMULO TEIXEIRA DE; SOUZA, CAIO
To: EMC CORPORATION
Reel/Frame 039393/0001 →
Cited By (1)
US 12,561,388