IP Library Granted Patent US 10,235,400
Granted Patent B2
US 10,235,400 · App. 14/788,645 · Granted Mar 19, 2019

Database keying with encoded filter attributes

Inventors: Kandarp Mahadev Desai (Mountain View, CA); Gowri Shankar Ravindran (Bangalore, IN)
Assignee: Xactly Corporation
G06F17/30315
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,235,400
App. No.
14/788,645
Granted
Mar 19, 2019
Kind
B2
Abstract

A data processing method comprising the computer-implemented steps of using a database index key processing module in a computer, generating row keys for a data store, the data store comprising data records, each comprising at least a first element and a second element, each of the row keys comprising at least: a first portion comprising a first encoded value for the first element of a corresponding data item of the data records, a second portion comprising a second encoded value for the second element of the corresponding data item of the data records, storing the data records using the row keys, using a query processing module of the computer, receiving a search query comprising a first filter for the first element, translating the first filter into at least the first portion of a search key, and searching the dataset using the search key.

Claims (40)

1. A data processing method comprising:

using a database index key processing module in a multitenant service provider computer, generating a plurality of row keys for a table of a columnar database that is managed in a data storage device that is communicatively accessible to the multitenant service provider computer, the columnar database comprising a plurality of data records, each of the data records comprising at least a first element and a second element;

each of the plurality of row keys comprising at least: a binary bit string having a length greater than or equal to a number of possible values for the first element, wherein each bit of the binary bit string corresponds to a specific value of the possible values and indicates whether the specific value is included in a data record associated with the row key;

at least one of the plurality of row keys including a binary bit string that is a filter combination binary bit string having bits indicating that at least two values for the first element are included in the data record associated with the row key;

using the multitenant service provider computer and the columnar database, storing the data records in the table using the plurality of row keys;

using a query processing module of the multitenant service provider computer, receiving a search query from a client device comprising a selection of the at least two values for the first element, translating the at least two values into at least a first portion of a search key corresponding to the filter combination binary bit string, and searching the table using the search key to generate search results;

sending the search results to the client device, wherein the search results are displayed on the client device;

wherein the method is performed using one or more computing devices.

2. The data processing method of claim 1 , further comprising masking a part of the search key.

3. The data processing method of claim 1 further comprising: generating a one-to-one mapping for encoding each of the possible values for the first element.

4. The data processing method of claim 1 , wherein each of the plurality of row keys further comprises a third portion comprising a date encoded as a string.

5. The data processing method of claim 4 , wherein the string comprises six digits.

6. The data processing method of claim 1 , wherein the plurality of data records comprise data relating to one or more of compensation data, marketing data, and ad serving data.

7. A data processing method comprising:

using a database index key processing module in a multitenant service provider computer, accessing a plurality of electronically stored digital data records of a columnar database that is managed in a data storage device that is communicatively accessible to the multitenant service provider computer, wherein each of the data records comprises at least a first data element and a second data element;

electronically reading a particular data record from the columnar database;

based upon the particular data record, generating a first row key portion comprising a first encoded value for a particular first element of a data item of the particular data record, wherein the first row key portion has a fixed byte length;

based upon the particular data record, generating a second row key portion comprising a second encoded value for a particular second element of the data item, wherein the second row key portion has the fixed byte length;

generating a row key for the particular data record by combining the first row key portion and the second row key portion;

updating the particular data record in the columnar database by associating the row key with the particular data record;

repeating the reading, generating, and updating steps for at least a subset of all the data records in the columnar database;

updating a table of the columnar database that stores data records based on at least the subset of all the data records by generating a row key for each of the data records, each row key comprising at least a binary bit string having a length greater than or equal to a number of possible values for the first element, wherein each bit of the binary bit string corresponds to a specific value of the possible values and indicates whether the specific value is included in a data record associated with the row key;

at least one of the row keys including a binary bit string that is a filter combination binary bit string having bits indicating that at least two values for the first element are included in the data record associated with the row key;

using the multitenant service provider computer and the columnar database, storing the data records in the table using the row keys;

using a query processing module of the service provider computer, receiving a search query from a tenant device comprising a selection of the at least two values for the first element, translating the at least two values into at least a portion of a search key corresponding to the filter combination binary bit string, and searching the table using the search key to generate search results; and

sending the search results to the client device, wherein the search results are displayed on the client device.

8. The data processing method of claim 7 , further comprising masking a part of the search key.

9. The data processing method of claim 7 further comprising: generating a one-to-one mapping for encoding each of the possible values for the first element.

10. The data processing method of claim 7 , wherein each of the plurality of row keys further comprises a third portion comprising a date encoded as a string.

11. The data processing method of claim 10 , wherein the string comprises six digits.

12. The data processing method of claim 7 , wherein the plurality of data records comprise data relating to one or more of compensation data, marketing data, and ad serving data.

13. A computer system comprising:

a multitenant service provider computer coupled to a data storage device, the multitenant service provider computer programmed to perform:

using a database index key processing module in the multitenant service provider computer, generating a plurality of row keys for a table of a columnar database that is managed in the data storage device that is communicatively accessible to the multitenant service provider computer, the columnar database comprising a plurality of data records, each of the data records comprising at least a first element and a second element;

each of the plurality of row keys comprising at least: a binary bit string having a length greater than or equal to a number of possible values for the first element, wherein each bit of the binary bit string corresponds to a specific value of the possible values and indicates whether the specific value is included in a data record associated with the row key;

at least one of the plurality of row keys including a binary bit string that is a filter combination binary bit string having bits indicating that at least two values for the first element are included in the data record associated with the row key;

using the multitenant service provider computer and the columnar database, storing the data records in the table using the plurality of row keys;

using a query processing module of the multitenant service provider computer, receiving a search query from a client device comprising a selection of the at least two values for the first element, translating the at least two values into at least a first portion of a search key corresponding to the filter combination binary bit string, and searching the table using the search key to generate search results;

sending the search results to the client device, wherein the search results are displayed on the client device.

14. The computer system of claim 13 , wherein the plurality of data records comprise data relating to one or more of compensation data, marketing data, and ad serving data.

Assignments (2)
SECURITY INTEREST Recorded Aug 30, 2017
From: XACTLY CORPORATION
To: GOLDMAN SACHS MIDDLE MARKET LENDING CORP.
Reel/Frame 043441/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2015
From: DESAI, KANDARP MAHADEV; RAVINDRAN, GOWRI SHANKAR
To: XACTLY CORPORATION
Reel/Frame 035989/0145 →
Priority Claims (1)
IN 532/KOL/2015 · May 15, 2015 · national
Continuity (1)
Related Publication 20160335295A1 · Nov 17, 2016