Reference Count Propagation in Distributed Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face inefficiencies in tracking reference counts for billions of data objects across a peer-to-peer network, leading to high network traffic and CPU costs, and challenges in determining when objects can be safely deleted due to simplistic algorithms.

Innovation Solution

A method and system for tracking object references across network nodes by maintaining a local reference count (LRC) independent of object instances, allowing negative values, and calculating a global reference count (GRC) to determine safe de-allocation, while enabling flexible placement of objects based on network performance or reliability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If simplistic algorithms are used to track reference counts for billions of objects, then the implementation is easier, but network traffic and CPU costs become unacceptable

Engineering Contradiction:
Improveease of implementationVSAvoidnetwork traffic and CPU costs
Core Design Contradiction:
Ease of manufactureVSLoss of energy

Solution Approach 1:

The patent segments the reference count tracking into local reference counts maintained at each node independently, rather than requiring global tracking. Each node maintains its own LRC for objects it knows about, eliminating the need for complex global coordination and reducing network traffic significantly.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses copies of reference count information stored locally at each node. Instead of maintaining a single global reference count, each node keeps a local copy (LRC) of the reference count for objects in its scope, allowing independent tracking without global synchronization overhead.

Inventive Principle:
Principle #26Copying

2Reliability

If reference counts are tracked for all objects, then object de-allocation can be determined, but the complexity of tracking increases significantly

Engineering Contradiction:
Improveobject de-allocation determinationVSAvoidtracking complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by making each node maintain reference counts only for objects within its local scope (LRC), rather than tracking all objects globally. This localized approach reduces the complexity at each node while maintaining reliable de-allocation determination through the global reference count mechanism.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent merges local reference counts from multiple nodes to determine the global reference count. By combining LRCs from all nodes, the system achieves reliable object de-allocation determination without requiring any single node to track all objects individually, thus reducing overall system complexity.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If objects are placed on nodes based on object name, then placement is deterministic, but flexibility for network performance optimization is reduced

Engineering Contradiction:
Improveplacement determinismVSAvoidplacement flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamics by allowing object placement to be flexible rather than fixed. Objects can be placed on any node based on current network conditions, performance considerations, or load balancing requirements, while the reference count tracking mechanism adapts to handle this flexibility through local reference count maintenance.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9357004B2Reference count propagation
Publication Date: 2016.05.31 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9357004B2 patent drawing
  • US9357004B2 patent drawing
  • US9357004B2 patent drawing

AI summary

Methods and systems are provided for tracking object instances stored on a plurality of network nodes, which tracking enables a global determination of when an object has no references across the networked nodes and can be safely de-allocated. According to one aspect of the invention, each node has a local object store for tracking and optionally storing objects on the node, and the local object stores collectively share the locally stored instances of the objects across the network. One or more applications, e.g., a file system and/or a storage system, use the local object stores for storing all persistent data of the application as objects.