Patents by Inventor Maor Rahamim

Maor Rahamim 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: 20260093537
    Abstract: Techniques can include: maintaining a domain cursor and instance cursors; issuing, by a thread, a resource allocation request; and performing processing to allocate a resource instance, including: determining a domain from which to allocate a resource instance, wherein the domain cursor denotes a domain identifier (ID) identifying the domain, and wherein a first of the instance cursors corresponds to the domain; performing, based on the first instance cursor, unsuccessful attempts to obtain a free resource instance of the domain, wherein the first instance cursor is advanced to a next resource ID of the domain after each of the unsuccessful attempts; determining whether the unsuccessful attempts exceeds a maximum; and responsive to determining that the unsuccessful attempts exceeds the maximum, performing second processing including: placing the thread on a queue associated with one resource instance of the domain, wherein the thread waits on the queue to acquire said one resource instance.
    Type: Application
    Filed: September 30, 2024
    Publication date: April 2, 2026
    Applicant: Dell Products L.P.
    Inventors: Maor Rahamim, Ashok Tamilarasan, Vamsi K. Vankamamidi
  • Patent number: 12517671
    Abstract: Techniques of the present disclosure can include: identifying blocks of storage available for allocation; generating a list denoting an allocation order of storage chunks of the blocks; receiving a write I/O operation that writes data to a first logical address; allocating a storage chunk in accordance with the allocation order of the list, wherein a first block includes the storage chunk and a second storage chunk; storing the first data in the storage chunk of the first block; removing the second storage chunk from the list; and creating a mapping between the first logical address and the first block indicating the second storage chunk is reserved for storing content written to a logical address included in a volume logical address range comprising the first logical address. The allocation order can spread allocation distance between blocks and chunks of the same block to avoid contention during flushes.
    Type: Grant
    Filed: June 3, 2024
    Date of Patent: January 6, 2026
    Assignee: Dell Products L.P.
    Inventors: Alexander Shknevsky, Oran Baruch, Maor Rahamim, Vamsi K. Vankamamidi
  • Patent number: 12511262
    Abstract: Techniques can include: recording, in a log, log entries for write operations writing data pages to logical addresses; and flushing the log entries from the log, wherein flushing includes performing deduplication of the data pages. Flushing can include: partitioning the data pages into i) a first portion of the data pages that are determined to be duplicates of existing data pages, and ii) a second portion of the data pages determined to be unique data pages; atomically incrementing reference counts each corresponding to one of the existing data pages determined as identical to a data page of the first portion; and atomically binding the logical addresses to the data pages, including: binding the first portion of data pages to a corresponding third portion of the logical addresses; and binding the second portion of data pages to a corresponding fourth portion of the logical addresses.
    Type: Grant
    Filed: October 1, 2024
    Date of Patent: December 30, 2025
    Assignee: Dell Products L.P.
    Inventors: Uri Shabi, Maor Rahamim, Amit Zaitman
  • Patent number: 12468458
    Abstract: For a flush request for a first block of user data directly stored into a physical block of non-volatile data storage, allocating a virtual layer block, and storing, in the virtual layer block, a first set of virtual block pointers indicating pages of the first block within the physical block. Pointers to the virtual block pointers in the first set are then stored into a leaf layer of a logical address mapping tree. The virtual layer block is identified for a subsequent flush request issued for a second block of user data directly stored into the physical block, and a second set of virtual block pointers indicating pages of the second block within the physical block is stored in the virtual layer block. Pointers to the virtual block pointers in the second set are stored into a leaf layer node of another logical address mapping tree.
    Type: Grant
    Filed: August 5, 2024
    Date of Patent: November 11, 2025
    Assignee: Dell Products L.P.
    Inventors: Alexander Shknevsky, Vamsi K. Vankamamidi, Oran Baruch, Maor Rahamim, Kurt W. Everson
  • Patent number: 12411620
    Abstract: Techniques for limiting or reducing storage accessibility “hiccups” in active-active clustered systems that perform large writes. The techniques can include executing, by a surviving, failover, or rebooted node of an active-active clustered system, a specialized recovery protocol that includes treating each large write request from a host computer as a plurality of small write requests while execution of the specialized recovery protocol is in progress, draining all dedicated sub-ubers for a primary and secondary node of the active-active clustered system, and, having completed execution of the specialized recovery protocol, resuming normal treatment of large write requests from the host computer.
    Type: Grant
    Filed: June 1, 2023
    Date of Patent: September 9, 2025
    Assignee: Dell Products L.P.
    Inventors: Alexander Shknevsky, Oran Baruch, Maor Rahamim, Vamsi K. Vankamamidi
  • Patent number: 12360917
    Abstract: A method, computer program product, and computing system for generating a plurality of page buffers from a log memory system of the storage system using a persistent memory organization policy. A plurality of physical layer blocks (PLBs) are generated from the log memory system using the persistent memory organization policy. A set of page buffers are allocated from the plurality of page buffers to a first mapping page of a plurality of mapping pages. A PLB is allocated from the plurality of PLBs to a second mapping page of the plurality of mapping pages. One or more IO requests are processed using one or more of the first mapping page and the second mapping page.
    Type: Grant
    Filed: October 17, 2023
    Date of Patent: July 15, 2025
    Assignee: Dell Products L.P.
    Inventors: Oran Baruch, Vamsi Vankamamidi, Maor Rahamim
  • Publication number: 20250123970
    Abstract: A method, computer program product, and computing system for generating a plurality of page buffers from a log memory system of the storage system using a persistent memory organization policy. A plurality of physical layer blocks (PLBs) are generated from the log memory system using the persistent memory organization policy. A set of page buffers are allocated from the plurality of page buffers to a first mapping page of a plurality of mapping pages. A PLB is allocated from the plurality of PLBs to a second mapping page of the plurality of mapping pages. One or more IO requests are processed using one or more of the first mapping page and the second mapping page.
    Type: Application
    Filed: October 17, 2023
    Publication date: April 17, 2025
    Inventors: Oran Baruch, Vamsi Vankamamidi, Maor Rahamim
  • Publication number: 20240402917
    Abstract: Techniques for limiting or reducing storage accessibility “hiccups” in active-active clustered systems that perform large writes. The techniques can include executing, by a surviving, failover, or rebooted node of an active-active clustered system, a specialized recovery protocol that includes treating each large write request from a host computer as a plurality of small write requests while execution of the specialized recovery protocol is in progress, draining all dedicated sub-ubers for a primary and secondary node of the active-active clustered system, and, having completed execution of the specialized recovery protocol, resuming normal treatment of large write requests from the host computer.
    Type: Application
    Filed: June 1, 2023
    Publication date: December 5, 2024
    Inventors: Alexander Shknevsky, Oran Baruch, Maor Rahamim, Vamsi K. Vankamamidi
  • Publication number: 20240319925
    Abstract: Techniques of the present disclosure can include: identifying blocks of storage available for allocation; generating a list denoting an allocation order of storage chunks of the blocks; receiving a write I/O operation that writes data to a first logical address; allocating a storage chunk in accordance with the allocation order of the list, wherein a first block includes the storage chunk and a second storage chunk; storing the first data in the storage chunk of the first block; removing the second storage chunk from the list; and creating a mapping between the first logical address and the first block indicating the second storage chunk is reserved for storing content written to a logical address included in a volume logical address range comprising the first logical address. The allocation order can spread allocation distance between blocks and chunks of the same block to avoid contention during flushes.
    Type: Application
    Filed: June 3, 2024
    Publication date: September 26, 2024
    Applicant: Dell Products L.P.
    Inventors: Alexander Shknevsky, Oran Baruch, Maor Rahamim, Vamsi K. Vankamamidi
  • Patent number: 12045517
    Abstract: Techniques of the present disclosure can include: identifying blocks of storage available for allocation; generating a list denoting an allocation order of storage chunks of the blocks; receiving a write I/O operation that writes data to a first logical address; allocating a storage chunk in accordance with the allocation order of the list, wherein a first block includes the storage chunk and a second storage chunk; storing the first data in the storage chunk of the first block; removing the second storage chunk from the list; and creating a mapping between the first logical address and the first block indicating the second storage chunk is reserved for storing content written to a logical address included in a volume logical address range comprising the first logical address. The allocation order can spread allocation distance between blocks and chunks of the same block to avoid contention during flushes.
    Type: Grant
    Filed: January 6, 2023
    Date of Patent: July 23, 2024
    Assignee: Dell Products L.P.
    Inventors: Alexander Shknevsky, Oran Baruch, Maor Rahamim, Vamsi K. Vankamamidi
  • Publication number: 20240241675
    Abstract: Techniques of the present disclosure can include: identifying blocks of storage available for allocation; generating a list denoting an allocation order of storage chunks of the blocks; receiving a write I/O operation that writes data to a first logical address; allocating a storage chunk in accordance with the allocation order of the list, wherein a first block includes the storage chunk and a second storage chunk; storing the first data in the storage chunk of the first block; removing the second storage chunk from the list; and creating a mapping between the first logical address and the first block indicating the second storage chunk is reserved for storing content written to a logical address included in a volume logical address range comprising the first logical address. The allocation order can spread allocation distance between blocks and chunks of the same block to avoid contention during flushes.
    Type: Application
    Filed: January 6, 2023
    Publication date: July 18, 2024
    Applicant: Dell Products L.P.
    Inventors: Alexander Shknevsky, Oran Baruch, Maor Rahamim, Vamsi K. Vankamamidi
  • Patent number: 11720484
    Abstract: A method, computer program product, and computer system for identifying, by a computing device, content in a first bucket in a first cache. It may be determined that a first portion of the content in the first bucket is a duplicate, wherein a second portion of the content in the first bucket may be unique. The first portion of the content in the first bucket may be deduplicated from the first cache. The second portion of the content may be stored in a second bucket in a second cache.
    Type: Grant
    Filed: July 28, 2020
    Date of Patent: August 8, 2023
    Assignee: EMC IP Holding Company, LLC
    Inventors: Bar Harel, Maor Rahamim, Uri Shabi
  • Patent number: 11669570
    Abstract: An aspect of implementing amortized execution of updates for a hash table includes aggregating, within a data structure, updates to be executed for the hash table. The aggregated updates are distributed across a plurality of chunks in the data structure. An aspect also includes sorting, within each of the chunks, the updates according to respective bucket index values associated with the updates, and iteratively executing the sorted updates across each of the chunks in the data structure.
    Type: Grant
    Filed: October 31, 2019
    Date of Patent: June 6, 2023
    Inventors: Bar Harel, Uri Shabi, Maor Rahamim
  • Patent number: 11663080
    Abstract: Techniques for rebuilding data in a data storage system are provided. A method includes: (a) identifying (i) a first set of degraded Ubers that contain no portions reserved for direct writing and (ii) a second set of degraded Ubers that contain at least one portion reserved for direct writing. Direct writing is a process that writes blocks to long-term storage prior to mapping those blocks in a metadata mapping structure. An Uber is a set of adjacent stripes across a respective Redundant Array of Independent Disks (RAID) array of the data storage system, and a degraded Uber is an Uber that includes at least one failed drive within its RAID array. The method further includes (b) initiating a rebuild of the first set of degraded Ubers; and (c) delaying a rebuild of each degraded Uber of the second set until all pending direct writes to blocks of that degraded Uber have been mapped by the metadata mapping structure.
    Type: Grant
    Filed: January 20, 2022
    Date of Patent: May 30, 2023
    Assignee: Dell Products L.P.
    Inventors: Alexander Shknevsky, Oran Baruch, Vamsi K. Vankamamidi, David Ben-David, Maor Rahamim
  • Patent number: 11438415
    Abstract: An aspect includes splitting a table of buckets into a fixed number of domains. Each of the domains includes a corresponding subset of the buckets. An aspect also includes providing a spare bucket for each of the subsets of the buckets and providing a metadata structure for each of the domains. The metadata structure includes a head pointer that points to a first bucket of a corresponding subset of the buckets and a spare_bucket pointer that points to the spare bucket of the subset of the buckets. An aspect further includes providing a split-spare bucket pointer that interleaves, during updates to data, among the subset of buckets in the domain. Data subject to the updates is stored in the spare bucket for a corresponding one of the domains. An aspect also includes updating the head pointer and the spare_bucket pointer for corresponding domains in response to updating the data.
    Type: Grant
    Filed: October 30, 2019
    Date of Patent: September 6, 2022
    Assignee: EMC IP Holding Company LLC
    Inventors: Bar Harel, Uri Shabi, Maor Rahamim
  • Patent number: 11243930
    Abstract: A method, computer program product, and computer system for storing data in a bucket of a plurality of buckets. A spare bucket may be reserved in the plurality of buckets. A copy of the data may be stored in the spare bucket. A pointer to the data in the bucket and a pointer to the copy of the data in the spare bucket may be updated based upon, at least in part, storing the data in the bucket and storing the copy of the data in the spare bucket.
    Type: Grant
    Filed: July 31, 2019
    Date of Patent: February 8, 2022
    Assignee: EMC IP HOLDING COMPANY, LLC
    Inventors: Bar Harel, Uri Shabi, Maor Rahamim
  • Publication number: 20220035734
    Abstract: A method, computer program product, and computer system for identifying, by a computing device, content in a first bucket in a first cache. It may be determined that a first portion of the content in the first bucket is a duplicate, wherein a second portion of the content in the first bucket may be unique. The first portion of the content in the first bucket may be deduplicated from the first cache. The second portion of the content may be stored in a second bucket in a second cache.
    Type: Application
    Filed: July 28, 2020
    Publication date: February 3, 2022
    Inventors: Bar Harel, Maor Rahamim, Uri Shabi
  • Patent number: 11237743
    Abstract: A method of performing deduplication is provided. The method includes (a) selecting, by applying a deterministic selection criterion, a sub-block of a block of data that contains multiple sub-blocks; (b) performing a lookup, into a deduplication table, of a digest generated by hashing the selected sub-block, the lookup matching an entry indexed by the digest in the deduplication table, the entry identifying a previously processed block; and (c) effecting storage of the block, including pointing to the previously processed block. An apparatus, system, and computer program product for performing a similar method are also provided.
    Type: Grant
    Filed: April 29, 2019
    Date of Patent: February 1, 2022
    Assignee: EMC IP Holding Company LLC
    Inventors: Uri Shabi, Vladimir Shveidel, Maor Rahamim, Ronen Gazit
  • Publication number: 20210136149
    Abstract: An aspect includes splitting a table of buckets into a fixed number of domains. Each of the domains includes a corresponding subset of the buckets. An aspect also includes providing a spare bucket for each of the subsets of the buckets and providing a metadata structure for each of the domains. The metadata structure includes a head pointer that points to a first bucket of a corresponding subset of the buckets and a spare_bucket pointer that points to the spare bucket of the subset of the buckets. An aspect further includes providing a split-spare bucket pointer that interleaves, during updates to data, among the subset of buckets in the domain. Data subject to the updates is stored in the spare bucket for a corresponding one of the domains. An aspect also includes updating the head pointer and the spare_bucket pointer for corresponding domains in response to updating the data.
    Type: Application
    Filed: October 30, 2019
    Publication date: May 6, 2021
    Applicant: EMC IP Holding Company LLC
    Inventors: Bar Harel, Uri Shabi, Maor Rahamim
  • Publication number: 20210133244
    Abstract: An aspect of implementing amortized execution of updates for a hash table includes aggregating, within a data structure, updates to be executed for the hash table. The aggregated updates are distributed across a plurality of chunks in the data structure. An aspect also includes sorting, within each of the chunks, the updates according to respective bucket index values associated with the updates, and iteratively executing the sorted updates across each of the chunks in the data structure.
    Type: Application
    Filed: October 31, 2019
    Publication date: May 6, 2021
    Applicant: EMC IP Holding Company LLC
    Inventors: Bar Harel, Uri Shabi, Maor Rahamim