IP Library › Granted Patent US 12,547,594
Granted Patent B2
US 12,547,594 · App. 17/482,651 · Granted Feb 10, 2026

Spatial-temporal storage system, method, and recording medium

Inventors: Raghu Kiran Ganti (Elmsford, NY); Shen Li (Urbana, IL); Mudhakar Srivatsa (White Plains, NY)
Assignee: International Business Machines Corporation
G06F16/1844G06F16/221G06F16/2264G06F16/2452G06F16/2453G06F16/2477G06F16/275G06F16/284G06F16/9537
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 12,547,594
App. No.
17/482,651
Granted
Feb 10, 2026
Kind
B2
Abstract

A spatial-temporal storage method, system, and non-transitory computer readable medium include dynamically managing a plurality of region servers for querying spatiotemporal data in noSQL databases.

Claims (32)

1 . A spatial-temporal storage system, comprising:

a processor;

a memory, the memory storing instructions to cause the processor to perform:

managing a plurality of region servers based on a result of querying spatial-temporal data in noSQL databases, wherein the noSQL databases are organized into a 3D table of rows, columns and cell version, wherein each column belongs to a column family, wherein the 3D table is stored as a key-value store that consists of row key, column family key, column qualifier, and timestamp, and wherein the key-value store contains the data stored in a cell, wherein each region of the plurality of region servers is served by an HRegion instance, wherein the HRegion instance manages each column family using a store, and wherein each store contains a memory storage and multiple store files;

sorting and flushing all key-value pairs, in the memory storage, into a new store when the memory storage reaches a pre-defined flush threshold;

splitting the HRegion instance into two daughter regions when a size of the store increases beyond a threshold, wherein the two daughter regions initially create reference files pointing back to the multiple store files of their past parent region, thus achieving responsive elasticity;

calculating scan ranges via a geometric translation circuit that applies a Moore-curve based geo-location encoding algorithm, wherein a space of a geometric query is recursively divided into tiles using a quad-tree, and wherein the tiles are encoded using a space filling curve, and wherein the Moore-curve based geo-location encoding algorithm preserves spatial continuity on the memory storage for put, get, and scan queries;

casting, by the geometric translation circuit, 2D coordinates (x, y) into a one-dimensional key space to store the spatial-temporal data;

utilizing smaller database blocks to reduce read volume amplification; and

optimizing scan ranges of a same geometry query aggregately, such that multiple database blocks are fetched within fewer disk read operations.

2 . The spatial-temporal storage system of claim 1 , wherein the plurality of region servers are managed via a group-based replica placement policy to guarantee data locality during region splits, and

wherein the group-based replica placement policy divides parts of the spatial-temporal data into multiple shards based on user-defined pre-split keys.

3 . A non-transitory computer-readable recording medium recording a spatial-temporal storage program, the spatial-temporal storage program causing a computer to perform:

managing a plurality of region servers based on a result of querying spatial-temporal data in noSQL databases, wherein the noSQL databases are organized into a 3D table of rows, columns and cell version, wherein each column belongs to a column family, wherein the 3D table is stored as a key-value store that consists of row key, column family key, column qualifier, and timestamp, and wherein the key-value store contains the data stored in a cell, wherein each region of the plurality of region servers is served by an HRegion instance, wherein the HRegion instance manages each column family using a store, and wherein each store contains a memory storage and multiple store files;

sorting and flushing all key-value pairs, in the memory storage, into a new store when the memory storage reaches a pre-defined flush threshold;

splitting the HRegion instance into two daughter regions when a size of the store increases beyond a threshold, wherein the two daughter regions initially create reference files pointing back to the multiple store files of their past parent region, thus achieving responsive elasticity;

calculating scan ranges via a geometric translation circuit that applies a Moore-curve based geo-location encoding algorithm, wherein a space of a geometric query is recursively divided into tiles using a quad-tree, and wherein the tiles are encoded using a space filling curve, and wherein the Moore-curve based geo-location encoding algorithm preserves spatial continuity on the memory storage for put, get, and scan queries;

casting, by the geometric translation circuit, 2D coordinates (x, y) into a one-dimensional key space to the store spatial-temporal data;

utilizing smaller database blocks to reduce read volume amplification; and

optimizing scan ranges of a same geometry query aggregately, such that multiple database blocks are fetched within fewer disk read operations.

4 . The non-transitory computer-readable recording medium of claim 3 , wherein the plurality of region servers are managed via a group-based replica placement policy to guarantee data locality during region splits, and

wherein the group-based replica placement policy divides parts of the spatial-temporal data into multiple shards based on user-defined pre-split keys.

5 . A spatial-temporal storage method, comprising:

managing a plurality of region servers based on a result of querying spatial-temporal data in noSQL databases, wherein the noSQL databases are organized into a 3D table of rows, columns and cell version, wherein each column belongs to a column family, wherein the 3D table is stored as a key-value store that consists of row key, column family key, column qualifier, and timestamp, and wherein the key-value store contains the data stored in a cell, wherein each region of the plurality of region servers is served by an HRegion instance, wherein the HRegion instance manages each column family using a store, and wherein each store contains a memory storage and multiple store files;

sorting and flushing all key-value pairs, in the memory storage, into a new store when the memory storage reaches a pre-defined flush threshold;

splitting the HRegion instance into two daughter regions when a size of the store increases beyond a threshold, wherein the two daughter regions initially create reference files pointing back to the multiple store files of their past parent region, thus achieving responsive elasticity;

calculating scan ranges via a geometric translation circuit that applies a Moore-curve based geo-location encoding algorithm, wherein a space of a geometric query is recursively divided into tiles using a quad-tree, and wherein the tiles are encoded using a space filling curve, and wherein the Moore-curve based geo-location encoding algorithm preserves spatial continuity on the memory storage for put, get, and scan queries;

casting, by the geometric translation circuit, 2D coordinates (x, y) into a one-dimensional key space to store the spatial-temporal data;

utilizing smaller database blocks to reduce read volume amplification; and

optimizing scan ranges of a same geometry query aggregately, such that multiple database blocks are fetched within fewer disk read operations.

6 . The spatial-temporal storage method of claim 5 , wherein the plurality of region servers are managed via a group-based replica placement policy to guarantee data locality during region splits, and

wherein the group-based replica placement policy divides parts of the spatial-temporal data into multiple shards based on user-defined pre-split keys.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2021
From: GANTI, RAGHU KIRAN; LI, SHEN; SRIVATSA, MUDHAKAR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 057574/0152 →
Continuity (3)
Continuation 16056672 · Aug 7, 2018
Continuation 15064161 · Mar 8, 2016
Related Publication 20220012213A1 · Jan 13, 2022
References Cited (108)
US 6172935B1 · Wright et al. · 2001 [cited by applicant]
US 6684219B1 · Shaw et al. · 2004 [cited by applicant]
US 6879980B1 · Kothuri · 2005 [cited by examiner]
US 7167856B2 · Lawder · 2007 [cited by applicant]
US 7356526B2 · Gao · 2008 [cited by examiner]
US 7567973B1 · Burrows · 2009 [cited by examiner]
US 7991779B1 · Drory et al. · 2011 [cited by applicant]
US 8055687B2 · Zhang et al. · 2011 [cited by applicant]
US 8099380B1 · Shahabi · 2012 [cited by examiner]
US 8214371B1 · Ramesh et al. · 2012 [cited by applicant]
US 8688723B2 · Zhang et al. · 2014 [cited by applicant]
US 8713073B2 · Johnston · 2014 [cited by examiner]
US 8806350B2 · Krishnan · 2014 [cited by examiner]
US 9288617B1 · Rice · 2016 [cited by examiner]
US 9965209B2 · Rao · 2018 [cited by examiner]
US 10394787B2 · Zhang · 2019 [cited by examiner]
US 10929501B2 · Kazmaier · 2021 [cited by examiner]
US 11372821B2 · Ganti et al. · 2022 [cited by applicant]
US 11379271B2 · Guan · 2022 [cited by examiner]
US 20020156779A1 · Elliott · 2002 [cited by examiner]
US 20030204499A1 · Shahabi et al. · 2003 [cited by applicant]
US 20030233403A1 · Bae · 2003 [cited by examiner]
US 20040117359A1 · Snodgrass · 2004 [cited by examiner]
US 20040249809A1 · Ramani et al. · 2004 [cited by applicant]
US 20050015216A1 · V. Kothuri · 2005 [cited by applicant]
US 20050071331A1 · Gao et al. · 2005 [cited by applicant]
US 20060004707A1 · Dettinger · 2006 [cited by examiner]
US 20060092782A1 · Takaba · 2006 [cited by applicant]
US 20060106930A1 · Shaffer · 2006 [cited by examiner]
US 20070033354A1 · Burrows · 2007 [cited by examiner]
US 20080076418A1 · Beyer, Jr. · 2008 [cited by applicant]
US 20080310729A1 · Yoshino · 2008 [cited by examiner]
US 20090210413A1 · Hayashi · 2009 [cited by examiner]
US 20100125562A1 · Nair et al. · 2010 [cited by applicant]
US 20100125569A1 · Nair et al. · 2010 [cited by applicant]
US 20100125604A1 · Martinez et al. · 2010 [cited by applicant]
US 20100185692A1 · Zhang · 2010 [cited by examiner]
US 20100281017A1 · Hu · 2010 [cited by examiner]
US 20100332495A1 · Richter · 2010 [cited by examiner]
US 20110153650A1 · Lee · 2011 [cited by examiner]
US 20120166446A1 · Bowman et al. · 2012 [cited by applicant]
US 20120265764A1 · Agrawal et al. · 2012 [cited by applicant]
US 20120274775A1 · Reiffel · 2012 [cited by applicant]
US 20130054552A1 · Hawkins · 2013 [cited by examiner]
US 20130072223A1 · Berenberg et al. · 2013 [cited by applicant]
US 20130191458A1 · Krishnan · 2013 [cited by examiner]
US 20130268490A1 · Keebler · 2013 [cited by examiner]
US 20130318051A1 · Kumar et al. · 2013 [cited by applicant]
US 20130325343A1 · Blumenberg · 2013 [cited by examiner]
US 20140046638A1 · Peloski · 2014 [cited by examiner]
US 20140164382A1 · Keebler · 2014 [cited by examiner]
US 20140188825A1 · Muthukkaruppan · 2014 [cited by examiner]
US 20140248899A1 · Emadzadeh · 2014 [cited by examiner]
US 20140310243A1 · McGee et al. · 2014 [cited by applicant]
US 20140337472A1 · Newton · 2014 [cited by examiner]
US 20140344399A1 · Lipstone · 2014 [cited by examiner]
US 20150046411A1 · Kazmaier et al. · 2015 [cited by applicant]
US 20150121371A1 · Gummaraju · 2015 [cited by examiner]
US 20150199699A1 · Milton · 2015 [cited by examiner]
US 20150220659A1 · Rissanen · 2015 [cited by examiner]
US 20150310082A1 · Han · 2015 [cited by examiner]
US 20150324373A1 · Tyercha et al. · 2015 [cited by applicant]
US 20160077746A1 · Muth et al. · 2016 [cited by applicant]
US 20160077936A1 · Tang · 2016 [cited by examiner]
US 20160103863A1 · Becker · 2016 [cited by examiner]
US 20160203173A1 · Zang · 2016 [cited by applicant]
US 20160342678A1 · Newman et al. · 2016 [cited by applicant]
US 20170032012A1 · Zhang · 2017 [cited by examiner]
US 20170068694A1 · Brodt et al. · 2017 [cited by applicant]
US 20170139596A1 · Hack · 2017 [cited by examiner]
US 20170169544A1 · Boulkenafed et al. · 2017 [cited by applicant]
US 20170192892A1 · Pundir et al. · 2017 [cited by applicant]
US 20170243028A1 · LaFever · 2017 [cited by examiner]
US 20170262469A1 · Ganti et al. · 2017 [cited by applicant]
US 20170293662A1 · Tyercha · 2017 [cited by examiner]
US 20190230151A1 · Falcao et al. · 2019 [cited by applicant]
US 20210334206A1 · Colgrove · 2021 [cited by examiner]
US 20220269417A1 · Sanvido · 2022 [cited by examiner]
CN 101105396A · 2008 [cited by examiner]
CN 102306166A · 2012 [cited by examiner]
CN 103646073A · 2014 [cited by examiner]
CN 103793493A · 2014 [cited by examiner]
CN 103902702A · 2014 [cited by examiner]
EP 3149978B1 · 2021 [cited by examiner]
JP 3984135B2 · 2007 [cited by examiner]
KR 20060028164A · 2006 [cited by examiner]
KR 20110073175A · 2011 [cited by examiner]
WO WO03048976A1 · 2003 [cited by examiner]
WO WO2004068300A2 · 2004 [cited by examiner]
WO WO2010059308A2 · 2010 [cited by examiner]
WO WO2012139200A1 · 2012 [cited by examiner]
WO WO2012140464A1 · 2012 [cited by examiner]
WO WO2014061221A1 · 2014 [cited by examiner]
WO WO2015180531A1 · 2015 [cited by examiner]
United States Notice of Allowance dated Apr. 20, 2022, in co-pending U.S. Appl. No. 16/056,672. [cited by applicant]
Dong et al., “Optimizing Space Amplification in RocksDB”, CIDR 2017 (Year: 2017). [cited by applicant]
United States Office Action dated Feb. 17, 2022, in co-pending U.S. Appl. No. 16/056,672. [cited by applicant]
United States Office Action dated Jun. 25, 2021, in U.S. Appl. No. 16/056,672. [cited by applicant]
United States Office Action dated Apr. 23, 2021, in U.S. Appl. No. 16/056,672. [cited by applicant]
United States Office Action dated Oct. 6, 2020, in U.S. Appl. No. 16/056,672. [cited by applicant]
United States Office Action dated Sep. 1, 2020, in U.S. Appl. No. 16/056,672. [cited by applicant]
Mel, et al. “The NIST Definition of Cloud Computing”. Recommendations of the National Institute of Standards and Technology. Nov. 16, 2015. [cited by applicant]
Li, et al., “Pyro: A Spatial-Temporal Big Data Storage System”, 2015 USENIX Annual Technical Conference, Jul. 8-10, 2015. (Year: 2015). [cited by applicant]
Mark Callaghan, :Small Datum: Read, Write & Space Amplification—Pick 2 (Year: 2015). [cited by applicant]
United States Notice of Allowance dated Jun. 15, 2018 in U.S. Appl. No. 15/064,161. [cited by applicant]
United States Office Action dated May 16, 2018 in U.S. Appl. No. 15/064,161. [cited by applicant]
Karger et al., “Consistent hashing and random trees: distributed caching protocols for relieving hot spots on the World Wide Web”, In Proceedings of Theory of computing (STOC '97), 1997, pp. 654-663, ACM. [cited by applicant]
Stackoverflow “Efficiently ordering locations by their geographical distance from a query point”, http://stackoverflow.com/questions/8537306/efficiently-ordering-locations-by-their-geographical-distance-from-a-query-poi… [cited by applicant]