Patents by Inventor Alexander Shamis

Alexander Shamis has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20240064033
    Abstract: Systems and methods are provided for generating a combined receipt in a distributed ledger system implemented by replicas of a network. The replicas maintain a distributed ledger comprising a plurality of executed transactions authenticated using a hash tree having a hash root. Some or all of the replicas cryptographically sign the hash root. A combined receipt for a first transaction and second transaction of a plurality of executed transactions is generated by determining path information comprising a minimum set of values required to generate the hash root from either the first transaction or the second transaction given the first transaction and the second transaction. The combined receipt for the first and second transactions comprises: i) the determined path information; and ii) signatures of one or more of the replicas which signed the hash root.
    Type: Application
    Filed: January 25, 2022
    Publication date: February 22, 2024
    Inventors: Alexander SHAMIS, Amaury Pierre Paul CHAMAYOU, Edward ASHTON, Julien MAFFRE, Sylvan CLEBSCH, Cedric Alain Marie Christophe FOURNET, Miguel Oom Temudo de CASTRO, Antoine Jean DELIGNAT-LAVAUD, Peter Robert PIETZUCH
  • Publication number: 20220335120
    Abstract: In various examples there is a computing device in communication with at least one other computing device via a communications network. The computing device has a memory and a central processing unit having a trusted execution environment comprising trusted regions of the memory. The computing device has an operating system configured to create a memory mapping between a virtual address space of the memory and a memory of the at least one other computing device and to provide details of the memory mapping to the trusted execution environment. The trusted execution environment is configured to execute an application which is able to communicate with the other computing device directly using the memory mapping provided by the operating system.
    Type: Application
    Filed: April 5, 2022
    Publication date: October 20, 2022
    Inventors: Alexander SHAMIS, Sylvan Wesley CLEBSCH, Felix SCHUSTER
  • Patent number: 11308203
    Abstract: In various examples there is a computing device in communication with at least one other computing device via a communications network. The computing device has a memory and a central processing unit having a trusted execution environment comprising trusted regions of the memory. The computing device has an operating system configured to create a memory mapping between a virtual address space of the memory and a memory of the at least one other computing device and to provide details of the memory mapping to the trusted execution environment. The trusted execution environment is configured to execute an application which is able to communicate with the other computing device directly using the memory mapping provided by the operating system.
    Type: Grant
    Filed: January 11, 2019
    Date of Patent: April 19, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Alexander Shamis, Sylvan Wesley Clebsch, Felix Schuster
  • Patent number: 11157038
    Abstract: In various examples, there is provided methods performed by nodes in a cluster of nodes to establish a master clock at a new master node following a reconfiguration of the nodes included in the cluster, whereby the master clock is provided by an old master node prior to the reconfiguration, and synchronize a local clock of slave nodes to clock of the new master node. The new master node sends a message to the slave nodes instructing them to disable their respective local clocks, receives acknowledgements that the local clocks have been disabled, waits until a time at which all leases have expired for any nodes removed from the cluster, sets the value of its clock to be greater than a maximum value that could have been provided by the old master node at the time the leases expired and indicates to the other nodes to re-enable their local clocks.
    Type: Grant
    Filed: March 2, 2020
    Date of Patent: October 26, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Miguel Castro, Dushyanth Narayanan, Aleksandar Dragojevic, Matthew Renzelmann, Alexander Shamis, Richendra Khanna, Stanko Novakovic, Anders Gjerdrum, Georgios Chatzopoulos
  • Patent number: 10929376
    Abstract: In various examples, there is provided methods performed by nodes in a cluster of nodes for performing transactions comprising one or more read operations and/or one or more write operations. The node comprises a local clock which is synchronized with a master clock and maintains a measure of uncertainty indicating current minimum and maximum values of the master clock. The method to perform transactions involving read operations generates a read timestamp representing a point in time which is earlier than a current minimum value of the master clock. The method then reads the objects and determines, for each of them, whether a timestamp associated with that object is later than the read timestamp. If so, an error handling procedure is performed for that object.
    Type: Grant
    Filed: March 22, 2018
    Date of Patent: February 23, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Miguel Castro, Dushyanth Narayanan, Aleksandar Dragojevic, Matthew Renzelmann, Alexander Shamis, Richendra Khanna, Stanko Novakovic, Anders Gjerdrum, Georgios Chatzopoulos
  • Patent number: 10810179
    Abstract: A distributed graph database that enables scaling and efficient processing is described. The distributed graph database can, for example, scale up to petabytes of data to enable transactional processing of graph data with low latency and low processing overhead. The distributed graph database can include a cluster of devices and a remote direct memory access (RDMA)-based communication layer to perform low latency messaging between devices of the cluster of devices. Additionally, the distributed graph database can include a shared memory layer that provides one or more data structures, a transaction layer to facilitate query processing, and a graph database layer stored in computer-readable media and executed on a processor to implement a graph data model. In at least one example, the graph data model can be mapped to the one or more data structures.
    Type: Grant
    Filed: May 13, 2016
    Date of Patent: October 20, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Knut Magne Risvik, Ming-Chuan Wu, Dushyanth Narayanan, Matthew Renzelmann, Alexander Shamis, Miguel Oom Temudo De Castro, Aleksandar Dragojevic, Chiranjeeb Buragohain, Richendra Khanna, Timothy Tan
  • Patent number: 10725963
    Abstract: An “RDMA-Based Memory Allocator” applies remote direct memory access (RDMA) messaging to provide fast lock-free memory allocations and de-allocations for shared memory distributed across multiple servers in an RDMA-based network. Alternately, in various implementations, the RDMA-Based Memory Allocator combines RDMA messaging and remote procedure call (RPC) requests to provide fast lock-free memory allocations and de-allocations for shared memory distributed across multiple servers in an RDMA-based network. In either case, any of the networked servers can act as either or both a client for requesting (or releasing) memory allocations and a host for hosting a portion of the distributed memory. Further, any server (including the requesting client) may act as the host for the distributed memory being allocated or de-allocated by any client via RDMA messaging. Advantageously, being lock-free improves overall performance of memory access between networked computers by reducing overall system latency.
    Type: Grant
    Filed: September 12, 2015
    Date of Patent: July 28, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yutaka Suzue, Alexander Shamis, Knut Magne Risvik
  • Publication number: 20200226248
    Abstract: In various examples there is a computing device in communication with at least one other computing device via a communications network. The computing device has a memory and a central processing unit having a trusted execution environment comprising trusted regions of the memory. The computing device has an operating system configured to create a memory mapping between a virtual address space of the memory and a memory of the at least one other computing device and to provide details of the memory mapping to the trusted execution environment. The trusted execution environment is configured to execute an application which is able to communicate with the other computing device directly using the memory mapping provided by the operating system.
    Type: Application
    Filed: January 11, 2019
    Publication date: July 16, 2020
    Inventors: Alexander SHAMIS, Sylvan Wesley CLEBSCH, Felix SCHUSTER
  • Patent number: 10713210
    Abstract: A “Key-Value Manager” applies an RDMA-based memory allocator to implement a distributed and lock-free B-Tree based key-value store. In various implementations, the Key-Value Manager is implemented as a standalone library running concurrently on large numbers of networked computing devices. The RDMA-based memory allocator of the Key-Value Manager allocates and accesses the memory of the key-value store via various sequences of RDMA messages (e.g., RDMA reads, RDMA writes, and RDMA atomic compare and swap (CAS) operations). As such, CPUs of computing devices hosting the memory of the key-value store do not need to be notified of or involved in RDMA-based reads and writes to that memory. Consequently, CPU utilization for any computing device that hosts any portion of the key-value store is minimal, thereby enabling the Key-Value Manager to scale to very large numbers of concurrent accesses by very large numbers of computing devices.
    Type: Grant
    Filed: October 13, 2015
    Date of Patent: July 14, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Alexander Shamis, Yutaka Suzue
  • Publication number: 20200201381
    Abstract: In various examples, there is provided methods performed by nodes in a cluster of nodes to establish a master clock at a new master node following a reconfiguration of the nodes included in the cluster, whereby the master clock is provided by an old master node prior to the reconfiguration, and synchronize a local clock of slave nodes to clock of the new master node. The new master node sends a message to the slave nodes instructing them to disable their respective local clocks, receives acknowledgements that the local clocks have been disabled, waits until a time at which all leases have expired for any nodes removed from the cluster, sets the value of its clock to be greater than a maximum value that could have been provided by the old master node at the time the leases expired and indicates to the other nodes to re-enable their local clocks.
    Type: Application
    Filed: March 2, 2020
    Publication date: June 25, 2020
    Inventors: Miguel Castro, Dushyanth Narayanan, Aleksandar Dragojevic, Matthew Renzelmann, Alexander Shamis, Richendra Khanna, Stanko Novakovic, Anders Gjerdrum, Georgios Chatzopoulos
  • Patent number: 10613578
    Abstract: In various examples, there is provided methods performed by nodes in a cluster of nodes to establish a master clock at a new master node following a reconfiguration of the nodes included in the cluster, whereby the master clock is provided by an old master node prior to the reconfiguration, and synchronize a local clock of slave nodes to clock of the new master node. The new master node sends a message to the slave nodes instructing them to disable their respective local clocks, receives acknowledgements that the local clocks have been disabled, waits until a time at which all leases have expired for any nodes removed from the cluster, sets the value of its clock to be greater than a maximum value that could have been provided by the old master node at the time the leases expired and indicates to the other nodes to re-enable their local clocks.
    Type: Grant
    Filed: March 22, 2018
    Date of Patent: April 7, 2020
    Assignee: CLOCK SYNCHRONIZATION
    Inventors: Miguel Castro, Dushyanth Narayanan, Aleksandar Dragojevic, Matthew Renzelmann, Alexander Shamis, Richendra Khanna, Stanko Novakovic, Anders Gjerdrum, Georgios Chatzopoulos
  • Publication number: 20190294204
    Abstract: In various examples, there is provided methods performed by nodes in a cluster of nodes to establish a master clock at a new master node following a reconfiguration of the nodes included in the cluster, whereby the master clock is provided by an old master node prior to the reconfiguration, and synchronize a local clock of slave nodes to clock of the new master node. The new master node sends a message to the slave nodes instructing them to disable their respective local clocks, receives acknowledgements that the local clocks have been disabled, waits until a time at which all leases have expired for any nodes removed from the cluster, sets the value of its clock to be greater than a maximum value that could have been provided by the old master node at the time the leases expired and indicates to the other nodes to re-enable their local clocks.
    Type: Application
    Filed: March 22, 2018
    Publication date: September 26, 2019
    Inventors: Miguel CASTRO, Dushyanth NARAYANAN, Aleksandar DRAGOJEVIC, Matthew RENZELMANN, Alexander SHAMIS, Richendra KHANNA, Stanko NOVAKOVIC, Anders GJERDRUM, Georgios CHATZOPOULOS
  • Publication number: 20190294711
    Abstract: In various examples, there is provided methods performed by nodes in a cluster of nodes for performing transactions comprising one or more read operations and/or one or more write operations. The node comprises a local clock which is synchronized with a master clock and maintains a measure of uncertainty indicating current minimum and maximum values of the master clock. The method to perform transactions involving read operations generates a read timestamp representing a point in time which is earlier than a current minimum value of the master clock. The method then reads the objects and determines, for each of them, whether a timestamp associated with that object is later than the read timestamp. If so, an error handling procedure is performed for that object.
    Type: Application
    Filed: March 22, 2018
    Publication date: September 26, 2019
    Inventors: Miguel CASTRO, Dushyanth NARAYANAN, Aleksandar DRAGOJEVIC, Matthew James RENZELMANN, Alexander SHAMIS, Richendra KHANNA, Stanko NOVAKOVIC, Anders GJERDRUM, Georgios CHATZOPOULOS
  • Patent number: 10375167
    Abstract: A “Distributed Storage Controller” applies an RDMA-based memory allocator to implement a distributed thread-safe and lock-free storage system in shared memory distributed across multiple networked computers. The Distributed Storage Controller enables any number of client applications, processes, subroutines, etc., on any number of networked computers to concurrently perform self-directed lock-free allocations, de-allocations, reads, writes, etc., on the shared memory via sequences of one-way RDMA messages (e.g., RDMA reads, RDMA writes, and RDMA atomic compare and swap (CAS) operations) without requiring CPU locks. As such, the CPUs of computing devices hosting the shared memory do not need to be notified of RDMA-based reads, writes or CAS operations on that memory.
    Type: Grant
    Filed: November 20, 2015
    Date of Patent: August 6, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Alexander Shamis, Yutaka Suzue, Knut Magne Risvik
  • Patent number: 9983959
    Abstract: The techniques and/or systems described herein implement erasure coding to generate various chunks for a data collection (e.g., data chunks and at least one encoding chunk). The chunks are then distributed and stored within an individual group (e.g., a pod) of storage units, where a pod of storage units is determined based on characteristics that affect an amount of time it takes to recover a data collection or to restore lost data.
    Type: Grant
    Filed: June 29, 2015
    Date of Patent: May 29, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Robert John Jenkins, Jr., Parikshit S Gopalan, Cheng Huang, Edmund Bernard Nightingale, Alexander Shamis, Sergey Yekhanin
  • Patent number: 9792248
    Abstract: An “RDMA-Based RPC Request System” combines the concepts of RPC and RDMA in a way that can be implemented on commodity networking communications hardware, e.g., RDMA-enabled network interface controllers (NICs) in an Ethernet-based network. In various implementations, the RDMA-Based RPC Request System enables fast lock-free and thread-safe execution of RPC requests between different computers in a network via RDMA-based messages. In other words, the RDMA-Based RPC Request System combines RDMA messaging and RPC requests to enable fast RPC requests via a sequence of RDMA messages transmitted over Ethernet using commodity NICs between networked computers in a data center or other network environment. This RDMA message process is both lock-free and thread-safe.
    Type: Grant
    Filed: June 2, 2015
    Date of Patent: October 17, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Alexander Shamis, Yutaka Suzue
  • Publication number: 20170149890
    Abstract: A “Distributed Storage Controller” applies an RDMA-based memory allocator to implement a distributed thread-safe and lock-free storage system in shared memory distributed across multiple networked computers. The Distributed Storage Controller enables any number of client applications, processes, subroutines, etc., on any number of networked computers to concurrently perform self-directed lock-free allocations, de-allocations, reads, writes, etc., on the shared memory via sequences of one-way RDMA messages (e.g., RDMA reads, RDMA writes, and RDMA atomic compare and swap (CAS) operations) without requiring CPU locks. As such, the CPUs of computing devices hosting the shared memory do not need to be notified of RDMA-based reads, writes or CAS operations on that memory.
    Type: Application
    Filed: November 20, 2015
    Publication date: May 25, 2017
    Inventors: Alexander Shamis, Yutaka Suzue, Knut Magne Risvik
  • Publication number: 20170103039
    Abstract: A “Key-Value Manager” applies an RDMA-based memory allocator to implement a distributed and lock-free B-Tree based key-value store. In various implementations, the Key-Value Manager is implemented as a standalone library running concurrently on large numbers of networked computing devices. The RDMA-based memory allocator of the Key-Value Manager allocates and accesses the memory of the key-value store via various sequences of RDMA messages (e.g., RDMA reads, RDMA writes, and RDMA atomic compare and swap (CAS) operations). As such, CPUs of computing devices hosting the memory of the key-value store do not need to be notified of or involved in RDMA-based reads and writes to that memory. Consequently, CPU utilization for any computing device that hosts any portion of the key-value store is minimal, thereby enabling the Key-Value Manager to scale to very large numbers of concurrent accesses by very large numbers of computing devices.
    Type: Application
    Filed: October 13, 2015
    Publication date: April 13, 2017
    Inventors: Alexander Shamis, Yutaka Suzue
  • Publication number: 20170091246
    Abstract: A distributed graph database that enables scaling and efficient processing is described. The distributed graph database can, for example, scale up to petabytes of data to enable transactional processing of graph data with low latency and low processing overhead. The distributed graph database can include a cluster of devices and a remote direct memory access (RDMA)-based communication layer to perform low latency messaging between devices of the cluster of devices. Additionally, the distributed graph database can include a shared memory layer that provides one or more data structures, a transaction layer to facilitate query processing, and a graph database layer stored in computer-readable media and executed on a processor to implement a graph data model. In at least one example, the graph data model can be mapped to the one or more data structures.
    Type: Application
    Filed: May 13, 2016
    Publication date: March 30, 2017
    Inventors: Knut Magne Risvik, Ming-Chuan Wu, Dushyanth Narayanan, Matthew Renzelmann, Alexander Shamis, Miguel Oom Temudo De Castro, Aleksandar Dragojevic, Chiranjeeb Buragohain, Richendra Khanna, Timothy Tan
  • Publication number: 20170075856
    Abstract: An “RDMA-Based Memory Allocator” applies remote direct memory access (RDMA) messaging to provide fast lock-free memory allocations and de-allocations for shared memory distributed across multiple servers in an RDMA-based network. Alternately, in various implementations, the RDMA-Based Memory Allocator combines RDMA messaging and remote procedure call (RPC) requests to provide fast lock-free memory allocations and de-allocations for shared memory distributed across multiple servers in an RDMA-based network. In either case, any of the networked servers can act as either or both a client for requesting (or releasing) memory allocations and a host for hosting a portion of the distributed memory. Further, any server (including the requesting client) may act as the host for the distributed memory being allocated or de-allocated by any client via RDMA messaging. Advantageously, being lock-free improves overall performance of memory access between networked computers by reducing overall system latency.
    Type: Application
    Filed: September 12, 2015
    Publication date: March 16, 2017
    Inventors: Yutaka Suzue, Alexander Shamis, Knut Magne Risvik