Unified Index for Distributed Version Control Object Retrieval

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed version control systems, existing file-based storage systems face inefficiencies due to the need to scan multiple indexes to locate objects, which can lead to slower performance and increased complexity, especially in cloud environments where data is distributed across multiple machines.

Innovation Solution

Implementing a single index file that indexes objects across multiple pack files, allowing for efficient lookup and retrieval of objects in log time, while also supporting advanced data transformations, metadata storage, and upgradability, thereby optimizing object location and manipulation processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If multiple indexes are used to store objects in pack files, then object storage capacity is improved, but object retrieval speed deteriorates due to the need to scan multiple indexes

Engineering Contradiction:
Improveobject storage capacityVSAvoidobject retrieval speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent combines multiple separate indexes into a single unified index that stores references to objects across multiple pack files. This single index structure eliminates the need to scan multiple separate indexes, thereby maintaining object storage capacity while significantly improving retrieval speed by reducing the search space to a single index structure.

Inventive Principle:
Principle #5Merging (Combining)

2Speed

If a single index is used to index objects across multiple pack files, then object retrieval speed is improved, but system complexity increases

Engineering Contradiction:
Improveobject retrieval speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the single index into logical components that reference objects in different pack files, allowing the index to be organized and managed in a structured manner. This segmentation approach maintains retrieval speed benefits while reducing complexity by providing a clear organizational structure for the index data.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If file-based database systems are used with separated processing and storage machines, then system scalability is improved, but database usefulness deteriorates due to reduced random access capability

Engineering Contradiction:
Improvesystem scalabilityVSAvoiddatabase usefulness
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent introduces a single centralized index as an intermediary between the distributed pack files and the query system. This intermediary structure enables efficient object location across distributed storage while maintaining random access capability, thereby preserving database usefulness in scalable distributed architectures.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2972810B1Efficient DVCS storage system
Publication Date: 2020.11.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2972810B1 patent drawingFigure 1
  • EP2972810B1 patent drawingFigure 2

AI summary

Searching for objects in a distributed version control system. A method includes accessing a single index. The single index indexes objects in a plurality of pack files. Each pack file is a single object container aggregating the content of what would otherwise be loose objects of a version control system within the single object container such that the single object container includes the aggregated content. The method further includes from the single index, determining a location of a version control system object by determining from the index which pack file from among the plurality of pack files the object is stored in, and a location in the pack file where the object is stored. The method also includes retrieving the version control system object from the pack file.