Prolly Tree Data Structure for Decentralized Database Query Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current distributed database systems face challenges in achieving performance comparable to SQL, NoSQL, and NewSQL databases for structured data storage, especially in decentralized systems where data updates and queries need to be efficient while maintaining low latency and high availability without relying on a single source of truth.

Innovation Solution

The implementation of a Prolly tree data structure, which is a probabilistically balanced search tree that allows for efficient queries and updates by representing data values in a way that the sequence of mutations does not affect the computation of the value's identifier, enabling decentralized systems to operate without coordination and maintain efficient synchronization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a decentralized database system allows any peer to operate on local data representations independently, then system availability and resistance to contention improve, but query performance and structured data operations deteriorate compared to SQL/NoSQL/NewSQL databases

Engineering Contradiction:
Improvesystem availabilityVSAvoidquery performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the database system into independent peer nodes, each maintaining local data representations. This segmentation enables decentralized operation where peers can independently query and update their local data without coordination overhead, improving availability while the Prolly tree structure optimizes local query performance to approach SQL/NoSQL levels

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimensional approach by using Prolly trees with content-based chunking and rolling hashes, transforming how structured data is organized and accessed in decentralized systems. This enables efficient range queries and ordered traversal in distributed environments, bridging the performance gap with traditional SQL/NoSQL databases

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

2Adaptability or versatility

If traditional decentralized systems store structured data without centralized coordination, then system autonomy improves, but data synchronization and conflict resolution become problematic

Engineering Contradiction:
Improvesystem autonomyVSAvoiddata synchronization
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent applies preliminary action by pre-computing content hashes and organizing data into content-based chunks before distribution. Each peer independently computes rolling hashes and Prolly tree structures from their local data, enabling autonomous operation while ensuring data consistency through deterministic content-based organization that facilitates efficient synchronization

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by allowing each peer to maintain independent local representations of structured data. Peers copy and store data locally with content-based addressing through Prolly trees, enabling autonomous access while synchronization occurs by exchanging and reconciling Prolly tree structures and content hashes rather than raw data

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11520780B2Distributed database systems and structures
Publication Date: 2022.12.06 SALESFORCE INC
  • US11520780B2 patent drawing
  • US11520780B2 patent drawing
  • US11520780B2 patent drawing

AI summary

Systems and techniques are described for efficient, general-purpose, and potentially decentralized databases, distributed storage systems, version control systems, and/or other types of data repositories. Data is represented in a database system in such a way that any value is represented by a unique identifier which is derived from the value itself. Any database peer in the system will derive an identical identifier from the same logical value. The identifier for a value may be derived using a variety of mechanisms, including, without limitation, a hash function known to all peers in the system. The values may be organized hierarchically as a tree of nodes. Any two peers storing the same logical value will deterministically represent that value with a graph, such as the described “Prolly” tree, having the same topology and hash value, irrespective of possibly differing sequences of mutations which caused each to arrive at the same final value.