Patents by Inventor Leonid Ravich

Leonid Ravich 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).

  • Patent number: 11899935
    Abstract: A method, computer program product, and computer system for exposing, by a user block layer of a computing device, a storage device as a block device to an application associated with an IO request. A Non-Volatile Memory Express (NVMe) protocol layer of the computing device may expose a NVMe storage device associated with the IO request to the user block layer. A NVMe-over-RDMA layer of the computing device may create a NVMe RDMA queue for the IO request to be processed.
    Type: Grant
    Filed: April 16, 2021
    Date of Patent: February 13, 2024
    Assignee: EMC IP Holding Company, LLC
    Inventors: Alexander Barabash, Eldad Zinger, Leonid Ravich, Or Idgar, Vitaly Zharkov
  • Patent number: 11841808
    Abstract: A method, computer program product, and computing system for associating a plurality of NVMe IO submission queues with an NVMe IO completion queue. An NVMe IO completion queue polling frequency may be defined for a plurality of threads configured to provide one or more IO requests to the plurality of NVMe IO submission queues. The NVMe IO completion queue may be polled based upon, at least in part, the NVMe IO completion queue polling frequency defined for the plurality of threads.
    Type: Grant
    Filed: July 14, 2021
    Date of Patent: December 12, 2023
    Assignee: EMC IP Holding Company, LLC
    Inventors: Eldad Zinger, Leonid Ravich, Elad Grupi
  • Patent number: 11748181
    Abstract: A method, computer program product, and computer system for directing, by a computing device, an incoming Non-Volatile Memory express (NVMe) command to a kernel driver. The kernel driver may enqueue the incoming NVMe command until fetched by a user space. The NVMe command may be fetched from the kernel driver for processing. The NVMe command may be pushed to a user space block device of the user space.
    Type: Grant
    Filed: April 28, 2021
    Date of Patent: September 5, 2023
    Assignee: EMC IP Holding Company, LLC
    Inventors: Eldad Zinger, Leonid Ravich, Ran Anner, Amit Engel, Elad Grupi
  • Patent number: 11662917
    Abstract: Techniques for avoiding race conditions in high availability (HA) storage systems that employ disk array enclosures (DAEs). The techniques include receiving a notification of an input/output (IO) error from a storage node, in which the IO error occurs subsequent to the storage node issuing, to a first DAE controller, an IO operation to access data at a logical address of a storage device. The techniques further include, in response to the notification of the IO error, issuing, over an out-of-band channel, a flush command to the first DAE controller, causing data stored in cache memory of the first DAE controller to be written to the storage device, and receiving, over the out-of-band channel, an acknowledgement of completion of the flush operation from the first DAE controller. The techniques further include sending a notification of the completion of the flush operation to the storage node.
    Type: Grant
    Filed: March 30, 2022
    Date of Patent: May 30, 2023
    Assignee: Dell Products L.P.
    Inventors: Eran Banin, Leonid Ravich, Omer Margolin
  • Publication number: 20230128503
    Abstract: A method, computer program product, and computing system for defining a first flow for one or more processing threads with access to shared data within the storage system. The one or more processing threads may be executed using the first flow. A processing thread reference count may be determined for the one or more processing threads being executed using the first flow. One or more management threads may be executed on the shared data within the storage system based upon, at least in part, the processing thread reference count.
    Type: Application
    Filed: October 27, 2021
    Publication date: April 27, 2023
    Inventors: Vitaly Zharkov, Leonid Ravich, Or Idgar
  • Patent number: 11606437
    Abstract: A method, computer program product, and computer system for using, by a computing device, free central processing unit (CPU) cycles for processing Non-Volatile Memory express Over Fiber (NVMeoF)/Transmission Control Protocol (TCP) sockets. Using the free CPU cycles for processing the NVMeoF/TCP sockets may include exposing a character device with a callback that iterates over the NVMeoF/TCP sockets for processing.
    Type: Grant
    Filed: April 23, 2021
    Date of Patent: March 14, 2023
    Assignee: EMC IP Holding Company, LLC
    Inventors: Eldad Zinger, Leonid Ravich, Ran Anner, Elad Grupi
  • Patent number: 11586569
    Abstract: A method, computer program product, and computing system for assigning a first set of interrupts for exclusive processing by a first set of central processing units (CPU) cores. A second set of interrupts may be assigned for processing by a second set of CPU cores. The first set of interrupts may be processed using the first set of CPU cores. The second set of interrupts may be converted to a set of polling operations, thus defining a set of converted polling operations. The set of converted polling operations may be processed using the second set of CPU cores.
    Type: Grant
    Filed: July 23, 2021
    Date of Patent: February 21, 2023
    Assignee: EMC IP Holding Company, LLC
    Inventors: Leonid Ravich, Eldad Zinger, Amit Engel
  • Publication number: 20230025907
    Abstract: A method, computer program product, and computing system for assigning a first set of interrupts for exclusive processing by a first set of central processing units (CPU) cores. A second set of interrupts may be assigned for processing by a second set of CPU cores. The first set of interrupts may be processed using the first set of CPU cores. The second set of interrupts may be converted to a set of polling operations, thus defining a set of converted polling operations. The set of converted polling operations may be processed using the second set of CPU cores.
    Type: Application
    Filed: July 23, 2021
    Publication date: January 26, 2023
    Inventors: Leonid Ravich, Eldad Zinger, Amit Engel
  • Publication number: 20230013913
    Abstract: A method, computer program product, and computing system for associating a plurality of NVMe IO submission queues with an NVMe IO completion queue. An NVMe IO completion queue polling frequency may be defined for a plurality of threads configured to provide one or more IO requests to the plurality of NVMe IO submission queues. The NVMe IO completion queue may be polled based upon, at least in part, the NVMe IO completion queue polling frequency defined for the plurality of threads.
    Type: Application
    Filed: July 14, 2021
    Publication date: January 19, 2023
    Inventors: Eldad Zinger, Leonid Ravich, Elad Grupi
  • Patent number: 11507441
    Abstract: A method of performing a remotely-initiated procedure on a computing device is provided. The method includes (a) receiving, by memory of the computing device, a request from a remote device via remote direct memory access (RDMA); (b) in response to receiving the request, assigning processing of the request to one core of a plurality of processing cores of the computing device, wherein assigning includes the one core receiving a completion signal from a shared completion queue (Shared CQ) of the computing device, the Shared CQ being shared between the plurality of cores; and (c) in response to assigning, performing, by the one core, a procedure described by the request. An apparatus, system, and computer program product for performing a similar method are also provided.
    Type: Grant
    Filed: January 21, 2021
    Date of Patent: November 22, 2022
    Assignee: EMC IP Holding Company LLC
    Inventors: Leonid Ravich, Yuri Chernyavsky
  • Publication number: 20220350684
    Abstract: A method, computer program product, and computer system for directing, by a computing device, an incoming Non-Volatile Memory express (NVMe) command to a kernel driver. The kernel driver may enqueue the incoming NVMe command until fetched by a user space. The NVMe command may be fetched from the kernel driver for processing. The NVMe command may be pushed to a user space block device of the user space.
    Type: Application
    Filed: April 28, 2021
    Publication date: November 3, 2022
    Inventors: ELDAD ZINGER, Leonid Ravich, Ran Anner, Amit Engel, Elad Grupi
  • Publication number: 20220345538
    Abstract: A method, computer program product, and computer system for using, by a computing device, free central processing unit (CPU) cycles for processing Non-Volatile Memory express Over Fiber (NVMeoF)/Transmission Control Protocol (TCP) sockets. Using the free CPU cycles for processing the NVMeoF/TCP sockets may include exposing a character device with a callback that iterates over the NVMeoF/TCP sockets for processing.
    Type: Application
    Filed: April 23, 2021
    Publication date: October 27, 2022
    Inventors: Eldad Zinger, Leonid Ravich, Ran Anner, Elad Grupi
  • Publication number: 20220334717
    Abstract: A method, computer program product, and computer system for exposing, by a user block layer of a computing device, a storage device as a block device to an application associated with an IO request. A Non-Volatile Memory Express (NVMe) protocol layer of the computing device may expose a NVMe storage device associated with the IO request to the user block layer. A NVMe-over-RDMA layer of the computing device may create a NVMe RDMA queue for the IO request to be processed.
    Type: Application
    Filed: April 16, 2021
    Publication date: October 20, 2022
    Inventors: Alexander Barabash, Eldad Zinger, Leonid Ravich, Or Idgar, Vitaly Zharkov
  • Patent number: 11416441
    Abstract: Techniques for providing an RPC-less locking mechanism based on RDMA CAW for a storage cluster with an active-active architecture. The techniques include, in response to receipt at a storage node of a lock request for accessing an LBA of a storage object, synchronizing, between the storage node and a remote node, a state of a lock for the LBA. The synchronizing of the lock state includes locating an ALS object having a field containing the LBA, updating a field of the ALS object to include the storage node, and setting a field of the ALS object to a type of lock specified in the lock request. If the storage node locates the ALS object in an array maintained within visible memory on the remote node, then the storage node updates/sets corresponding fields of the ALS object by performing atomic CAW operations supported by an RDMA channel between the respective nodes.
    Type: Grant
    Filed: January 11, 2021
    Date of Patent: August 16, 2022
    Assignee: EMC IP Holding Company LLC
    Inventors: Vladimir Shveidel, Leonid Ravich
  • Publication number: 20220229711
    Abstract: A method of performing a remotely-initiated procedure on a computing device is provided. The method includes (a) receiving, by memory of the computing device, a request from a remote device via remote direct memory access (RDMA); (b) in response to receiving the request, assigning processing of the request to one core of a plurality of processing cores of the computing device, wherein assigning includes the one core receiving a completion signal from a shared completion queue (Shared CQ) of the computing device, the Shared CQ being shared between the plurality of cores; and (c) in response to assigning, performing, by the one core, a procedure described by the request. An apparatus, system, and computer program product for performing a similar method are also provided.
    Type: Application
    Filed: January 21, 2021
    Publication date: July 21, 2022
    Inventors: Leonid Ravich, Yuri Chernyavsky
  • Publication number: 20220222201
    Abstract: Techniques for providing an RPC-less locking mechanism based on RDMA CAW for a storage cluster with an active-active architecture. The techniques include, in response to receipt at a storage node of a lock request for accessing an LBA of a storage object, synchronizing, between the storage node and a remote node, a state of a lock for the LBA. The synchronizing of the lock state includes locating an ALS object having a field containing the LBA, updating a field of the ALS object to include the storage node, and setting a field of the ALS object to a type of lock specified in the lock request. If the storage node locates the ALS object in an array maintained within visible memory on the remote node, then the storage node updates/sets corresponding fields of the ALS object by performing atomic CAW operations supported by an RDMA channel between the respective nodes.
    Type: Application
    Filed: January 11, 2021
    Publication date: July 14, 2022
    Inventors: Vladimir Shveidel, Leonid Ravich
  • Publication number: 20210389906
    Abstract: A method, computer program product, and computer system for receiving, by a computing device, a command, wherein the command may include one of a write command and a read command. A completion request for a first portion of the command may be placed in a first queue when the completion request is a first type of completion request. An interrupt operation for the completion request may be executed when the completion request is the first type of completion request. The completion request for a second portion of the command may be placed in a second queue when the completion request is a second type of completion request. A polling operation for the completion request may be executed when the completion request is the second type of completion request.
    Type: Application
    Filed: June 11, 2020
    Publication date: December 16, 2021
    Inventors: ELDAD ZINGER, Leonid Ravich
  • Patent number: 11095698
    Abstract: Techniques for processing messages may include: establishing a plurality of streams between a source system and a target system; reserving one or more streams of the plurality of streams, wherein the one or more streams are reserved and used in transmitting only management messages, wherein the one or more streams includes a first stream of the plurality of streams; transmitting a first management message over the first stream from the source system to the target system; and transmitting a first data message over a second of the plurality of streams, wherein the second stream is not included in the one or more streams reserved for use in transmitting only management messages.
    Type: Grant
    Filed: July 23, 2019
    Date of Patent: August 17, 2021
    Assignee: EMC IP Holding Company LLC
    Inventors: Leonid Ravich, Eyal Ben Ner
  • Patent number: 11093435
    Abstract: A method is disclosed comprising: instantiating, on a first device, a plurality of first connection objects; generating, by the first device, a first set of connection parameters that is associated with the plurality of first connection objects; transmitting the first set of connection parameters from the first device to a second device; receiving from the second device a second set of connection parameters, the second set of connection parameters being associated with a plurality of second connection objects that are instantiated on the second device; updating, by the first device, each of the first connection objects based on the second set of connection parameters; and transmitting, from the first device to the second device, a confirmation that a plurality of communications channels is established.
    Type: Grant
    Filed: October 3, 2019
    Date of Patent: August 17, 2021
    Assignee: EMC IP HOLDING COMPANY LLC
    Inventors: Leonid Ravich, Eldad Zinger
  • Patent number: 11070654
    Abstract: A method is disclosed comprising: instantiating a first plurality of type-1 network sockets on a source computing system, each of the type-1 network sockets having a first queue depth; instantiating a second plurality of type-2 network sockets on the source computing system, each of the type-2 network sockets having a second queue depth that is greater than the first queue depth; transitioning the source computing system into a first state, the first state being one in which data replication messages are transmitted by the source computing system to a target computing system by using both the type-1 and type-2 network sockets; transitioning the source computing system from the first state into a second state, the second state being one in which data replication messages are transmitted by the source computing system to the target computing system by using the type-2 network sockets.
    Type: Grant
    Filed: October 3, 2019
    Date of Patent: July 20, 2021
    Assignee: EMC IP HOLDING COMPANY LLC
    Inventors: Alexander Barabash, Leonid Ravich, Eyal Ben Ner, Xiangping Chen