IP Library Granted Patent US 12699744
Granted Patent B2
US 12699744 · App. 18/599,105 · Granted Aug 4, 2026

System and method for geohashed data store query

Inventors: Kiran Kumar Komaravolu (Bellevue, WA); Gavin Pinchback (Olathe, KS); Vikas Ranjan (Bellevue, WA); Stephen Michael Shiflet (Rowlett, TX); Jason P. Smith (Plano, TX)
G06F16/9537G06F16/2379G06F16/27G06F16/278
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 12699744
App. No.
18/599,105
Granted
Aug 4, 2026
Kind
B2
Abstract

A method is disclosed for providing a database of subscriber interactions with a network. The database is configured for geographical searching. A provider record relating to a transaction between a network node and a subscriber is received. A first period provider records collection including provider records from a first predetermined time period is stored. The first period provider records collection is converted into a first period unified records collection. A second period unified records collection is stored having unified records from a second predetermined time period. The second predetermined time period is longer than the first predetermined time period. The second period unified records collection includes sub-period partitions with unified records having timestamps in a first time sub-period. Each sub-period partition includes geohash partitions with unified records having geohash values in a range of values, and each geohash partition includes subscriber partitions with unified records having a common subscriber ID.

Claims (61)

1 . A method for geographical searching, in a server computer, of a database of information relating to subscriber interactions with a telecommunication network, the method comprising:

receiving, by the server computer from an authorized user of the server computer, a search request comprising a geohash value of a geographical location of a center point of a search, a radius of the search, and a time period of the search, wherein the center point of the search and the radius of the search form a search circle centered on the center point of the search and having the radius of the search;

determining, by the server computer, a first geohash prefix value representing a first corner of a search rectangle that includes geohash values within the radius from the geohash value of the center point;

determining, by the server computer, a second geohash prefix value representing a second corner of the search rectangle, where the second corner is diagonally opposite the search rectangle from the first corner;

pre-classifying, by the server computer, geohash prefix values into sets comprising:

an outside set of geohash prefix values identifying sub-rectangles containing only geohash values outside the search circle;

an inside set of geohash prefix values identifying sub-rectangles containing only geohash values inside the search circle; and

a crossing set of geohash prefix values identifying sub-rectangles containing geohash values both inside and outside the search circle;

finding, by the server computer, one or more period partitions in a collection of unified records, wherein:

each unified record relates to a transaction between a node of a telecommunications network and a subscriber of the telecommunications network, wherein the unified record comprises a timestamp, a subscriber identifier (ID), and a geohash value representing geographical information relating to the transaction, and

the collection of unified records comprises one or more period partitions, each comprising one or more unified records whose timestamps represent a time during the time period of the search;

finding, by the server computer, one or more geohash partitions in the one or more period partitions, where the one or more geohash partitions include unified records having a geohash value between the first and second geohash prefix values;

finding, by the server computer, one or more target unified records in the one or more geohash partitions, where the geohash values of the one or more target unified records indicate a geographical location whose distance from the geohash value of the center point is less than the radius, wherein finding the one or more target unified records comprises:

classifying unified records having a geohash value with a prefix in the inside set as target unified records; and

for unified records having a geohash value with a prefix in the crossing set, classifying unified records for which the geohash value indicates a geographical location having a distance from the geohash value of the center point less than the radius as target unified records; and

sending, by the server computer to the authorized user, a message comprising, for each of the one or more target unified records, the timestamp, the subscriber ID, and geographical information relating to the geohash value of the target unified record.

2 . The method of claim 1 , wherein the one or more period partitions comprise unified records whose timestamp represents a time during one hour, where the hour is included, at least in part, in the time period of the search.

3 . The method of claim 1 , wherein finding one or more unified records in the one or more geohash partitions comprises finding one or more unified records having a geohash prefix value that is greater than or equal to the first geohash prefix value and less than or equal to the second geohash prefix value.

4 . The method of claim 3 , wherein finding one or more unified records in the one or more geohash partitions further comprises (i) converting the geohash value of the center point of the search to a first latitude and longitude, (ii) converting the geohash value of a unified record to a second latitude and longitude, and (iii) determining whether a distance between the first latitude and longitude and the second latitude and longitude is less than the radius.

5 . The method of claim 1 , wherein finding a period partition in a collection of unified records comprises finding a plurality of period partitions comprising unified records whose timestamps represent a time during the time period of the search.

6 . The method of claim 1 , wherein finding the one or more geohash partitions in the one or more period partitions comprises finding a plurality of geohash partitions that include unified records having geohash values between the first and second geohash prefix values.

7 . The method of claim 1 , wherein the search rectangle is a square.

8 . The method of claim 1 , wherein each unified record in the collection of unified records are based on a provider transaction record from a network provider of a plurality of network providers, and wherein the provider transaction record comprises a provider subscriber ID, a provider timestamp, and a latitude and longitude of the transaction.

9 . The method of claim 8 , wherein the collection of unified records are based on provider transaction records associated with the plurality of network providers.

10 . The method of claim 9 , wherein the collection of unified records comprise the provider transaction records converted to a unified format.

11 . A method for searching, in a server computer, a collection of information relating to subscriber interactions with a telecommunication network to find a geographical location of a subscriber device, the method comprising:

receiving, by the server computer from an authorized user of the server computer, a search request comprising a target subscriber identifier (ID);

determining, according to the search request, a search circle defined by a center point and a radius;

pre-classifying, by the server computer, geohash prefix values into sets comprising:

an outside set of geohash prefix values identifying sub-rectangles containing only geohash values outside the search circle;

an inside set of geohash prefix values identifying sub-rectangles containing only geohash values inside the search circle; and

a crossing set of geohash prefix values identifying sub-rectangles containing geohash values both inside and outside the search circle;

searching, by the server computer, for a search result unified record in a collection of unified records, wherein:

each unified record in the collection of unified records relates to a transaction between a node of a telecommunications network and a subscriber of the telecommunications network, the unified record comprising a timestamp, a subscriber ID, and a geohash value representing geographical information relating to the transaction,

the collection of unified records comprises one or more period partitions comprising one or more unified records whose timestamps represent a time during a first predetermined time period,

each period partition comprises one or more sub-period partitions comprising the unified records whose timestamps represents a time within a second predetermined time period, the second predetermined time period being shorter than the first predetermined time period,

each sub-period partition comprises one or more subscriber partitions comprising unified records having a common subscriber ID,

searching for a target unified record in a collection of unified records comprises:

searching the sub-period partitions, starting with a most recent time period, for a search result subscriber partition having unified records with the target subscriber ID; and

searching the search result subscriber partition for a search result unified record having a most recent timestamp by:

classifying unified records having a geohash value with a prefix in the inside set as search result unified records; and

for unified records having a geohash value with a prefix in the crossing set, classifying unified records for which the geohash value indicates a geographical location having a distance from the geohash value of the center point less than the radius as search result unified records; and

sending, by the server computer to the authorized user, a message comprising search result information relating to a result of the search for the search result unified record.

12 . The method of claim 11 , wherein the search result unified record is found and the search result information comprises (i) the timestamp of the search result unified record and (ii) geographical information relating to the geohash value of the search result unified record.

13 . The method of claim 12 , wherein the first predetermined time period is a day and the second predetermined time period is one hour.

14 . The method of claim 13 , wherein:

the period partitions of the collection are sorted according to the timestamps of the unified records included therein, from oldest to most recent, and

the sub-period partitions of each period partition are sorted according to timestamps of the unified records included therein, from oldest to most recent.

15 . The method of claim 11 , wherein the search request further comprises a geographical location of a center point of a search and a radius of the search, the method further comprising:

determining, by the server computer, a first geohash prefix value representing a first corner of a search rectangle that includes geohash values within the radius from the geohash value of the center point; and

determining, by the server computer, a second geohash prefix value representing a second, opposite corner of the search rectangle,

wherein searching the sub-period partitions comprises searching for the search result subscriber partition in geohash partitions of the sub-period partitions, wherein:

the geohash partitions include unified records having a geohash value between the first and second geohash prefix values, and

the search result subscriber partition includes a geohash value indicating a geographical location whose distance from the geohash value of the center point is less than the radius.

16 . The method of claim 15 , wherein the search rectangle is a square.

17 . The method of claim 11 , wherein:

the search request further comprises a specified time period for the search; and

searching the sub-period partitions comprises searching for the search result subscriber partition in sub-period partitions having unified records with timestamps representing a time within the specified time period.

18 . The method of claim 11 , wherein each unified record in the collection of unified records are based on a provider transaction record from a network provider of a plurality of network providers, and wherein the provider transaction record comprises a provider subscriber ID, a provider timestamp, and a latitude and longitude of the transaction.

19 . The method of claim 18 , wherein the collection of unified records are based on provider transaction records associated with the plurality of network providers.

20 . The method of claim 19 , wherein the collection of unified records comprise the provider transaction records converted to a unified format.