Tree Data Structure Concurrent Access via Node-Level Locking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data structure locking mechanisms incur high costs due to swapping between user and kernel spaces and fail to provide parallelism between read and write operations, locking the entire data structure during writes and preventing concurrent read operations on unaffected parts.

Innovation Solution

Implement a system that locks only the specific nodes being written to during a write operation, using indicators like timestamps to allow concurrent read and write operations on tree-like data structures by preventing access to nodes undergoing writes while allowing access to unaffected nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a locking mechanism is implemented to ensure data integrity during write operations, then data integrity is improved, but the cost of swapping between user space and kernel space increases and parallelism between read and write operations is lost

Engineering Contradiction:
Improvedata integrityVSAvoidcost of swapping between user space and kernel space
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the locking mechanism from the data structure by using a copy-on-write approach. Instead of locking the entire data structure during writes, the system creates a copy of the modified data structure and atomically swaps it with the original. This eliminates the need for traditional locking mechanisms that require expensive user-space to kernel-space transitions, while maintaining data integrity through the atomic swap operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs write operations in advance by creating a copy of the data structure, applying modifications to the copy, and then atomically swapping it with the original. This preliminary action allows writes to be prepared without blocking reads, and the atomic swap ensures data integrity is maintained without requiring expensive locking mechanisms during the write operation.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a locking mechanism is implemented to ensure data integrity during write operations, then data integrity is improved, but parallelism between read and write operations is prevented

Engineering Contradiction:
Improvedata integrityVSAvoidparallelism between read and write operations
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the write operation into two independent phases: (1) creating and modifying a copy of the data structure, and (2) atomically swapping the copy with the original. During phase 1, reads can proceed in parallel on the original data structure without being blocked, while writes prepare the modified copy. This segmentation enables parallelism between concurrent reads and writes while maintaining data integrity through the atomic swap.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses copying as the core mechanism to enable parallelism. Instead of locking the original data structure during writes, the system creates a complete copy, applies all modifications to the copy, and then atomically swaps it with the original. This copying approach allows reads to continue accessing the original unchanged data structure while writes prepare the new version, maximizing parallelism while ensuring data integrity through the atomic swap operation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8019956B1System and method for concurrently storing and accessing data in a tree-like data structure
Publication Date: 2011.09.13 NETAPP INC
  • US8019956B1 patent drawing
  • US8019956B1 patent drawing
  • US8019956B1 patent drawing

AI summary

A system and method are described for concurrently storing and accessing data in a tree-like data structure. In one embodiment, a data structure is identified comprising a plurality of nodes, at least one node of the plurality of nodes being associated with at least one other node of the plurality of nodes. Each node of the plurality of nodes is associated with an indicator indicative of an occurrence of a write operation related to the associated node. A determination is made if a write operation, related to any of the plurality of nodes, is occurring, and the associated indicator is set in accordance therewith. Access is prevented to any of the plurality of nodes whose associated indicator indicates the occurrence of the write operation, and access is allowed to others of the plurality of nodes.