Numeric Search Key Partitioning for Biometric Database Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for performing numeric searches in large biometric databases are inefficient due to cache memory limitations and high processing demands, leading to performance degradation, especially when dealing with data sizes exceeding cache capacities and concurrent inquiries from multiple cores.
Innovation Solution
The method involves partitioning the main search key into sub-keys, allowing searches to be conducted within limited memory resources like cache memory by dividing index tables and using sub-keys to point to smaller portions of data, thereby minimizing memory accesses and cache misses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional numeric search methods are used in large biometric databases, then search functionality is provided, but search time increases and processing power requirements increase due to cache memory limitations and frequent main memory accesses
Solution Approach 1:
The patent divides the large biometric database into multiple partitions, each fitting within cache memory capacity. Search keys are segmented to navigate through partition tables stored in cache, enabling searches to be performed using only cache memory without frequent main memory accesses, thereby reducing search time and improving speed
2Quantity of substance
If large databases are stored in main memory to accommodate data volumes exceeding cache capacity, then data storage capability is improved, but access performance degrades due to frequent redirects to main memory
Solution Approach 1:
The database is segmented into multiple partitions that collectively store large data volumes in main memory while each partition fits within cache memory. Partition tables containing metadata about each partition are stored in cache, enabling fast navigation to relevant data portions without accessing the entire large database in main memory
Solution Approach 2:
The patent introduces a hierarchical dimension to database organization: partition tables in cache memory provide a first level of indexing, while actual data partitions in main memory provide the second level. This dimensional hierarchy enables fast cache-based navigation to slower main memory storage locations
3Productivity
If multiple cores execute search inquiries simultaneously to improve throughput, then processing capacity increases, but performance degrades due to cache memory collisions and contention
Solution Approach 1:
The database is divided into multiple partitions that can be independently accessed by different processor cores. This segmentation reduces cache memory collisions because each core can work with different partition tables or data partitions simultaneously, maintaining performance stability while improving overall search throughput through parallel processing
4Quantity of substance
If cache memory capacity is kept small for cost reasons, then device cost is reduced, but search performance suffers due to insufficient cache capacity for large databases
Solution Approach 1:
Instead of requiring a single large cache memory, the patent segments the database into multiple smaller partitions that each fit within the limited cache capacity. This allows the system to maintain fast cache-based access while working around the constraint of small cache memory through intelligent data organization and partition management
Data Source
Figure 1a~1b
Figure 2~3
Figure 4
AI summary
A method and system for performing numeric searches related to biometric information, the method comprising generating a main search key representing biometric features of an item to be searched, partitioning the main search key into at least two sub-keys, each sub-key comprising a predetermined number of bits, obtaining a set of index tables each comprising a plurality of key values, each key value being associated with a corresponding index value, wherein the number of index tables in the set is equal to the number of sub-keys within the main search key, identifying, in a first one of said set of index tables, at least one key value matching a first sub-key of the main search key, obtaining, for each identified key value, a corresponding index value pointing to a limited portion of key values in a next index table, identifying, in said limited portion of said next index table, at least one key value matching a next sub-key of the main search key repeating the steps of obtaining index values and searching a limited portion of a next index table until all sub-keys of the main search key have been searched, returning a result when the last sub-key of the main search key has been searched.