Object Store Virtual Machine Compare and Swap Mechanism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current object storage systems face challenges in reliably routing user requests and determining which updates to accept or reject during simultaneous updates by multiple users, particularly due to issues with timestamp and header information being filtered out by proxy servers, leading to potential security risks and increased complexity.

Innovation Solution

Implementing a compare and swap (CAS) value associated with each bucket and object, which is updated with each change, allowing the object store to compare and swap values to resolve collision conditions and ensure only recent updates are accepted, without requiring significant modifications to proxy server configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If timestamp and header information are used to route user requests and determine update acceptance, then the object store can manage simultaneous updates, but proxy servers filter out this information causing security risks and increased complexity

Engineering Contradiction:
Improvereliability of routing user requestsVSAvoidcomplexity of proxy server configuration
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the routing and update determination logic from relying on proxy server headers and timestamps, instead using a self-contained compare-and-swap value mechanism within the object store system. This removes the dependency on proxy server configurations and the information they filter.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a compare-and-swap value as an intermediary mechanism that mediates between multiple user requests and the object store. This intermediary value enables reliable routing and update acceptance determination without requiring proxy servers to preserve or forward specific header information.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If timestamp and header information are used to determine update acceptance, then simultaneous updates can be managed, but security risks increase due to information filtering

Engineering Contradiction:
Improveaccuracy of update acceptance determinationVSAvoidsecurity risks from filtered information
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent removes the security vulnerability by extracting the update determination logic from proxy server headers that are subject to filtering. The compare-and-swap value mechanism operates independently of proxy server information, eliminating the security risk while maintaining accurate update acceptance determination.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If conventional object storage mechanisms are used, then data can be stored as files in folders, but scalability and maintenance cost are limited

Engineering Contradiction:
Improvescalability of storage systemVSAvoidmaintenance complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent changes the fundamental parameter of data organization from hierarchical files-in-folders to flat objects with metadata. This parameter change enables superior scalability and reduces maintenance complexity while maintaining the ability to manage simultaneous updates through the compare-and-swap mechanism.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10521116B2System and method for managing object store
Publication Date: 2019.12.31 NUTANIX INC
  • US10521116B2 patent drawing
  • US10521116B2 patent drawing
  • US10521116B2 patent drawing

AI summary

A system and method include receiving, by an object store virtual machine of a virtual object storage system, a user request for updating an element of an object store. The user request includes a first compare and swap value. The system and method also include updating the first compare and swap value from the second user request for obtaining an updated compare and swap value, comparing the updated compare and swap value with a current compare and swap value of the element, and updating the element upon determining that the updated compare and swap value is greater than the current swap and compare value. Updating the element comprises one of creating a new version of the element and overwriting a previous version of the element. The system and method further include replacing the current compare and swap value with the updated compare and swap value.