KAMINARIO TECHNOLOGIES LTD. Patent applications |
Patent application number | Title | Published |
20160110388 | DEDUPLICATION IN A STORAGE SYSTEM - A IO handler receives a write command including write data that is associated with a LBA. The IO handler reserves a deduplication ID according to the LBA with which the write data is associated, within the scope of each LBA, each deduplication ID is unique. The IO handler computes a hash value for the write data. In case a deduplication database does not include an entry which is associated with the hash value, the IO handler: provides a reference key which is a combination of the LBA and the deduplication ID; adds to the deduplication database an entry which is uniquely associated with the hash value and references the reference key; and adds to a virtual address database an entry, including: the reference key; a reference indicator indicating if there is an entry that is associated with the present entry; and a pointer to where the write data is stored. | 04-21-2016 |
20150254008 | RAID RANDOM DISTRIBUTION SCHEME - There is provided a computerized method, computerized system, a non-transitory program storage device and a computer program product for enabling allocation of segments in a RAID stripe to respective storage devices in a corresponding RAID group. A randomized distribution scheme is generated for randomly distributing the data segments and syndrome segments in a RAID stripe to respective storage devices in the RAID group. The randomized distribution scheme is used for distributing the segments in the at least one RAID stripe to the storage devices in the RAID group, such that any two failed storage devices in the RAID group would have the same first probability (P) for being protected by the same type-1 syndrome segment and the same second probability (1-P) for each one of the two failed storage devices being protected by a different type-1 syndrome segment, irrespective of the relative location of the two failed storage devices. | 09-10-2015 |
20140280670 | MANAGEMENT MODULE FOR STORAGE DEVICE - The present invention discloses a management module for a storage device. The management module comprises a primary server and a secondary server. Each server comprises a network port configured to interface the server and a telecommunication network and a virtual bridge configured to selectively enable or disable data transfer to and from the network port. The virtual bridges of the primary and secondary servers are linked for enabling data transfer between said virtual bridges, the virtual bridge of the primary server is configured to disable data transfer while the virtual bridge of the secondary server is configured to enable data transfer and the virtual bridge of the primary server is further configured to maintain an IP address of the management module. | 09-18-2014 |
20140208022 | RAID ERASURE CODE APPLIED TO PARTITIONED STRIPE - The disclosure presents examples of a RAID storage system, method and computer program product where a stripe is logically partitioned into two or more sub-stripes and at least one RAID erasure code is applied to each sub-stripe independently of any other of the sub-stripe(s). Consequently, in some of these examples, a larger packet size may be used than if the stripe had not been partitioned. A larger packet size may in some cases allow for accelerated encoding and/or decoding. | 07-24-2014 |
20140201429 | SSD-BLOCK ALIGNED WRITES - An SSD, comprising a mapping module and a controller, mapping module is capable of mapping a plurality of SSD-block aligned groups, each comprises a specific sequence of LBAs, to SSD blocks. The controller is capable of determining whether a LBA referenced in an incoming write request is a first LBA in a respective group, and if so, the controller is capable of: opening an ongoing SSD-block aligned write session; assigning a SSD block to the session; and recording in the session's data an indication of which LBA is associated with the write data that was saved to the SSD. In case the LBA referenced in the incoming write request is not the first LBA in the respective group, but is a successor of a latest-saved LBA of the group, storing the write data in sequence with a latest used segment of the SSD-block that was assigned to the group. | 07-17-2014 |
20140143213 | DEDUPLICATION IN A STORAGE SYSTEM - A IO handler receives a write command including write data that is associated with a LBA. The IO handler reserves a deduplication ID according to the LBA with which the write data is associated, within the scope of each LBA, each deduplication ID is unique. The IO handler computes a hash value for the write data. In case a deduplication database does not include an entry which is associated with the hash value, the IO handler: provides a reference key which is a combination of the LBA and the deduplication ID; adds to the deduplication database an entry which is uniquely associated with the hash value and references the reference key; and adds to a virtual address database an entry, including: the reference key; a reference indicator indicating if there is an entry that is associated with the present entry; and a pointer to where the write data is stored. | 05-22-2014 |
20130246660 | IMPLEMENTING A LOGICAL UNIT RESET COMMAND IN A DISTRIBUTED STORAGE SYSTEM - A method of implementing a logical unit reset across a plurality of interfaces in a distributed storage system, comprising: initiating a session for implementing the logical unit reset across the plurality of interfaces in response to receiving at a central controller a logical unit reset command from an originator interface, and writing session-data including an indication that the originator interface implemented the respective logical unit reset locally; communicating a logical unit reset command from the central controller to each interface other than the originator interface; updating the session data in response to receiving an indication from an interface that the logical unit was successfully reset locally and when each one of the plurality of interfaces implemented the logical unit reset locally, communicating a success response to each one of the plurality of interfaces. | 09-19-2013 |
20130205108 | MANAGING RESERVATION-CONTROL IN A STORAGE SYSTEM - A method of managing reservation-control in a storage system that consists of a plurality of interfaces and a common storage resource, the method comprising responsive to receiving at an originator interface a reservation command related to the common storage resource, implementing a multi-phase reservation synchronization protocol including a lock phase consisting of locking the resource on a central controlling process, backing up respective lock phase data on a backup control process, and issuing a lock phase completion indication; an execution phase consisting of executing locally on each one of the plurality of interfaces a reservation operation, and issuing an execute phase completion indication; and an unlock phase consisting of unlocking the resource on the central controlling process; backing up respective unlock phase data on a backup control process, and issuing an unlock phase completion indication. | 08-08-2013 |
20130191565 | MODIFIED I/OS AMONG STORAGE SYSTEM LAYERS - A method of managing I/Os in a storage system between a first storage layer and a second layer which is a logical abstraction over the first storage layer, comprising of maintaining within the first storage layer of the storage system validity status data indicating a validity status of each one of a plurality of first layer storage segments, in response to a write command that includes payload data which relates to part of an invalid segment providing the second layer with an unaligned write to an invalid segment indication, and in response to receiving the indication at the second layer, providing a modified write command for the invalid segment including initial values combined with the payload data. | 07-25-2013 |
20130100808 | Managing Utilization Of A Logical Communication Path In A Multi-Path Channel - A method of managing utilization of a logical communication path in a multi-path channel consisting of a plurality of logical communication paths overlying a plurality of physical connections connecting a first and a second node, including: for a non-ordered communication stream implementing a load-balancing communication mode to distributedly communicate messages of the non-ordered communication stream over the plurality of logical paths; and for an ordered communication stream implementing a designated logical path mode including designating a logical path of the multiple-path channel for communicating thereover messages of the ordered communication stream. | 04-25-2013 |
20130080672 | SYSTEM, METHOD AND COMPUTER PROGRAM PRODUCT FOR ACCESS CONTROL - An access control system for controlling access to a resources group including multiple computer accessible resources, the system including: a lock, configured to selectively deny a request of a process to access the resource when the resource is locked; and a global lock, configured to grant to the process exclusive access to add a pending-task entry into a resource-associated data structure associated with the resource; wherein the global lock has to be acquired by any process whose request to access any resource of the resources group for performing of any task was denied, in order for access thereto for performing the respective task to be granted; wherein the lock is further configured to selectively grant, following the adding of the pending task-entry into the resource-associated data structure, exclusive access to the resource for performing a task associated with the pending task entry upon a releasing of the resource associated lock. | 03-28-2013 |
20130024618 | LOG STRUCTURE ARRAY - A storage system, comprising: (a) a primary storage entity utilized for persistently storing an entire data-set; (b) a secondary storage entity; and (c) a secondary storage controller (“SSC”) responsive to a destage stream pending to be written to the second storage entity for identifying a succession of physical locations on the secondary storage entity formed by non-protected locations in an extent that is sufficient to accommodate the destage stream and one or more intervening protected locations between two or more of the non-protected locations; wherein said SSC is adapted to retrieve from said primary storage entity protected data associated with the intervening protected location(s), pad the stream of data with the protected data and write the padded stream of data to said secondary storage entity as a single successive write sequence over said succession of physical locations. | 01-24-2013 |
20120265926 | MANAGING A SOLID-STATE STORAGE DEVICE - A method, comprising: during a normal operating mode of a first solid-state storage device, reserving a portion of an available physical storage space of the first solid-state storage device, giving rise to a reserved portion and a user data portion; setting a user data capacity of the first solid-state storage device according to a size of the user data portion; using substantially the entire available physical storage space for storing user data within the first solid-state storage device; and upon receiving at the first solid-state storage device an instruction to switch to a data protection mode, switching the first solid-state storage device to the data protection mode and allocating part of the reserved portion to the user data portion, giving rise to an extended user data portion, and using the added user data capacity for backing up data that is or was stored on the second solid-state storage device. | 10-18-2012 |
20120233397 | SYSTEM AND METHOD FOR STORAGE UNIT BUILDING WHILE CATERING TO I/O OPERATIONS - Provided is a method for copying data as stored in at least one source storage entity, including copying data from a source storage entity into a destination storage entity and catering to at least one I/O operation directed toward the source storage entity during copying, the copying including reading at least one chunk of data in a predetermined order; and reading, responsive to a request, at least one relevant chunk containing data related to at least one I/O operation out of the predetermined order. | 09-13-2012 |
20120110291 | SYSTEM AND METHOD FOR I/O COMMAND MANAGEMENT - Systems and methods for input/output command management. In embodiments of the invention an input/output command fully executes after a lock has been obtained for the command on all storage segments relating to the command, in a predetermined order. Some embodiments of the invention allow overlapping access to storage and/or to individual storage segments by a plurality of input/output commands. In some embodiments of the invention, prioritization of commands is facilitated through the usage of a sharing policy and/or wakeup policy. | 05-03-2012 |
20120102242 | CONTROLLING DATA DESTAGING WITHIN A MULTI-TIERED STORAGE SYSTEM - There is provided according to an example of the claimed subject matter, a system and a method for managing access to a shared storage entity. According to an example of the claimed subject matter, a system for managing access to a shared storage entity can include two or more initiator entities, two or more local sequencing agents and an arbitration module. Each of the two or more local sequencing agents can be associated with a respective one of two or more initiator entities which generate I/O requests for accessing the shared storage entity. Each local sequencing agent can be adapted to locally sequence its respective initiator entity's I/O requests. The arbitration module can be adapted to manage an access cycle to the shared storage entity by allocating to each one of the plurality of initiator entities a monolithic/continuous chunk of the access cycle to implement its own I/O access sequence, wherein chunk allocation is determined according to subframe allocation criteria related to the functional characteristics of each of the initiator entities. | 04-26-2012 |
20120030415 | MASS-STORAGE SYSTEM UTILIZING AUXILIARY SOLID-STATE STORAGE SUBSYSTEM - A mass storage system including main and auxiliary storage subsystems and a controller Main storage provides physical storage space and includes non-solid-state storage devices (“NSSDs”) NSSDs provide physical locations, and main storage includes physical storage locations provided by NSSDs Controller is coupled to main storage and may be configured for mapping logical addresses to physical locations, giving rise to a logical storage space The auxiliary subsystem includes a solid-state data retention device (“SSDRD”) capable of permanently storing data and provides a physical location, giving rise to auxiliary space Controller is coupled to the auxiliary subsystem and may override a mapping of logical addresses to physical locations, with a mapping of logical address to physical locations within the auxiliary space, overriding physical storage locations Controller is adapted for loading a snapshot of the data currently stored in the overridden physical storage locations. | 02-02-2012 |
20110276831 | Utilizing Input/Output Paths For Failure Detection And Analysis - Systems and methods for failure monitoring in a storage system. In some cases, a failed entity is detected based on an analysis of at least the indications obtained in return for input/output commands sent to multiple entities in the storage system. In some of these cases, it is also determined whether the failure is enduring or transient. | 11-10-2011 |
20110276768 | I/0 COMMAND HANDLING IN BACKUP - Systems and methods for input/output command management. In some cases of a write command received from a host, a maximum capacity limit relating to primary memory may be disregarded because data relating to the write command is written to backup memory prior to acknowledging the write command. In some of these cases, timeout is less likely than if the maximum capacity limit had been respected. | 11-10-2011 |
20110252201 | SMART FLUSHING OF DATA TO BACKUP STORAGE - A storage system, including: (a) a primary storage entity utilized for storing a data-set of the storage system; (b) a secondary storage entity utilized for backing-up the data within the primary storage entity; (c) a flushing management module adapted to identify within the primary storage entity two groups of dirty data blocks, each group is comprised of dirty data blocks which are arranged within the secondary storage entity in a successive sequence, and to further identify within the primary storage entity a further group of backed-up data blocks which are arranged within the secondary storage entity in a successive sequence intermediately in-between the two identified groups of dirty data blocks; and (d) said flushing management module is adapted to combine the group of backed-up data blocks together with the two identified groups of dirty data blocks to form a successive extended flush sequence and to destage it to the secondary storage entity. | 10-13-2011 |
20110202792 | System and Methods for RAID Writing and Asynchronous Parity Computation - A computer storage management system for managing a first plurality of data storage units, the system including: (a) an asynchronous parity computation manager which, responsive to a write operation in which an incoming data portion is to be written into an individual storage unit from among the storage units, deposits the incoming value in the individual storage unit an stores a copy of the data element in a pre-parity storage area, and wherein asynchronously with depositing the incoming value in the individual storage unit, the asynchronous parity computation manager is operative to compute parity data corresponding to the incoming data portion and to other data portions which are associated with the incoming data portion and to store the parity data; and (b) a post-loss data recovery manager operative to recover lost data including determining whether at least one parity value associated with at least one data portion within said lost data is not current and, for at least one non-current parity, using information stored in the pre-parity storage area to generate, after said lost data has been lost, a current parity to replace said non-current parity and using said current parity to recover said lost data. | 08-18-2011 |