Bucket Skiplist Cache Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional skiplists are inefficient due to the need for multiple memory accesses and lack of cache optimization, leading to high search and insertion costs and cache misses, as each node stores only a single value and is spread across memory.

Innovation Solution

The bucket skiplist structure, where each node can store multiple values in a bucket, optimizing storage to fit within a CPU cache, allowing for faster operations by reading and storing values as cache lines, reducing cache misses, and enabling efficient insertion and construction of buckets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional skiplists store only a single value per node spread across memory, then the data structure maintains simplicity and ease of implementation, but search and insertion operations incur high memory access costs and frequent cache misses

Engineering Contradiction:
Improvesearch and insertion operation speedVSAvoidmemory access complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple values into a single node by introducing a bucket structure that can hold multiple values. Each node in the skiplist now contains a bucket with multiple values instead of a single value, reducing the number of nodes and memory allocations required. This combining approach improves cache utilization and reduces memory access overhead during search and insertion operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements a nested structure where buckets are nested within nodes, and each bucket contains multiple values. This nesting allows the data structure to organize values hierarchically, with the bucket acting as a container that groups related values together in memory, improving spatial locality and cache efficiency.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Productivity

If values are stored in separate nodes across memory, then each node can be independently managed, but cache efficiency deteriorates due to values being scattered and requiring multiple memory accesses

Engineering Contradiction:
Improvecache efficiencyVSAvoidmemory access time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

By combining multiple values into a single bucket within a node, the patent improves cache efficiency. When a node is loaded into cache, all values within its bucket are also available in cache, eliminating the need for multiple separate memory accesses that would occur if values were stored in independent nodes scattered across memory.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the skiplist into buckets, where each bucket is optimized to fit within a cache line or cache block. This segmentation strategy groups values that are likely to be accessed together into the same memory location, improving cache utilization and reducing the number of cache misses during search operations.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If each node stores only a single value, then memory allocation is simple and straightforward, but the number of nodes and memory allocations increases, leading to higher overhead

Engineering Contradiction:
Improvenumber of nodes and allocationsVSAvoidoperation cost
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent merges multiple values into single nodes through the bucket structure, directly reducing the total number of nodes required in the skiplist. This reduction in node count decreases the number of memory allocations and the overhead associated with managing individual nodes, while still maintaining the logarithmic time complexity of skiplist operations.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10235420B2Bucket skiplists
Publication Date: 2019.03.19 SAP SE
  • US10235420B2 patent drawing
  • US10235420B2 patent drawing
  • US10235420B2 patent drawing

AI summary

The present disclosure involves systems, software, and computer implemented methods for providing a bucket skiplist. In one example, a method comprises identifying a value to be searched for within a skiplist comprising a data structure for referencing a plurality of ordered nodes, the data structure having a plurality of linked lists, each node representing at least one memory block, wherein each node is associated with a bucket including a set of ordered values, where the first value in each bucket of each node is the relatively lowest value in the bucket, comparing the value to the first values in each bucket to identify a particular node in which the first value may be located, and, in response to determining that the first value of the particular node is not the same as the value to be searched, comparing the value to be searched with the ordered values in the bucket.