Patents by Inventor Zvi Schneider

Zvi Schneider 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: 10592166
    Abstract: An aspect of minimizing read amplification IO where metadata is not in RAM includes reading a l_md_page and corresponding lp_md_page from a storage device in a dual distributed layered architecture. The l_md_page specifies a metadata page that persists in a SSD and having logical addresses of metadata, and the lp_md_page associates logical block addresses with corresponding physical locations for the metadata. An aspect further includes reading data for a redundant array of independent disks (RAID) stripe according to an associated physical offset in the lp_md_page, accessing a stripe counter from the lp_md_page, and comparing the stripe counter from the lp_md_page to a stripe counter held in memory. Upon determining the stripe counter from the lp_md_page is the same, an aspect further includes determining the data is valid and reading the data according to associated physical offset in the lp_md_page and while bypassing a data module for the data.
    Type: Grant
    Filed: August 1, 2018
    Date of Patent: March 17, 2020
    Assignee: EMC IP Holding Company LLC
    Inventors: Zvi Schneider, Amitai Alkalay, Assaf Natanzon
  • Publication number: 20200042633
    Abstract: In one aspect, performance optimization for data persistency in asynchronous replication setups includes creating at a source site of a data replication system, a snapshot (snapshot N) of input/output (IO) requests as part of a replication cycle, computing a delta of snapshot N and a previously created snapshot (snapshot N?1), and transmitting the delta to a target site of the data replication storage system. An aspect further includes storing, at the target site, snapshot N?1 during transmission of the delta, and caching the delta to a non-persistent storage device. Upon determining an occurrence of a loss event at the target site, a further aspect includes transmitting, by the target site, a request to retransmit the delta, retransmitting, by the source site, the delta to the target site, caching the delta to the non-persistent storage device until successful transmission of the delta, and committing the transmitted delta to permanent storage.
    Type: Application
    Filed: July 31, 2018
    Publication date: February 6, 2020
    Applicant: EMC IP Holding Company LLC
    Inventors: Zvi Schneider, David Meiri
  • Publication number: 20200042612
    Abstract: An aspect of dynamic physical capacity allocation in an unbalanced content-addressable storage system includes initiating a scale up for a storage cluster. An aspect further includes determining a target number of hash-to-physical-location-on-disk (h2d) slices to be assigned to each data module (D module), and reassigning h2d slices assigned to D modules having greater than the target number of h2d slices to D modules having less h2d slices than the target number.
    Type: Application
    Filed: July 31, 2018
    Publication date: February 6, 2020
    Applicant: EMC IP Holding Company LLC
    Inventors: Svetlana Kronrod, Zvi Schneider, Anton Kucherov
  • Publication number: 20200044826
    Abstract: An aspect for implementing a hash function with content-based salt includes identifying a data block (block b) of a given size, dividing the data block into x number of segments, selecting y number of bytes from each of the segments, totaling y_total bytes, and performing a bitwise and/or on a z number of the y_total bytes. The bitwise and/or operation produces S(b). An aspect further includes calculating a hash function on the data block producing a number of bytes hash. The hash function results in a hash value (H?(b)). An aspect also includes calculating the hash function on a concatenation of the hash value and S(b).
    Type: Application
    Filed: July 31, 2018
    Publication date: February 6, 2020
    Applicant: EMC IP Holding Company LLC
    Inventors: Zvi Schneider, Amitai Alkalay, Lior Kamran
  • Publication number: 20200042478
    Abstract: An aspect of performance improvement for an active-active distributed non-ALUA (asymmetrical logical unit assignment) system with address ownerships includes receiving, by a routing module of a content-addressable storage system, an input/output (IO) request; and determining, by the routing module from a table that provides a listing of addresses and compute nodes having ownership to the address, a target location of the IO request. The target location specifies an address. An aspect also includes determining, by the routing module, a mapping between each of the compute modules and a physical path to corresponding storage controllers, an address owner of a storage controller port of a storage controller that owns the address of the IO; selecting a physical path associated with the address owner; and transmitting, by the routing module, the IO request to the storage controller port via a direct call.
    Type: Application
    Filed: October 15, 2019
    Publication date: February 6, 2020
    Applicant: EMC IP HOLDING COMPANY LLC
    Inventors: Amitai Alkalay, Zvi Schneider, Assaf Natanzon
  • Publication number: 20200042394
    Abstract: A storage system in one embodiment comprises a storage controller and a plurality of storage devices comprising a plurality of memory portions. The storage controller is configured to monitor a plurality of servers for a failure event. The servers store a plurality of copies of the memory portions. The storage controller is further configured to mark as invalid a copy of a memory portion on a failed server, search for and identify a location on an operational server for storing a new version of the copy, and communicate the copy invalidity and the identified location to a client device using the memory portion. The client device is configured to generate the new version of the copy for storage on the operational server, and the storage controller receives a notification from the client device regarding whether the new version of the copy was generated and stored on the operational server.
    Type: Application
    Filed: July 31, 2018
    Publication date: February 6, 2020
    Inventors: Inna Resnik, Zvi Schneider, Dani Shemesh
  • Publication number: 20200042235
    Abstract: An aspect of minimizing read amplification IO where metadata is not in RAM includes reading a l_md_page and corresponding lp_md_page from a storage device in a dual distributed layered architecture. The l_md_page specifies a metadata page that persists in a SSD and having logical addresses of metadata, and the lp_md_page associates logical block addresses with corresponding physical locations for the metadata. An aspect further includes reading data for a redundant array of independent disks (RAID) stripe according to an associated physical offset in the lp_md_page, accessing a stripe counter from the lp_md_page, and comparing the stripe counter from the lp_md_page to a stripe counter held in memory. Upon determining the stripe counter from the lp_md_page is the same, an aspect further includes determining the data is valid and reading the data according to associated physical offset in the lp_md_page and while bypassing a data module for the data.
    Type: Application
    Filed: August 1, 2018
    Publication date: February 6, 2020
    Applicant: EMC IP Holding Company LLC
    Inventors: Zvi Schneider, Amitai Alkalay, Assaf Natanzon
  • Publication number: 20200042254
    Abstract: A storage system comprises a plurality of storage devices and an associated storage controller. The storage controller is configured to receive a request to copy a first range of logical addresses to a second range of logical addresses, determine at least one physical block of the storage devices to which the first range of logical addresses is mapped, map the second range of logical addresses to the determined at least one physical block, and add at least one content-based signature associated with the determined at least one physical block to a pending increment data structure that includes content-based signatures corresponding to physical blocks for which an increment of an associated reference count is pending. The storage controller is further configured to execute a pending increment of a reference count associated with a given physical block corresponding to at least one of the content-based signatures in the pending increment data structure.
    Type: Application
    Filed: July 31, 2018
    Publication date: February 6, 2020
    Inventors: Zvi Schneider, Uri Shabi
  • Publication number: 20200045125
    Abstract: A method for performing host based read cache for storage area networks (SANs) supporting Non-Volatile Memory Express over Fabrics (NVMeF) with validation. The method includes upon a first read operation from a client system of a storage array, receiving metadata with a read response regarding location of data subject to the read operation. The method also includes performing, by the client system, direct NVMeF reads from a namespace offset from the metadata. The direct NVMeF reads bypass a software stack of the storage array. The method further includes upon receiving a data block at the client system, using a signature from the metadata to perform validation on the data.
    Type: Application
    Filed: July 31, 2018
    Publication date: February 6, 2020
    Applicant: EMC IP Holding Company LLC
    Inventors: Boris Glimcher, Zvi Schneider, Amitai Alkalay, Kirill Shoikhet
  • Publication number: 20200034452
    Abstract: An aspect of dual layer deduplication for a file system running over a deduplication block storage system includes accessing a file by a file system driver of the file system. The file is stored as one of a plurality of files in the file system. A further aspect includes breaking the file down into multiple blocks and generating chunks from the blocks. For at least one of the chunks, a trail of zeros is added until a size of a respective one of the chunks is a multiple of a block size of the deduplication block storage system.
    Type: Application
    Filed: July 30, 2018
    Publication date: January 30, 2020
    Applicant: EMC IP Holding Company LLC
    Inventors: Zvi Schneider, Amitai Alkalay, Assaf Natanzon
  • Publication number: 20200034231
    Abstract: In an information processing system including a set of data storage devices for storing data blocks arranged in respective columns on each data storage device and rows across the set of data storage devices to form at least one data stripe, and a set of parity storage devices for storing parity blocks computed via one or more parity operations based on the data blocks of the at least one data stripe, at least one of the data storage devices includes a processing device configured to: receive from the information processing system an instruction to perform at least a portion of a parity operation; perform the portion of the parity operation; and send a result of the performed portion of the parity operation to the information processing system, wherein the result is useable by the information processing system for performing another portion of the parity operation.
    Type: Application
    Filed: July 30, 2018
    Publication date: January 30, 2020
    Inventors: Zvi Schneider, Amitai Alkalay, Assaf Natanzon
  • Publication number: 20200034560
    Abstract: An apparatus, in one example, comprises a storage system configured to perform one or more deduplication operations on encrypted datasets received for a plurality of tenants and store at least a portion of the encrypted datasets, the datasets having been encrypted for respective ones of the plurality of tenants using a common encryption key. The apparatus further comprises a cryptographic module associated with the storage system, the cryptographic module configured to, in response to a request to access an encrypted dataset stored by the storage system corresponding to a given one of the plurality of tenants, further encrypt the encrypted dataset using a tenant encryption key associated with the given one of the plurality of tenants. The storage system is further configured to send the further encrypted dataset to the given one of the plurality of tenants that requested access.
    Type: Application
    Filed: July 30, 2018
    Publication date: January 30, 2020
    Inventors: Assaf Natanzon, Udi Shemer, Zvi Schneider, Amitai Alkalay
  • Publication number: 20200034074
    Abstract: A clustered storage system in one embodiment comprises a plurality of nodes, with each of at least a subset of the nodes comprising a set of processing modules configured to communicate over one or more networks with corresponding sets of processing modules on other ones of the nodes. In conjunction with a failure of a first instance of a process running on a given one of the nodes and a subsequent restart of a second instance of the process, at least one of the processing modules is to identify at least one transfer buffer command of the first instance of the process, to identify a plurality of logically ordered commands of the first instance of the process, and to provide distinct treatment of the transfer buffer command relative to treatment of the logically ordered commands in a manner that ensures that the restart of the second instance of the process is not delayed to await completion of the transfer buffer command or the logically ordered commands.
    Type: Application
    Filed: July 24, 2018
    Publication date: January 30, 2020
    Inventors: Hillel Costeff, Lior Kamran, Zvi Schneider, Anton Kucherov
  • Publication number: 20200034440
    Abstract: An apparatus in one embodiment comprises at least one processing device. The processing device is configured to generate a hash entry of a hash table implementing a key-value store that comprises a plurality of buckets associated with corresponding keys where a given bucket comprises a bucket index having two or more entries for storage of values that hash to a key associated with the given bucket. The processing device is also configured to allocate blocks in non-volatile memory, to split the given bucket into chunks each comprising at least one entry of the bucket index, and to persist the hash table to the non-volatile memory utilizing a direct mapping of the chunks of the given bucket to respective designated block offset positions in the allocated blocks. Persisting the hash table comprises storing first and second chunks of the given bucket in first and second allocated blocks.
    Type: Application
    Filed: July 25, 2018
    Publication date: January 30, 2020
    Inventors: Zvi Schneider, Maor Rahamim, Uri Shabi
  • Publication number: 20200034229
    Abstract: An apparatus comprises at least one processing device comprising a processor coupled to a memory. The processing device is configured to select a stripe column size for stripes of a data storage system, to determine a first compress block size for a first one of the stripes based on compressibility of data to be stored, to select a first prime number for computing parity blocks for the first stripe and a first number of sub-stripes for splitting stripe columns of the first stripe, to generate metadata specifying the first compress block size, the first prime number and the first number of sub-stripes for the first stripe, and to store data compressed using the first compress block size in the first stripe. The first prime number and first number of sub-stripes for the first stripe is different than a second prime number and second number of sub-stripes for a second stripe.
    Type: Application
    Filed: July 25, 2018
    Publication date: January 30, 2020
    Inventors: Zvi Schneider, Marcelo Taube, Lior Kamran, Alex Soukhman, David Krakov
  • Publication number: 20200026459
    Abstract: An apparatus in one embodiment comprises at least one processing device comprising a processor coupled to a memory. The processing device is configured to receive a request to write a given data object to a write buffer of at least one storage system, to allocate an entry in the write buffer, to generate a header for the given data object comprising a first portion indicating a validation status, to write the header to the allocated entry of the write buffer with the first portion of the header comprising a value indicating invalid status, to write the given data object to the allocated entry of the write buffer, and to update the header of the allocated entry by modifying the value of the first portion of the header to indicate valid status responsive to a successful write of the given data object to the allocated entry of the write buffer.
    Type: Application
    Filed: July 18, 2018
    Publication date: January 23, 2020
    Inventors: Yuval Harduf, Zvi Schneider
  • Publication number: 20200026794
    Abstract: In one aspect, data replication processes include setting a minimum snap set creation interval, a maximum snap set creation interval, and a recovery time threshold (RTT). An aspect further includes creating snap sets during a synchronous replication process based on the snap set creation intervals and the RTT. The snap set creation further includes monitoring an amount of data changes since the last snap set creation, monitoring throughput statistics between a source and target system, and estimating an amount of time to replicate the data changes to the target system based on the data changes and throughput statistics. Upon determining the time to replicate the data changes reaches the RTT and the time since the last snap set creation passes the minimum interval, the snap set creation includes creating a next snap set, storing the next snap set at the source, and replicating the next snap set at the target.
    Type: Application
    Filed: July 18, 2018
    Publication date: January 23, 2020
    Applicant: EMC IP Holding Company LLC
    Inventors: Xiangping Chen, Zvi Schneider
  • Publication number: 20200028907
    Abstract: A control module of a clustered storage system in one embodiment is configured to receive a write request for a data block of a page, to retrieve an existing content-based signature for the page, to identify from the existing content-based signature a first one of the data modules currently storing the page, and to compute a content-based signature of the data block. The control module is further configured to send the content-based signature of the data block to the first data module, to receive from the first data module an updated content-based signature for the page computed utilizing the content-based signature of the data block, to identify from the updated content-based signature a second one of the data modules that will store the page as updated to include the data block, and to provide information regarding the data block and the updated content-based signature to the second data module for utilization in storage of the updated page.
    Type: Application
    Filed: July 23, 2018
    Publication date: January 23, 2020
    Inventors: Lior Kamran, Amitai Alkalay, Zvi Schneider, Vladimir Shveidel, Oran Baruch
  • Patent number: 10489321
    Abstract: An aspect of performance improvement for an active-active distributed non-ALUA (asymmetrical logical unit assignment) system with address ownerships includes receiving an input/output (IO) by a host computer; accessing, by the host computer, an address-to-compute module (a?c) table; and determining, from the table, a target location of the IO request. The target location specifies an address. An aspect further includes determining an address owner of a storage controller port of a storage controller that owns the address of the IO, selecting a path associated with the address owner, and transmitting the IO request to the storage controller port.
    Type: Grant
    Filed: July 31, 2018
    Date of Patent: November 26, 2019
    Assignee: EMC IP Holding Company LLC
    Inventors: Amitai Alkalay, Zvi Schneider, Assaf Natanzon
  • Patent number: 10474496
    Abstract: A method is disclosed for dynamic multitasking in a storage system, the storage system including a first storage server configured to execute a first I/O service process and one or more second storage servers, the method comprising: detecting a first event for triggering a context switch; transmitting to each of the second storage servers an instruction to stop transmitting internal I/O requests to the first I/O service process, the instruction including an identifier corresponding to the first I/O service process, the identifier being arranged to distinguish the first I/O service process from other first I/O service processes that are executed by the first storage server concurrently with the first I/O service process; deactivating the first I/O service process by pausing a frontend of the first I/O service process, and pausing one or more I/O providers of the first I/O service process; and executing a first context switch between the first I/O service process and a second process.
    Type: Grant
    Filed: October 17, 2018
    Date of Patent: November 12, 2019
    Assignee: EMC IP Holding Company LLC
    Inventors: Lior Kamran, Amitai Alkalay, Zvi Schneider