Client Object Descriptors Reduce Kernel Synchronization Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data storage systems, synchronizing file descriptors between multiple threads or entities within a kernel or kernel analogue can lead to complex and performance-lowering operations, especially in storage servers handling many clients and files.

Innovation Solution

A client component generates and allocates object descriptors instead of the kernel, allowing the client to manage access sessions and reduce the burden on control modules by synchronizing object descriptor tables across control modules.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the kernel or FS server manages and synchronizes file descriptors across multiple threads and clients, then file access functionality is maintained, but system performance deteriorates due to complex synchronization requirements

Engineering Contradiction:
Improvefile access functionalityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the file descriptor allocation and management functionality from the kernel/FS server and relocates it to the client side. The client now generates and manages its own object descriptors independently, eliminating the need for the kernel to allocate and synchronize file descriptors across multiple threads and clients. This extraction removes the synchronization bottleneck while preserving file access functionality through the object descriptor mechanism.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The client is empowered to serve itself by autonomously allocating and managing object descriptors without requiring kernel intervention for each file access operation. The client maintains its own object descriptor table and can independently create, validate, and manage object descriptors for its file access sessions, reducing the burden on the kernel and improving overall system performance.

Inventive Principle:
Principle #25Self-service

2Reliability

If the kernel allocates and manages file descriptors for many clients and files, then file access control is maintained, but device complexity increases due to multiple threads and synchronization mechanisms

Engineering Contradiction:
Improvefile access controlVSAvoidkernel complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the object descriptor allocation and management responsibilities from the kernel and transfers them to the client. The kernel no longer needs to maintain complex synchronization mechanisms for file descriptor allocation across multiple threads and clients. Instead, the client independently manages its own object descriptors, significantly reducing kernel complexity while maintaining file access control through the object descriptor validation mechanism.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the file descriptor management functionality by creating separate object descriptor tables at the client level rather than maintaining a centralized kernel-managed file descriptor table. Each client has its own object descriptor space, allowing independent management without inter-thread synchronization. This segmentation reduces kernel complexity by eliminating the need for complex synchronization mechanisms.

Inventive Principle:
Principle #1Segmentation

3Reliability

If the FS server requests kernel to open files and allocate file descriptors for each access operation, then proper file handling is ensured, but loss of time occurs due to repeated system calls and kernel operations

Engineering Contradiction:
Improvefile handling correctnessVSAvoidoperation latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The client performs preliminary action by pre-generating and caching object descriptors for file access sessions before actual file operations are needed. Instead of requesting kernel to allocate file descriptors for each access operation, the client has already prepared the object descriptors in advance. This preliminary action eliminates repeated system calls and kernel operations, significantly reducing operation latency while ensuring proper file handling through object descriptor validation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The client serves itself by autonomously generating and managing object descriptors without requiring kernel involvement for each file access operation. The client maintains its own object descriptor table and can independently create and validate object descriptors, eliminating the time-consuming system call cycle between FS server and kernel. This self-service approach dramatically reduces operation latency while maintaining file handling correctness.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10852955B2Method and system for accessing data objects stored in a storage system using object descriptors allocated by clients
Publication Date: 2020.12.01 EMC IP HLDG CO LLC
  • US10852955B2 patent drawing
  • US10852955B2 patent drawing
  • US10852955B2 patent drawing

AI summary

A storage system includes a communication fabric, a storage module, a client device having an object descriptor (OD) generator to generate object descriptors (ODs) to access data stored in storage devices of the storage module. The storage system further includes a first control module (CM) coupled to the client device and the storage module via the communication fabric to manage accesses of the storage module. The first CM is adapted to receive a request from client device to access a data object stored in the storage module, where the request includes an OD uniquely identifying the data object and created by the OD generator of the client device. In response, the first CM examines a first object descriptor table (ODT) associated with the first CM to determine whether the OD is valid, and if the OD is valid allows the storage module to service the request.