Two-Dimensional Database Partitioning for Location-Based Search

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current location-based services (LBS) face inefficiencies in searching for the nearest items, such as restaurants, due to inadequate database search techniques, which result in slow performance and high latency, especially when dealing with large datasets.

Innovation Solution

The proposed solution involves organizing a database into two tables, partitioning one table along a first dimension and indexing along a second dimension, allowing for efficient data retrieval by selecting the nearest data partitions and records based on a starting location, thereby reducing latency and improving user experience.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional database searching methods are used for location-based services, then the system can handle basic queries, but the search performance is slow and latency is high when dealing with large datasets

Engineering Contradiction:
Improvesearch speedVSAvoidsearch latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The database is divided into multiple partitions along a first dimension (e.g., latitude ranges), allowing the search to focus only on relevant partitions rather than scanning the entire database. This segmentation dramatically reduces the search space and improves query performance for location-based services.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a two-dimensional indexing structure where data is partitioned along one dimension (e.g., latitude) and indexed along another dimension (e.g., longitude). This dimensional approach enables efficient nearest-neighbor searches by systematically exploring partitions in order of proximity to the query location, reducing both search time and latency.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If the entire database is scanned to find nearest items, then all possible results are found, but the number of disk operations increases and performance deteriorates

Engineering Contradiction:
Improvesearch completenessVSAvoiddata access efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The database performs preliminary organization of data into partitions and indexes before queries are executed. This pre-processing structure allows the search algorithm to quickly identify and access only the relevant partitions containing nearest items, ensuring search completeness while minimizing disk operations and improving productivity.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If data is stored without partitioning, then the database structure is simple, but data access time increases and latency is high

Engineering Contradiction:
Improvedatabase structure complexityVSAvoiddata access latency
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The database implements partitioning along a first dimension and indexing along a second dimension, creating a structured organization that balances complexity with performance. This segmentation enables efficient data access by directing queries to specific partitions, significantly reducing access latency while maintaining manageable structural complexity through systematic organization.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10275403B2Efficient database searching
Publication Date: 2019.04.30 R2 SOLUTIONS LLC
  • US10275403B2 patent drawing
  • US10275403B2 patent drawing
  • US10275403B2 patent drawing

AI summary

Systems and methods are disclosed for efficiently searching a database including a table. The table is partitioned along a first dimension, such as latitude. Indexes in each of the partitions are built along a second dimension, such as longitude. The table may also be clustered according to an index to improve performance. When a processor receives a database query term and a starting location, the processor selects, from the table, a data partition within a first offset to the starting location along the first dimension. The processor selects, from the selected data partition, a first number of first data records related to the query term and within a second offset to the starting location along the second dimension.