Fine-Grain Locking for Semantic Database Index Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current indexing systems for semantic databases face inefficiencies in updating indexes due to the need for exclusive access, leading to prolonged downtime and inconsistencies during the addition of new triples, which affects the performance of search queries in large datasets.

Innovation Solution

The implementation of fine-grain locking within the indexing system allows concurrent access by locking only small portions of the index during updates, enabling readers and writers to operate simultaneously without requiring exclusive access to the entire index, thereby reducing downtime and maintaining data consistency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If exclusive access locking is used during index updates, then data consistency is maintained, but search query performance deteriorates due to prolonged downtime and blocked concurrent access

Engineering Contradiction:
Improvedata consistencyVSAvoidsearch query performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the index into multiple independent portions (index segments), each protected by its own lock. This allows updates to occur on one segment while other segments remain accessible for queries, eliminating the need for exclusive access to the entire index and enabling concurrent read operations during index maintenance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic locking where locks are acquired and released on specific index segments only when needed for updates, rather than maintaining static exclusive locks on the entire index. This dynamic approach allows the system to switch between read and write access on different segments at different times, improving overall system throughput and query performance during index maintenance operations.

Inventive Principle:
Principle #15Dynamics

2Productivity

If fine-grain locking is implemented to allow concurrent access, then search query performance improves, but index update complexity increases

Engineering Contradiction:
Improvesearch query performanceVSAvoidindex update complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By dividing the index into manageable segments with individual locks, the patent reduces the scope of locking operations. Each update operation only needs to acquire locks on the specific segments being modified, simplifying the locking logic compared to managing locks on the entire index structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary locking mechanism that mediates between readers and writers on specific index segments. This intermediary layer manages the complexity of concurrent access control, providing a standardized interface for acquiring and releasing locks while handling the underlying synchronization details.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If the entire index is locked during updates, then data consistency is ensured, but the overhead of waiting for updates increases

Engineering Contradiction:
Improvedata consistencyVSAvoidwaiting overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the index into multiple independent portions, each with its own lock. This allows readers to access unlocked segments immediately without waiting for updates on other segments, significantly reducing the waiting overhead while maintaining data consistency through fine-grained locking on the specific segments being updated.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10846278B2Dynamic updates to a semantic database using fine-grain locking
Publication Date: 2020.11.24 CRAY INC
  • US10846278B2 patent drawing
  • US10846278B2 patent drawing
  • US10846278B2 patent drawing

AI summary

A system for updating an index into a tuple table of tuples is provided. An indexing system updates an index into a tuple table using fine-grain locking of the index. The index includes a values table with an entry for each index value of an index field that references a value-tuple table that includes, for each tuple with the index value, a row that identifies a tuple of the tuple table with that indexed value. After a new tuple is added to the tuple table with a value, the index is updated by locking the entry in the values table, updating the value-tuple table for the value, and then unlocking the entry. When the index is accessed for locating tuples with a value, the accessor locks the entry in the values table for the value, uses the value-tuple table to locate the tuples, and unlocks the entry.