Scratch Extent Copying in Append-Only Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems face challenges in replicating data between storage devices without interfering with write operations during the replication process, necessitating a solution that ensures data integrity and fault tolerance while preventing concurrent write access.

Innovation Solution

An append-only data storage system uses scratch extents with private identifiers to facilitate copying data between storage devices, ensuring that the replication process occurs without interference from write operations by initially accessing the scratch extent through a private identifier and later making it publicly accessible after completion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is copied to a publicly accessible destination extent during replication, then data transfer can proceed, but write operations may interfere and compromise data integrity

Engineering Contradiction:
Improvedata integrityVSAvoidreplication efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a scratch extent as an intermediary storage location during the replication process. This scratch extent acts as a temporary buffer that receives copied data blocks before being committed to the final destination. By using this intermediate layer, the system allows write operations to continue on the destination while the scratch extent remains isolated and protected, thus maintaining data integrity without blocking replication efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by creating the scratch extent and assigning it a private identifier before the actual data copying begins. This preparatory step establishes a protected isolation environment in advance, ensuring that during the replication process, no other entities can access or interfere with the scratch extent. The private identifier is assigned beforehand to guarantee exclusive access rights are in place before data transfer starts

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If a scratch extent uses a public identifier during copying, then access is simplified, but other entities can write to it causing interference

Engineering Contradiction:
Improveaccess simplicityVSAvoidwrite interference
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The scratch extent serves as an intermediary with controlled access characteristics. During the copying phase, it maintains private identifier-based access control, acting as a protected intermediate buffer. Only the copying operation itself can access this scratch extent through its private identifier, while all other entities are blocked from accessing it. This resolves the contradiction by providing simplified access for the copying operation while preventing harmful write interference from other entities

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The access characteristics of the scratch extent are dynamic rather than static. The system transitions the scratch extent from a private, restricted state during copying to a public, accessible state after copying completes. During the replication process, the scratch extent dynamically maintains private access control to prevent interference, then dynamically transitions to public access once the copying is complete, adapting its accessibility to the current operational phase

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10248356B2Using scratch extents to facilitate copying operations in an append-only storage system
Publication Date: 2019.04.02 DROPBOX INC
  • US10248356B2 patent drawing
  • US10248356B2 patent drawing
  • US10248356B2 patent drawing

AI summary

An append-only data storage system is described that stores sets of data blocks in extents that are located in storage devices. During operation of the system, upon receiving a request to copy an extent from a source storage device to a destination storage device, the system creates a scratch extent on the destination storage device, and associates the scratch extent with a private identifier, whereby the scratch extent can only be accessed through the private identifier. The system uses the private identifier to perform a copying operation that copies the extent from the source storage device to the scratch extent on the destination storage device. After the copying operation is complete and the scratch extent is closed, the system associates the scratch extent with a public identifier, whereby the copy of the extent on the destination storage device becomes publically accessible to other entities in the data storage system.