Patents Assigned to Scale Computing, Inc.
-
Patent number: 12645476Abstract: Managing resources in a VM cluster; allocation of resources among competing VMs. Assigning VMs to real devices, responsive to needs for resources: processor usage, disk I/O, network I/O, memory space, disk space. Assigning VMs responsive to needs for cluster activity: network response latency, QoS. Using predictive models of resource usage by VMs. Transferring VMs, improving utilization. Failing-soft onto alternative VM resources. Providing a resource buffer for collective VM resource demand. Transferring VMs to a cloud service that charges for resources.Type: GrantFiled: February 5, 2018Date of Patent: June 2, 2026Assignee: Scale Computing, Inc.Inventors: Aaron Pagl, NAte Hardt
-
Patent number: 12613722Abstract: Providing differing degrees of reliability or security for distinct devices within a reliable distributed system. Allowing virtual machines to operate in a reliable distributed system without either exposing the actual available devices to guest operating systems, or requiring the guest OS to maintain, or to maintain information about, reliability or security. Methods are responsive to a hierarchy of possible reliability or security failures, to guard more carefully against simultaneous failures of reliability or breaches of security, without additional work or delay. Functions invoked by the user that relate to reliability and security are hidden, so the user can specify a degree of reliability or security without having to implement those requirements themselves. Providing a uniform set of resources available to all users, separating out those individual resources that are allocated to particular users, and emulating particular devices at the request of those particular users.Type: GrantFiled: December 17, 2019Date of Patent: April 28, 2026Assignee: Scale Computing, Inc.Inventors: Nate Hardt, Scott Loughmiller, Philip White
-
Patent number: 12547315Abstract: 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.Type: GrantFiled: October 21, 2021Date of Patent: February 10, 2026Assignee: Scale Computing, Inc.Inventors: Clint McVey, Scott Loughmiller
-
Patent number: 10176023Abstract: A system, method, and computer program product are provided for implementing a protocol stack for handling memory access requests associated with one or more block devices. The method includes the steps of allocating a thread to process a task associated with a memory access request for a block device; and executing the thread to process the task, wherein the thread implements a state machine that manages calls to two or more layers of the protocol stack. A task dispatcher is implemented for managing the execution of tasks using at least one thread pool, the tasks managing the calls to the various layers of the protocol stack. The protocol stack may implement abstraction layers for virtual storage devices as well as the real block devices.Type: GrantFiled: August 3, 2016Date of Patent: January 8, 2019Assignee: SCALE COMPUTING, INC.Inventor: Philip Andrew White
-
Patent number: 9740627Abstract: A system, method, and computer program product are provided for implementing a reliable placement engine for a block device. The method includes the steps of tracking one or more parameters associated with a plurality of real storage devices (RSDs), generating a plurality of RSD objects in a memory associated with a first node, generating a virtual storage device (VSD) object in the memory, and selecting one or more RSD objects in the plurality of RSD objects based on the one or more parameters. Each RSD object corresponds to a particular RSD in the plurality of RSDs. The method also includes the step of, for each RSD object in the one or more RSD objects, allocating a block of memory in the RSD associated with the RSD object to store data corresponding to a first block of memory associated with the VSD object.Type: GrantFiled: April 22, 2016Date of Patent: August 22, 2017Assignee: Scale Computing, Inc.Inventors: Philip Andrew White, Hank T. Hsieh
-
Patent number: 9542108Abstract: A system, method, and computer program product are provided for performing fast migration of a virtual resource from one node to another node. The method includes the steps of receiving a first request to migrate a resource from a first node to a second node, transmitting a second request to the second node to create a new instance of the resource, collecting a set of changes associated with the resource in a data structure, and transmitting the data structure that includes the set of changes to the second node. The second node generates the new instance of the resource based on a snapshot of the resource captured by the first node at a previous point in time and updates the new instance of the resource based on the set of changes such that the new instance of the resource on the second node matches the resource on the first node.Type: GrantFiled: June 30, 2014Date of Patent: January 10, 2017Assignee: Scale Computing, Inc.Inventor: Philip Andrew White
-
Patent number: 9436386Abstract: A system, method, and computer program product are provided for implementing shared reference counters among a plurality of virtual storage devices. The method includes the steps of allocating a first portion of a real storage device to store data, wherein the first portion is divided into a plurality of blocks of memory and allocating a second portion of the real storage device to store a plurality of reference counters that correspond to the plurality of blocks of memory. The reference counters may be updated by two or more virtual storage devices hosted in one or more nodes to manage the allocation of the blocks of memory in the real storage device.Type: GrantFiled: June 27, 2014Date of Patent: September 6, 2016Assignee: Scale Computing, Inc.Inventor: Philip Andrew White
-
Patent number: 9348526Abstract: A system, method, and computer program product are provided for implementing a reliable placement engine for a block device. The method includes the steps of tracking one or more parameters associated with a plurality of real storage devices (RSDs), generating a plurality of RSD objects in a memory associated with a first node, generating a virtual storage device (VSD) object in the memory, and selecting one or more RSD objects in the plurality of RSD objects based on the one or more parameters. Each RSD object corresponds to a particular RSD in the plurality of RSDs. The method also includes the step of, for each RSD object in the one or more RSD objects, allocating a block of memory in the RSD associated with the RSD object to store data corresponding to a first block of memory associated with the VSD object.Type: GrantFiled: March 28, 2014Date of Patent: May 24, 2016Assignee: Scale Computing, Inc.Inventors: Philip Andrew White, Hank T. Hsieh
-
Publication number: 20150277789Abstract: A system, method, and computer program product are provided for implementing a reliable placement engine for a block device. The method includes the steps of tracking one or more parameters associated with a plurality of real storage devices (RSDs), generating a plurality of RSD objects in a memory associated with a first node, generating a virtual storage device (VSD) object in the memory, and selecting one or more RSD objects in the plurality of RSD objects based on the one or more parameters. Each RSD object corresponds to a particular RSD in the plurality of RSDs. The method also includes the step of, for each RSD object in the one or more RSD objects, allocating a block of memory in the RSD associated with the RSD object to store data corresponding to a first block of memory associated with the VSD object.Type: ApplicationFiled: March 28, 2014Publication date: October 1, 2015Applicant: Scale Computing, Inc.Inventors: Philip Andrew White, Hank T. Hsieh
-
Patent number: 9104651Abstract: Reliably testing distributed systems in which multiple components interact, including: provisioning resources by a test leader, directing components to perform actions required by test suites, and reporting results. Provisioning resources might be batched in advance, and might overlap resources for multiple test suites. Provisioning and directing might occur on an as-needed basis, might be performed concurrently, and might be reordered for relatively better performance. Directing actions might occur on command by test leaders, might occur by synchronization of resources, or might occur by resources requesting permission to proceed. Resources might act only upon direction by test leaders, or might act on their own initiative when synchronized. Results might be reported to the test leader for comparison, maintained in a database for access by the test leader, or compared by resources on their own initiative in response to instructions from the test leader.Type: GrantFiled: July 15, 2011Date of Patent: August 11, 2015Assignee: Scale Computing, Inc.Inventors: Philip White, Michael McLaughlin
-
Patent number: 9077665Abstract: Virtual machine localization in a distributed fault-tolerant system. Network traffic is minimized between nodes, while maintaining fault-tolerant behavior. Communication is measured between VM's, which are moved to minimize real network use. An availability group defines which resources cannot safely be disposed on a single device. When two VM's are in the same availability group, they are disposed as near as practical, but not on the same device. VM's and other resources they use are also disposed to minimize real network use. Minimizing real network use includes minimizing both channels occupied and communication distance. Availability groups can include both “hard” availability groups, for which data could be irretrievably lost, or “soft” availability groups, for which data could be lost, but could still be recovered with difficulty. Resource localization responds to both distance between VM's and their resources, and risk associated with losing data.Type: GrantFiled: March 15, 2013Date of Patent: July 7, 2015Assignee: Scale Computing, Inc.Inventor: Scott Loughmiller
-
Patent number: 8949305Abstract: Reliably making configuration changes to distributed systems, including receiving commands for multiple configuration changes, subdividing configuration changes into separate tasks, and performing those tasks at each node. A configuration element receives sets of configuration change commands, acknowledging them so the user need not wait before issuing additional commands. Tasks are determined, each including consistent changes to system configuration, and each including single-device tasklets. Each particular tasklet might be assigned to a particular single device, or to any single device in the system. Next tasks are performed when tasklets are complete. If tasklets are not timely performed due to nodes which are relatively unresponsive, those nodes are marked “failed.” When a failed node returns to responsiveness, it marks itself “recovering.” When a recovering node catches up, it marks itself “operational.” Updates by failed or recovering nodes are skipped while synchronizing with operational nodes.Type: GrantFiled: July 15, 2011Date of Patent: February 3, 2015Assignee: Scale Computing, Inc.Inventor: Philip White