Zero-Copy File Sharing Protocol for Virtual Machine I/O

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data management systems face compatibility issues when a Java Virtual Machine (JVM) attempts to access a Server Message Block (SMB) server, leading to input/output freezes and latency due to the incompatibility between JVM and C++ libraries used for file system access.

Innovation Solution

The implementation of a zero-copy concurrent file sharing protocol that allocates memory buffers outside the JVM's memory heap, allowing direct access and manipulation by a C++ library, enabling zero-copy reads and writes through a Java NIO ByteBuffer interface, which bypasses the need for data copying between memory locations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a Java Virtual Machine (JVM) uses C++ libraries to access SMB server, then file system access capability is achieved, but input/output freezes and latency occur due to compatibility issues between JVM and C++ libraries

Engineering Contradiction:
Improvefile system access capabilityVSAvoidI/O operation stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a buffer as an intermediary component between the JVM and the C++ library. The buffer acts as a mediator that receives data from the C++ library and passes it to the JVM, eliminating direct compatibility requirements between the two components. This intermediary buffer resolves the I/O freeze and latency issues by decoupling the interaction between JVM and C++ library.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements a copying mechanism where data is copied into a buffer that can be safely accessed by both JVM and C++ library. This copying approach creates an independent data representation that both systems can interact with without direct compatibility requirements, thereby resolving the reliability issues caused by direct JVM-C++ library interaction.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If data is copied between memory locations for file operations, then compatibility between JVM and C++ library is maintained, but latency increases and throughput decreases

Engineering Contradiction:
Improveprogramming language compatibilityVSAvoiddata throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent uses a buffer as a copy destination that both JVM and C++ library can access. Instead of requiring direct compatibility between JVM and C++ library memory structures, the system copies data into a standardized buffer format that both can interact with efficiently, maintaining compatibility while optimizing throughput.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent changes the memory access parameters by introducing a buffer with specific memory layout and access patterns that are optimized for both JVM and C++ library. This parameter change allows both systems to access data efficiently without the performance penalty of multiple copying operations between incompatible memory structures.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If memory buffers are allocated within JVM heap, then memory management is simplified, but access efficiency decreases due to copying requirements

Engineering Contradiction:
Improvememory management simplicityVSAvoiddata access efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The buffer serves as an intermediary memory structure that simplifies memory management while maintaining access efficiency. By centralizing memory allocation in the buffer and providing standardized access interfaces for both JVM and C++ library, the system achieves both simplicity and efficiency without requiring complex memory management protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Ease of operation

If file operations are performed sequentially through JVM, then programming simplicity is maintained, but concurrent access capability and throughput are limited

Engineering Contradiction:
Improveprogramming simplicityVSAvoidconcurrent operation throughput
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the file operation process into distinct components: JVM initiates operations, C++ library performs I/O, and buffer stores results. This segmentation allows concurrent operations by enabling the C++ library to handle multiple I/O operations independently while the JVM continues other tasks, thereby increasing throughput while maintaining programming simplicity through the standardized buffer interface.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20240378070A1Zero-copy concurrent file sharing protocol access from virtual machine
Publication Date: 2024.11.14 RUBRIK INC
  • US20240378070A1 patent drawing
  • US20240378070A1 patent drawing
  • US20240378070A1 patent drawing

AI summary

Methods, systems, and devices for data management are described. A data management system may implement one or more data management applications via a virtual machine. The virtual machine may allocate, using a first programming language, at least one memory buffer within system memory. The at least one memory buffer is accessible based at least in part on a library that is associated with a second programming language and that supports communication with a file system server. An interface may be generated for accessing, via the virtual machine, the at least one memory buffer. The interface may be associated with the first programming language that is also associated with the virtual machine. The virtual machine may perform, using the interface and the first programming language that is associated with the virtual machine, a zero-copy read of data from or a zero-copy write of data to the file system server.