Time-Synchronized Snapshot Aggregation for Distributed Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtual computing systems face challenges in capturing data consistent snapshots across distributed services due to lack of synchronized time between nodes, leading to increased latency and scale issues with high-frequency snapshot schedules.

Innovation Solution

Implementing a system and method for time-synchronized snapshots by providing a synchronized clock across services, using a snapshot aggregator to stitch snapshots across multiple clusters, and leveraging a time synchronization service via APIs to manage I/O operations and avoid remote procedure calls, allowing for high-frequency snapshot capture without stalling writes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If high-frequency snapshot schedules are implemented across distributed services, then snapshot consistency is improved, but latency increases and system performance deteriorates

Engineering Contradiction:
Improvesnapshot consistencyVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary time synchronization across all nodes before snapshot operations. Each node obtains synchronized time from a time synchronization service, allowing them to independently determine when to capture snapshots without waiting for coordination signals, thus eliminating latency while maintaining consistency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each distributed service independently captures snapshots based on its own local clock that is synchronized to a common time source. Services autonomously determine snapshot timing and execution without requiring remote procedure calls or coordination with other services, eliminating inter-service latency while ensuring all snapshots represent the same point in time.

Inventive Principle:
Principle #25Self-service

2Reliability

If synchronized time is implemented across distributed services, then snapshot consistency is improved, but system complexity increases

Engineering Contradiction:
Improvesnapshot consistencyVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A centralized time synchronization service acts as an intermediary that provides synchronized time to all distributed services. Each service simply queries this service for the current time and uses it for snapshot operations, avoiding the complexity of implementing distributed consensus algorithms or peer-to-peer time synchronization while ensuring all nodes operate with consistent time references.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If remote procedure calls are used for coordination, then snapshot consistency is improved, but performance deteriorates

Engineering Contradiction:
Improvesnapshot consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Each distributed service independently determines snapshot timing and execution based on its locally synchronized clock, eliminating the need for remote procedure calls for coordination. Services autonomously capture snapshots when their local time matches the target snapshot time, achieving both consistency and high performance without inter-service communication overhead.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11442959B2System and method of time-based snapshot synchronization
Publication Date: 2022.09.13 NUTANIX INC
  • US11442959B2 patent drawing
  • US11442959B2 patent drawing
  • US11442959B2 patent drawing

AI summary

An illustrative embodiment disclosed herein is an apparatus including a processor having programmed instructions to request, from each of a plurality of services spanning multiple clusters, a plurality of time instances. A plurality of snapshots were taken during the plurality of time instances. The processor has programmed instructions to present, to a user, the plurality of time instances and a plurality of identifiers. Each of the plurality of identifiers corresponds to one of the plurality of services. The processor has programmed instructions to receive, from the user, a first selection of a first time instance of the plurality of time instances and a second selection of a subset of the plurality of identifiers. Each of the subset of identifiers corresponds to one of a subset of the plurality of services. The processor has programmed instructions to apply, to a target, a subset of the plurality of snapshots.