IP Library Patent Application 13101403
Patent Application
App. No. 13/101,403

I/0 COMMAND HANDLING IN BACKUP

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
13/101,403
Abstract

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.

Claims (66)

1 . A method of managing write commands in a storage system, comprising:

receiving a write command;

determining whether or not primary memory has sufficient vacancy to write data relating to said command;

if said primary memory does not have sufficient vacancy, then determining whether or not to limit waiting for vacancy to become sufficient; and

if determined to limit waiting and if said limit has been exceeded then after said limit has been exceeded:

writing data relating to said command to backup memory; and

acknowledging success for said write command after said data has been written to said backup memory.

2 . The method of claim 1 , wherein if determined to limit waiting and if said wait has been exceeded, then further comprising, after said wait has been exceeded, writing data relating to said command to said primary memory.

3 . The method of claim 2 , further comprising:

not increasing a count of occupancy by a number of storage segments occupied by said data written to said primary memory.

4 . The method of claim 2 , further comprising:

reducing a count of occupancy by a number of storage segments relating to previous commands overwritten by said data written to said primary memory.

5 . The method of claim 1 , wherein if determined to limit waiting and if said limit has been exceeded then after said limit has been exceeded further comprising:

if said primary memory includes data relating to a previously received command which is slated to be backed up to a storage segment in said backup memory occupied by data relating to said received command, then preventing said data in primary memory from being backed up to said backup memory.

6 . The method of claim 1 , wherein if determined to limit waiting and if said limit has been exceeded then after said limit has been exceeded further comprising:

if there are too many commands whose limit has been exceeded and whose related data needs to be written to said backup memory, then waiting until there are no longer too many commands before performing said writing.

7 . The method of claim 1 , wherein said determining whether or not said primary memory has sufficient vacancy, includes:

calculating whether or not a sum of a number of storage segments in said primary memory whose content has not been backed up to backup memory and a number of storage segments required to write data relating to said command which needs to be backed up exceeds a predetermined maximum capacity.

8 . The method of claim 1 , wherein said determining whether or not said primary memory has sufficient vacancy, includes:

calculating whether or not a sum of a number of storage segments in said primary memory whose content has not been backed up to backup memory and a number of storage segments required to write said data relating to said command which needs to be backed up excluding segments whose data from any earlier commands is being overwritten exceeds a predetermined maximum capacity.

9 . The method of claim 8 , wherein said primary memory includes volatile memory and said predetermined maximum capacity is at least partly dependent on a limited time interval value during which said primary memory is supplied with power after cessation of external power.

10 . The method of claim 8 , wherein said predetermined maximum capacity is less than the amount of physical memory in said primary memory.

11 . The method of claim 8 , wherein said predetermined maximum capacity equals amount of physical memory in said primary memory.

12 . The method of claim 1 , further comprising:

if said primary memory has sufficient vacancy when said command is received, afterward if waiting was not limited, or afterward but before a time limit has been exceeded if waiting was limited, then:

writing data relating to said command to said primary memory; and

acknowledging success for said write command before backing up data relating to said command in said backup memory.

13 . The method of claim 1 , wherein said determining whether or not to limit waiting includes:

determining a likelihood that a time period for waiting until there is sufficient vacancy, writing data relating to said command, and acknowledging said write command will exceed a timeout allowed for said storage system;

if said likelihood is above a predetermined threshold, then determining to limit waiting; and

else if said likelihood is below a predetermined threshold, then determining not to limit waiting.

14 . The method of claim 1 , wherein if determined to limit waiting and if said wait has been exceeded, then after said wait has been exceeded further comprising:

causing storage segments slated to store data relating to said command to be locked in said backup memory prior to said writing.

15 . The method of claim 14 , wherein said causing includes:

locking storage segments in said primary memory, thereby effectively locking said storage segments in said backup memory.

16 . The method of claim 14 , wherein said causing includes:

independently locking storage segments in said backup memory.

17 . The method of claim 1 , wherein said limit is at least partly dependent on a timeout allowed for said storage system.

18 . A method of managing write commands in a storage system, comprising:

receiving a write command;

determining that primary memory does not currently have sufficient vacancy to write data relating to said received write command;

determining that a likelihood of a time period exceeding a timeout allowed for said storage system, is greater than a predetermined threshold, wherein said time period includes time for waiting until there is sufficient vacancy, writing data relating to said command, and acknowledging said write command;

prioritizing performance of said write command by limiting time that said write command waits for vacancy in said primary memory to become sufficient; and

after said limit has expired, writing data relating to said command to backup memory, and acknowledging said write command.

19 . The method of claim 18 , wherein if a number of write commands with prioritized performance exceeds a maximum, then said related data is written to backup memory only after said limit has expired and said number of write commands with prioritized performance has fallen below said maximum.

20 . A system for managing a write command, comprising:

a host interface for receiving a write command;

an occupancy manager for determining whether or not primary memory has sufficient vacancy to write data relating to said command, and if said primary memory does not have sufficient vacancy, then for determining whether or not to limit waiting for vacancy to become sufficient;

a timer manager for determining if said limit has been exceeded, if determined to limit waiting; and

an interface to backup memory for writing data relating to said command to backup memory, after said limit has been exceeded, if said limit has been exceeded;

wherein said interface to host is also configured to acknowledge success for said write command after said related data has been written to said backup memory.

21 . The system of claim 20 , further comprising:

an interface to primary memory for writing data relating to said command to said primary memory.

22 . The system of claim 20 , further comprising:

a special handling queue manager for queuing said command if there are too many commands whose limit has been exceeded and whose related data needs to be written to said backup memory, until there are no longer too many commands.

23 . The system of claim 20 , further comprising a locker/unlocker module for locking storage segments.

24 . The system of claim 20 , further comprising at least one primary memory storage entity and at least one backup memory storage entity.

25 . The system of claim 24 , wherein the amount of physical memory in said at least one primary memory storage entity equals the amount of physical memory in said at least one backup memory storage entity.

26 . The system of claim 24 , wherein said primary memory storage entity includes volatile memory further comprising: an uninterruptible power supply for powering said primary memory storage entity for a limited time after cessation of external power.

27 . A computer readable medium having a computer readable code embodied therein for managing write commands in a storage system, the computer readable code comprising instructions for:

receiving a write command;

determining whether or not primary memory has sufficient vacancy to write data relating to said command;

if said primary memory does not have sufficient vacancy, then determining whether or not to limit waiting for vacancy to become sufficient; and

if determined to limit waiting and if said limit has been exceeded then after said limit has been exceeded:

writing data relating to said command to backup memory; and

acknowledging success for said write command after said data has been written to said backup memory.

Assignments (2)
SECURITY AGREEMENT Recorded Jul 16, 2015
From: KAMINARIO TECHNOLOGIES LTD
To: SILICON VALLEY BANK
Reel/Frame 036125/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2011
From: KOREN, BENNY; ZILBER, EREZ; FIENBLIT, SHACHAR; KEREN, GUY; ATZMONY, YEDIDIA
To: KAMINARIO TECHNOLOGIES LTD.
Reel/Frame 026485/0934 →