Storage-Computation Integrated Indexing via Cross-Point Arrays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing key-value storage systems face inefficiencies in indexing operations due to frequent comparisons and memory accesses, particularly in tree index structures and hash index structures, which lead to decreased storage performance.
Innovation Solution
A storage-computation integrated indexing system utilizing a cross-point array with resistive memory cells and a hash table, enabling in-situ indexing operations through parallel data comparison capabilities, thereby reducing the complexity of hash indexing steps and improving indexing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If tree index structure is used, then data operations can be performed through hierarchical traversal, but query time complexity is O(log N) requiring multiple comparisons and memory accesses
Solution Approach 1:
The patent segments the index structure into multiple independent array banks, where each array bank can perform indexing operations independently and in parallel. This segmentation allows the system to avoid the sequential traversal of tree structures while maintaining efficient data operation capabilities through parallel processing of segmented index arrays.
Solution Approach 2:
The patent transitions from the traditional hierarchical tree structure to a multi-dimensional parallel array structure. By organizing indexes in multiple array banks that can be accessed simultaneously, the system achieves O(1) time complexity for query operations, fundamentally changing the dimensional approach from sequential hierarchy to parallel flat structure.
2Speed
If hash index structure is used, then query operations can achieve O(1) time complexity, but hash conflicts require additional data access and comparison
Solution Approach 1:
The patent introduces array banks as intermediary structures between the hash function and the actual data storage. When hash conflicts occur, the system uses the array bank structure to resolve conflicts through parallel comparison operations, eliminating the need for complex chaining or linear probing methods while maintaining O(1) query speed.
Solution Approach 2:
The patent replaces the mechanical conflict handling methods (chaining, linear probing) with a content-addressable memory approach using cross-point arrays. This substitution eliminates the need for sequential conflict resolution by enabling parallel comparison of hash values directly in the array structure, significantly reducing device complexity.
3Productivity
If traditional index structures are used, then data can be stored and retrieved, but frequent comparisons and memory accesses decrease storage performance
Solution Approach 1:
The patent merges the storage function and computation function into a unified indexing system where the array banks serve both as storage structures and as processing units. This merging eliminates the need for separate comparison and memory access operations, as the cross-point array structure performs both functions simultaneously, thereby improving storage performance while reducing operational complexity.
Solution Approach 2:
The patent enables the index structure to perform its own comparisons and retrieval operations without requiring external processing. The content-addressable array banks can directly compare query keys with stored keys and retrieve corresponding values in a single operation, making the indexing system self-sufficient and eliminating frequent separate memory accesses that degrade performance.
Data Source
AI summary
The disclosure discloses a storage-computation integrated indexing system and a key-value pair storage system, a controller and multiple array banks capable of operating in parallel are included. The array banks include multiple content-addressable cross-point arrays. In each array, each row is used to store a key and a valid flag bit thereof. The controller is configured to perform an indexing operation on key-value pair data stored in the array. The indexing operation includes an insertion operation, which includes: for key-value pair data [ki, vi] to be inserted, searching for a row that does not store a valid key in the array bank mapped by a hash bucket Bi corresponding to a key ki. If search is successful, the key ki is stored in an assigned row, its valid flag bit is set to valid, the value vi is written into an array row; otherwise, the operation is returned as failed.


