SSD Indexing via Slicing and Buffer Clustering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current SSD index designs lack flexibility and generality, leading to poor performance under varying workloads and incompatible data structures, which limits their applicability and scalability in data-intensive systems.

Innovation Solution

The proposed solution involves creating buffer indexes that cluster related hash type index data for efficient writing to flash memory, leveraging parallelism in SSD architecture, and using slicing to combine multiple reads into a single operation, allowing for optimal performance across different workloads and resource constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If hash type indexes are compressed or reordered for space savings, then storage efficiency is improved, but the hash index becomes inoperable

Engineering Contradiction:
Improvestorage efficiencyVSAvoidhash index operability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The index is divided into two separate components: a hash table for fast key-based lookup and a sorted structure for space-efficient storage. This segmentation allows each component to serve its specific function optimally without compromising the other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A mapping structure is introduced as an intermediary between the compressed sorted index and the actual data. This mapping layer preserves the operational integrity of the hash index while allowing the underlying storage to be compressed and reordered for space efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If random page writes are performed on SSD, then write flexibility is improved, but write performance deteriorates

Engineering Contradiction:
Improvewrite flexibilityVSAvoidwrite performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

Data is pre-processed and organized into sorted runs before being written to SSD. This preliminary sorting action converts random write operations into sequential writes, dramatically improving write performance while maintaining the flexibility of random access through the hash table layer.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically switches between hash table operations for fast random access and sorted structure operations for efficient sequential writes. This dynamic behavior allows the system to optimize for the current operation type, maintaining flexibility while improving overall productivity.

Inventive Principle:
Principle #15Dynamics

3Quantity of substance

If index size increases to accommodate growing data, then data capacity is improved, but access performance deteriorates

Engineering Contradiction:
Improvedata capacityVSAvoidaccess performance
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The growing index is segmented into multiple sorted runs that are stored sequentially on SSD. Each run maintains the sorted property, allowing binary search to remain effective even as the overall index size increases, thus preserving access performance while accommodating larger data capacities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from a single-dimension hash table to a two-dimensional structure combining hash-based key access with sorted multi-dimensional runs. This dimensional change allows the index to scale in capacity while maintaining fast access through the hash layer and efficient storage through the sorted runs.

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

4Quantity of substance

If SSD is used instead of DRAM for index storage, then cost and density are improved, but access latency increases

Engineering Contradiction:
Improvestorage densityVSAvoidaccess latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The index data is pre-sorted and organized into optimized runs before being written to SSD. This preliminary organization reduces the need for random access patterns during queries, allowing SSD to serve data more efficiently and reducing access latency while maintaining high density.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system merges the fast key-based lookup capability of hash tables with the space-efficient sorted storage structure on SSD. This combination allows the system to leverage SSD's high density while minimizing access latency through intelligent data organization and access patterns.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9612955B2High-performance indexing for data-intensive systems
Publication Date: 2017.04.04 WISCONSIN ALUMNI RES FOUND
  • US9612955B2 patent drawing
  • US9612955B2 patent drawing
  • US9612955B2 patent drawing

AI summary

Aspects of the present invention provide high-performance indexing for data-intensive systems in which “slicing” is used to organize indexing data on an SSD such that related entries are located together. Slicing enables combining multiple reads into a single “slice read” of related items, offering high read performance. Small in-memory indexes, such as hash tables, bloom filters or LSH tables, may be used as buffers for insert operations to resolve slow random writes on the SSD. When full, these buffers are written to the SSD. The internal architecture of the SSD may also be leveraged to achieve higher performance via parallelism. Such parallelism may occur at the channel-level, the package-level, the die-level and/or the plane-level. Consequently, memory and compute resources are freed for use by higher layer applications, and better performance may be achieved.