IP Library Granted Patent US 10,089,011
Granted Patent B1
US 10,089,011 · App. 14/554,012 · Granted Oct 2, 2018

Zero memory buffer copying in a reliable distributed computing system

Inventors: Clint McVey (San Carlos, CA); Scott Loughmiller (San Francisco, CA)
Assignee: Scale Computing
G06F3/061G06F3/0608G06F3/0631G06F3/0659G06F3/0683H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,089,011
App. No.
14/554,012
Granted
Oct 2, 2018
Kind
B1
Abstract

Reducing buffer space that is reserved when a VM attempts to write to disk. A shared memory maintains stored information available to all VM's, allowing translation between accessible to RSD's, independent of how that VM's storage is divided into VSD's. When a guest OS writes to a VSD, an “extent”, designating a location in the shared memory and amount of data to be transferred, which can be passed directly from the guest OS, through each element involved in translating the operation into one or more operations on RSD's, keeping copying to a minimum. No substantial changes need be made to the guest OS.

Claims (49)

1. A method,

in a reliable distributed computing system, said system including one or more virtual machines, each said virtual machine having access to a plurality of virtual storage devices emulated in a memory commonly available to all said virtual machines,

of minimizing an amount of buffer space in the commonly available memory reserved for virtual storage device operations, said method including steps of

coupling the commonly available memory to said virtual machines, said commonly available memory maintaining information accessible to said virtual machines, wherein said information is allocated among said virtual storage devices;

receiving data with respect to an operation directed to one or more of said virtual storage devices;

allocating an extent within said shared memory, said extent including one or more regions of said shared memory and metadata defining said extent including designating locations and sizes of said one or more regions; and

sending said metadata defining the extent without data in said extent along a call chain disposed to perform said operation, said steps of sending along said call chain including steps of moving said metadata defining the extent from at least one process or thread disposed at a guest operating system to at least one process or thread disposed at a host operating system;

wherein said data with respect to said operation is not itself sent along said call chain.

2. A method as in claim 1 , including steps of

by a first said guest operating system, providing a first pointer to a first block of data in said shared memory;

by a second said guest operating system, providing a second pointer to a second block of data in said shared memory; and

by a host operating system, defining a first extent in response to said first pointer and defining a second extent in response to said second pointer, notwithstanding that said first pointer and said second pointer have distinct formats.

3. A method as in claim 1 , wherein

said extent is defined by said metadata, said metadata including

a starting location in said shared memory and a length of said data for which said operation is to be performed.

4. A method as in claim 1 , wherein

said guest operating system provides said metadata defining said extent in said shared memory,

said metadata being responsive to one or more virtual storage devices accessible to said guest operating system, and

said guest operating system sends said metadata defining said extent and a description of said operation to be performed to a process or thread in said host operating system; and

said host operating system receives said metadata defining said extent and said description of said operation to be performed,

said host operating system provides further information responsive to one or more real storage devices accessible to said host operating system,

in response to said metadata defining said extent and said description of said operation to be performed, and

said host operating system performs said operation to be performed in response to said further information to said one or more real storage devices.

5. A method as in claim 4 , wherein

said metadata defining said extent in said shared memory is responsive to a pointer to a data structure,

said pointer being formatted according to said guest operating system, and

said metadata being transformed from said pointer formatted according to said guest operating system into a data structure formatted as defined by said host operating system.

6. A method as in claim 4 , wherein

when said operation includes a read operation,

said host operating system provides data to be read in response to a result of said operation in said one or more regions of said shared memory defined by said extent, and

said host operating system returns a response to a result of said operation with respect to said metadata defining said extent to said guest operating system.

7. A method as in claim 4 , wherein

when said operation includes a write operation,

said guest operating system provides data to be written in one or more regions of said shared memory, and

said guest operating system provides said metadata defining said extent in response to said one or more regions.

8. A method as in claim 1 , wherein

when said operation includes a read operation,

data to be read need not be copied from a first portion of said shared memory to a second portion of said shared memory, and

data to be read need not be copied from said host operating system to said guest operating system.

9. A method as in claim 1 , wherein

when said operation includes a read operation,

said process or thread disposed at said host operating system fills said extent with data after said operation is performed.

10. A method as in claim 1 , wherein

when said operation includes a write operation,

data to be written need not be copied from a first portion of said shared memory to a second portion of said shared memory, and

data to be written need not be copied from said guest operating system to said host operating system.

11. A method as in claim 1 , wherein

when said operation includes a write operation,

said process or thread disposed at said guest operating system fills said extent with data before said operation is performed.

Assignments (14)
SECURITY INTEREST Recorded Jan 29, 2026
From: SCALE COMPUTING, LLC
To: TORONTO DOMINION (TEXAS) LLC
Reel/Frame 073633/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2025
From: MCVEY, CLINT; LOUGHMILLER, SCOTT
To: SCALE COMPUTING, INC.
Reel/Frame 073242/0503 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2025
From: SCALE COMPUTING, LLC
To: SCALE COMPUTING, INC.
Reel/Frame 072864/0595 →
CHANGE OF NAME Recorded Aug 28, 2025
From: ACUMERA SCALE, LLC
To: SCALE COMPUTING, LLC
Reel/Frame 072699/0326 →
MERGER Recorded Aug 15, 2025
From: SCALE COMPUTING, INC.
To: ACUMERA SCALE, LLC
Reel/Frame 072034/0883 →
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2025
From: BANC OF CALIFORNIA (FORMERLY KNOWN AS PACIFIC WESTERN BANK)
To: SCALE COMPUTING, INC.
Reel/Frame 071898/0667 →
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2025
From: MS PRIVATE CREDIT ADMINISTRATIVE SERVICES LLC AS AGENT
To: SCALE COMPUTING, INC.
Reel/Frame 071901/0365 →
SECURITY INTEREST Recorded Oct 13, 2023
From: SCALE COMPUTING, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 065213/0109 →
RELEASE OF SECURITY INTEREST Recorded Feb 6, 2023
From: AVENUE VENTURE OPPORTUNITIES FUND, L.P.
To: SCALE COMPUTING, INC.
Reel/Frame 062603/0565 →
SECURITY INTEREST Recorded Feb 3, 2023
From: SCALE COMPUTING, INC.
To: NORTH HAVEN EXPANSION CREDIT II LP
Reel/Frame 062586/0059 →
RELEASE OF SECURITY INTEREST Recorded Dec 11, 2020
From: RUNWAY GROWTH CREDIT FUND INC.
To: SCALE COMPUTING, INC.
Reel/Frame 054619/0802 →
SECURITY INTEREST Recorded Dec 11, 2020
From: SCALE COMPUTING, INC.
To: AVENUE VENTURE OPPORTUNITIES FUND, L.P.
Reel/Frame 054619/0825 →
RELEASE OF SECURITY INTEREST Recorded Dec 10, 2020
From: RUNWAY GROWTH CREDIT FUND INC., AS AGENT
To: SCALE COMPUTING, INC.
Reel/Frame 054611/0589 →
SECURITY INTEREST Recorded Mar 29, 2019
From: SCALE COMPUTING, INC.
To: RUNWAY GROWTH CREDIT FUND INC.
Reel/Frame 048745/0653 →