Patents by Inventor Ofir Zohar

Ofir Zohar 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: 20060253681
    Abstract: A method for managing multiple logical volumes in a data storage system, including providing physical storage of a given capacity within the data storage system, and adding a logical volume of a given size within the data storage system so as to cause a total amount of logical storage of the logical volumes in the data storage system to be greater than the given capacity of the physical storage. The method includes verifying, in response to a write command to store data in the logical volume, that a physical storage location is available in the physical storage and, if the physical storage location is available, then storing the data at the physical storage location.
    Type: Application
    Filed: November 2, 2005
    Publication date: November 9, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz, Efri Zeidner
  • Publication number: 20060253674
    Abstract: A method for operating a data storage system that responds to IO data requests from one or more hosts, the system including a first and one or more second mass storage devices, each of the devices having respective data stored therein. The method includes defining an unacceptable level of activity, and performing the following steps automatically, without intervention by a human operator. Detecting the unacceptable level of activity on the first mass storage device; in response to detecting the unacceptable level of activity, transferring the data stored in the first mass storage device to the second mass storage devices, while responding to the IO data requests; reformatting the first mass storage device; and, after reformatting the first mass storage device, transferring the data stored in the second mass storage devices to the first mass storage device, while responding to the IO data requests.
    Type: Application
    Filed: May 6, 2005
    Publication date: November 9, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060200456
    Abstract: According to some embodiments of the present invention, one or more parameters of a received data service request may be compared against a lookup table. Based on one or more priority values stored in the lookup table and associated with the one or more request parameters, the data service request may be assigned a priority level.
    Type: Application
    Filed: March 2, 2005
    Publication date: September 7, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060143383
    Abstract: A system, method and circuit for efficiently managing a cache storage device. A cache storage device may include a cache management module. The cache management module may be adapted to generate a management unit and to associate the management unit with new data that is to be written into the cache. The cache management module may be further adapted to assign two or more allocation units for each management unit, to store the new data in the cache. A cache management module may include a management unit module. The management unit module may be adapted to generate management units associated with predefined global cache management functions. The cache management module may further include an allocation unit module in communication with the management unit module. The allocation unit module may be adapted to assign allocation units for storing data written into the cache.
    Type: Application
    Filed: May 6, 2005
    Publication date: June 29, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060143497
    Abstract: Disclosed is a system, method and circuit for mirroring data on a data server. According to some embodiments of the present invention, a primary mirroring module associated with a primary server may be adapted to establish data mirroring connections between the primary server and both a primary slave mirroring module functionally associated with a primary mirror server and with a secondary slave mirroring module functionally associated with a secondary mirror server. When sensing that a mirroring connection with the primary server has been terminated, the primary slave mirroring module may establish a mirroring connection with the second slave mirroring module and may reconcile data between the primary and secondary mirror servers.
    Type: Application
    Filed: December 23, 2004
    Publication date: June 29, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060143395
    Abstract: In accordance with some embodiments of the present invention, there is provided a cache management module for managing a cache memory device, comprising a groups management module adapted to define groups of allocation units in accordance with at least an operative criterion and to create a new group of allocation units whenever it is determined that in accordance with at least the operative criterion none of the one or more existing groups is appropriate to include an allocation unit, and a replacement procedure module adapted to manage the cache in terms of groups of allocation units, rather than in terms of discrete allocation units.
    Type: Application
    Filed: October 4, 2005
    Publication date: June 29, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060129738
    Abstract: A method for data distribution, including distributing logical addresses among an initial set of devices so as provide balanced access, and transferring the data to the devices in accordance with the logical addresses. If a device is added to the initial set, forming an extended set, the logical addresses are redistributed among the extended set so as to cause some logical addresses to be transferred from the devices in the initial set to the additional device. There is substantially no transfer of the logical addresses among the initial set. If a surplus device is removed from the initial set, forming a depleted set, the logical addresses of the surplus device are redistributed among the depleted set. There is substantially no transfer of the logical addresses among the depleted set. In both cases the balanced access is maintained.
    Type: Application
    Filed: February 2, 2006
    Publication date: June 15, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen
  • Publication number: 20060129737
    Abstract: A method for data distribution, including distributing logical addresses among an initial set of devices so as provide balanced access, and transferring the data to the devices in accordance with the logical addresses. If a device is added to the initial set, forming an extended set, the logical addresses are redistributed among the extended set so as to cause some logical addresses to be transferred from the devices in the initial set to the additional device. There is substantially no transfer of the logical addresses among the initial set. If a surplus device is removed from the initial set, forming a depleted set, the logical addresses of the surplus device are redistributed among the depleted set. There is substantially no transfer of the logical addresses among the depleted set. In both cases the balanced access is maintained.
    Type: Application
    Filed: February 2, 2006
    Publication date: June 15, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen
  • Publication number: 20060129783
    Abstract: A method for data distribution, including distributing logical addresses among an initial set of devices so as provide balanced access, and transferring the data to the devices in accordance with the logical addresses. If a device is added to the initial set, forming an extended set, the logical addresses are redistributed among the extended set so as to cause some logical addresses to be transferred from the devices in the initial set to the additional device. There is substantially no transfer of the logical addresses among the initial set. If a surplus device is removed from the initial set, forming a depleted set, the logical addresses of the surplus device are redistributed among the depleted set. There is substantially no transfer of the logical addresses among the depleted set. In both cases the balanced access is maintained.
    Type: Application
    Filed: February 2, 2006
    Publication date: June 15, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen
  • Publication number: 20060112232
    Abstract: Some embodiments of the present invention relate to a method and a circuit for managing the prefetching of data into a cache. According to some embodiments of the present invention a prefects controller may be adapted to trigger a prefetch operation for prefetching one or more data segments into the cache together with at least one segment to be fetched, and may be further adapted to establish a number of data segments to be prefetched together with the at least one segment to be fetched. According to some embodiments of the present invention, the prefetch controller may be adapted to establish what number of segments are to be prefetched at least in accordance with the number of successive segments, including one, already in the cache, which are spaced apart by no more than a predetermined number of segments relative to the at least one segment to be fetched.
    Type: Application
    Filed: December 12, 2005
    Publication date: May 25, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060107097
    Abstract: A method for distributing data over a set of N storage devices. The method includes apportioning the data into groups of (N?2) or fewer blocks, and adding to each group a parity block so as to form a parity set. The method further includes distributing the blocks of each parity set to the N storage devices so that each of the blocks is stored on a different storage device.
    Type: Application
    Filed: March 15, 2005
    Publication date: May 18, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060090036
    Abstract: As part of some embodiments of the present invention, there is provided a method, a circuit and a system for managing data in a cache memory of a mass data storage device and/or system. In accordance with some embodiments of the present invention, a data portion's priority in the cache may be altered. The priority of the data portion may be altered as a function of an access parameter associated with the data portion and a fetch parameter associated with the data portion.
    Type: Application
    Filed: October 27, 2004
    Publication date: April 27, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060090050
    Abstract: A method for managing activity of a data storage system including a primary storage facility and a secondary storage facility. The method includes mirroring a first logical unit in the primary facility on a second logical unit in the secondary facility, and receiving a command to perform a data storage management activity on the first logical unit. The method further includes synchronizing the second logical unit with the first logical unit responsive to the command, and performing the command on the first logical unit and the second logical unit simultaneously following synchronization.
    Type: Application
    Filed: February 15, 2005
    Publication date: April 27, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060031635
    Abstract: According to some embodiments of the present invention, a data storage system may include a plurality of controllers connected or otherwise associated with one or more mass data storage devices. One controller may signal to one or more other controllers an indication as for which data blocks it has received requests. A prefetch decision module on a controller may decide to prefetch some or all of the data blocks associated with a given logical data unit based on data block requests it has received and based on requests received by other controllers. A prefetch decision module on a first controller may signal one or more other controllers to prefetch one or more data blocks associated with a given logical unit and which reside on mass storage devices either connected or otherwise associated with each of the one or more controllers.
    Type: Application
    Filed: October 27, 2004
    Publication date: February 9, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20060031633
    Abstract: Upon receiving a request for one or a set of data blocks associated with a given data segment, a disk cache controller may retrieve into cache the some part of the entire data segment from a disk. Each data segments on a disk may include a fixed number of data blocks, and all data segments may include the same number of data blocks. Data segments may be dynamically defined and their locations and sizes may vary from segment to segment. Data segments may be defined when data is written to the disk, or may be defined at a later point. A table associated with a cache controller may store information as to the physical location or address on a disk of the starting point and/or size of each data segment.
    Type: Application
    Filed: August 9, 2004
    Publication date: February 9, 2006
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20050257082
    Abstract: A method for reading data from a data storage system, consisting of storing a plurality of copies of the data at a respective plurality of data storage units and receiving at a data port an access request submitted by a host to receive the data. The method further includes transmitting from the port, in response to the access request, a plurality of delivery requests for the data to the respective plurality of data storage units, transmitting from the plurality of data storage units to the port respective responses to the delivery requests, the responses including the data, and accepting at the port an earliest-arriving response consisting of the response to the delivery requests arriving first at the port. The data in the earliest-arriving response is forwarded from the port to the host.
    Type: Application
    Filed: April 21, 2004
    Publication date: November 17, 2005
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20050154800
    Abstract: A method for conveying a Small Computer System Interface (SCSI) command from a host to a logical volume, the method consisting of incorporating an indication of an address of the logical volume in the SCSI command so as to generate a modified SCSI command. The method further includes conveying the modified SCSI command from the host to a target device, receiving the modified SCSI command at the target device and recovering the address from the modified SCSI command. In response to the recovered address, the SCSI command is executed at the logical volume.
    Type: Application
    Filed: January 13, 2004
    Publication date: July 14, 2005
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz, Efraim Zeidner
  • Publication number: 20050102554
    Abstract: A method for data mirroring including receiving a sequence of transactions at a first storage node from a host indicating data to be stored by the node, storing the data therein, and delineating a first batch of the transactions. The node returns to the host an acknowledgment of having stored the data, delineates a second batch of the transactions received subsequent to the acknowledgment, and conveys the data to a second storage node. The first node also conveys to the second node a first record of the transactions in the first batch and a second record of the transactions in the second batch, and the data are stored in the second node responsively to the first and second records, so that all data indicated by the transactions in the first batch are stored by the second node prior to storing data indicated by the transactions in the second batch.
    Type: Application
    Filed: November 5, 2003
    Publication date: May 12, 2005
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20050102469
    Abstract: A storage system, consisting of one or more data storage logical units (LUs) formed in physical media. The LUs are adapted to receive commands and responsively to the commands to store and recall data. The storage system further includes a plurality of ports, each port being adapted to maintain a respective LU command queue for each of the LUs, such that upon receiving a command directed to one of the LUs, the port places the received command in the respective LU command queue. The port converts the received command to one or more converted commands at least some of which are directed to the physical media of the one of the LUs. The port then conveys the commands directed to the physical media in an order determined by the respective LU command queue.
    Type: Application
    Filed: November 12, 2003
    Publication date: May 12, 2005
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz
  • Publication number: 20050015546
    Abstract: A method for storing data, consisting of distributing a first plurality of groups of logical addresses among one or more storage devices in a storage system, receiving a second plurality of data-sets containing the data to be stored, and assigning each data-set among the plurality of data-sets a random number chosen from a first plurality of different numbers. The method further consists of partitioning each data-set into multiple partitions, so that each partition among the multiple partitions receives a sequential partition number, assigning each partition within each data-set to be stored at a specific group of logical addresses in the storage system in accordance with the sequential partition number of the partition and the random number assigned to the data-set, and storing each partition in the storage system at the assigned specific group of logical addresses.
    Type: Application
    Filed: March 24, 2004
    Publication date: January 20, 2005
    Inventors: Ofir Zohar, Yaron Revah, Haim Helman, Dror Cohen, Shemer Schwartz