Patents by Inventor Vitaly Zharkov

Vitaly Zharkov 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: 12223168
    Abstract: Technology is disclosed for QoS (Quality of Service) enforcement with reduced contention. For commands where the QoS wait queue is empty and the QoS credit count is sufficient, an atomic operation subtracts the credits required to process the command from the QoS credit count without locking, and the command is processed. For other commands, credit generation is attempted by first reading a lock flag without obtaining a lock. If the lock flag is clear, an atomic operation sets it, and credit generation is performed if sufficient time has passed since a last credit generation. Credit generation stores a sum of the current QoS credit count and the number of newly generated credits into a local credit count, and processes commands in the QoS wait queue for which sufficient credits exist in the local credit count. When credit generation completes, the local credit count is stored into the QoS credit count.
    Type: Grant
    Filed: July 31, 2023
    Date of Patent: February 11, 2025
    Assignee: Dell Products L.P.
    Inventors: Eldad Zinger, Elad Grupi, Vitaly Zharkov
  • Publication number: 20250044940
    Abstract: Technology is disclosed for QoS (Quality of Service) enforcement with reduced contention. For commands where the QoS wait queue is empty and the QoS credit count is sufficient, an atomic operation subtracts the credits required to process the command from the QoS credit count without locking, and the command is processed. For other commands, credit generation is attempted by first reading a lock flag without obtaining a lock. If the lock flag is clear, an atomic operation sets it, and credit generation is performed if sufficient time has passed since a last credit generation. Credit generation stores a sum of the current QoS credit count and the number of newly generated credits into a local credit count, and processes commands in the QoS wait queue for which sufficient credits exist in the local credit count. When credit generation completes, the local credit count is stored into the QoS credit count.
    Type: Application
    Filed: July 31, 2023
    Publication date: February 6, 2025
    Inventors: Eldad Zinger, Elad Grupi, Vitaly Zharkov
  • Publication number: 20250036286
    Abstract: Deferred memory page allocation commands and non-deferred memory page allocation commands are identified within host I/O commands received by a data storage system. For each one of those received host I/O commands that are identified as a deferred memory page allocation command, QoS (Quality of Service) policy enforcement is performed before any memory pages are allocated by the data storage system to store host data indicated by the received command. Host I/O commands that are identified as deferred memory page allocation commands include read commands, and host I/O commands that are identified as non-deferred memory page allocation commands include in-capsule write commands. For commands identified as deferred memory page allocation commands, enforcing QoS policy before any memory pages are allocated to store host data indicated by the command avoids the possibility of enqueueing the allocated memory pages onto the QoS wait queue, thus conserving data storage system memory resources.
    Type: Application
    Filed: July 27, 2023
    Publication date: January 30, 2025
    Inventors: Eldad Zinger, Vitaly Zharkov, Elad Grupi
  • Patent number: 12197736
    Abstract: A technique of managing the rate of I/O (Input/Output) request processing includes a token-bucket arrangement having first, second, and third token buckets. The first token bucket is provided with sufficient tokens to accommodate an expected baseline level of I/O requests, whereas the second token bucket is provided with sufficient tokens to accommodate an expected excess level of I/O requests during bursts. The third token bucket is provided with tokens at predefined intervals and limits a total amount of bursting available during those intervals.
    Type: Grant
    Filed: January 5, 2023
    Date of Patent: January 14, 2025
    Assignee: Dell Products L.P.
    Inventors: Vitaly Zharkov, Omer Dayan, Eldad Zinger
  • Patent number: 12182408
    Abstract: A method, computer program product, and computing system for dividing a total IO flow rate limit between a plurality of storage nodes of a multi-node storage system. A total desired IO flow rate may be determined. Each storage node of the plurality of storage nodes may be queried for a desired IO flow rate, thus defining a plurality of desired IO flow rates. An updated IO flow rate limit may be defined, for each storage node, an updated IO flow rate limit based upon, at least in part, the total IO flow rate limit and the plurality of desired IO flow rates. One or more IO requests may be processed on the plurality of storage nodes based upon, at least in part, the updated IO flow rate limit defined for each storage node and the total desired IO flow rate.
    Type: Grant
    Filed: April 21, 2022
    Date of Patent: December 31, 2024
    Assignee: EMC IP Holding Company, LLC
    Inventors: Yuval Harduf, Marina Shem Tov, Vitaly Zharkov
  • Publication number: 20240231630
    Abstract: A technique of managing the rate of I/O (Input/Output) request processing includes a token-bucket arrangement having first, second, and third token buckets. The first token bucket is provided with sufficient tokens to accommodate an expected baseline level of I/O requests, whereas the second token bucket is provided with sufficient tokens to accommodate an expected excess level of I/O requests during bursts. The third token bucket is provided with tokens at predefined intervals and limits a total amount of bursting available during those intervals.
    Type: Application
    Filed: January 5, 2023
    Publication date: July 11, 2024
    Inventors: Vitaly Zharkov, Omer Dayan, Eldad Zinger
  • 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
  • Publication number: 20230342036
    Abstract: A method, computer program product, and computing system for dividing a total IO flow rate limit between a plurality of storage nodes of a multi-node storage system. A total desired IO flow rate may be determined. Each storage node of the plurality of storage nodes may be queried for a desired IO flow rate, thus defining a plurality of desired IO flow rates. An updated IO flow rate limit may be defined, for each storage node, an updated IO flow rate limit based upon, at least in part, the total IO flow rate limit and the plurality of desired IO flow rates. One or more IO requests may be processed on the plurality of storage nodes based upon, at least in part, the updated IO flow rate limit defined for each storage node and the total desired IO flow rate.
    Type: Application
    Filed: April 21, 2022
    Publication date: October 26, 2023
    Inventors: YUVAL HARDUF, Marina Shem Tov, Vitaly Zharkov
  • 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
  • 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: 11249800
    Abstract: A method, computer program product, and computing system for determining a block application execution utilization on a central processing unit (CPU) of the computing device. A non-block application execution utilization on the CPU may be determined. A CPU execution release interval and CPU execution release duration for the block application may be generated based upon, at least in part, the block application execution utilization and the non-block application execution utilization.
    Type: Grant
    Filed: October 28, 2019
    Date of Patent: February 15, 2022
    Assignee: EMC IP HOLDING COMPANY, LLC
    Inventors: Lior Kamran, Vitaly Zharkov, Amitai Alkalay
  • Publication number: 20210124609
    Abstract: A method, computer program product, and computing system for determining a block application execution utilization on a central processing unit (CPU) of the computing device. A non-block application execution utilization on the CPU may be determined. A CPU execution release interval and CPU execution release duration for the block application may be generated based upon, at least in part, the block application execution utilization and the non-block application execution utilization.
    Type: Application
    Filed: October 28, 2019
    Publication date: April 29, 2021
    Inventors: Lior Kamran, Vitaly Zharkov, Amitai Alkalay