IP Library Granted Patent US 8,135,912
Granted Patent B2
US 8,135,912 · App. 12/467,814 · Granted Mar 13, 2012

System and method of increasing cache size

View Patent ↗
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 8,135,912
App. No.
12/467,814
Granted
Mar 13, 2012
Kind
B2
Abstract

A system and method for increasing cache size is provided. Generally, the system contains a storage device having storage blocks therein and a memory. A processor is also provided, which is configured by the memory to perform the steps of: categorizing storage blocks within the storage device as within a first category of storage blocks if the storage blocks that are available to the system for storing data when needed; categorizing storage blocks within the storage device as within a second category of storage blocks if the storage blocks contain application data therein; and categorizing storage blocks within the storage device as within a third category of storage blocks if the storage blocks are storing cached data and are available for storing application data if no first category of storage blocks are available to the system.

Claims (48)

1. A system for increasing cache size, comprising:

a storage device having storage blocks therein;

a memory; and

a processor, wherein the memory contains an operating system for creating processes for execution by the processor, and wherein the processor is configured by the memory to perform the steps of:

categorizing storage blocks within the storage device within a first category of storage blocks if the storage blocks are available to the system for storing data when needed;

categorizing storage blocks within the storage device within a second category of storage blocks if the storage blocks contain application data therein; and

categorizing storage blocks within the storage device within a third category of storage blocks if the storage blocks are storing cached data and are available for storing application data if no first category of storage blocks are available to the system.

2. The system of claim 1 , wherein the steps of categorizing storage blocks as within the first, second, or third category of storage blocks is provided by adding a data tag having one of the categories to metadata of each storage block.

3. The system of claim 1 , wherein when the system receives a request from an application to save application data, the processor determines if the storage device contains storage blocks categorized as within the first category of storage blocks, and if there are storage blocks categorized as within the first category of storage blocks, the operating system allocates the storage blocks categorized as within the first category of storage blocks for new data storage.

4. The system of claim 3 , wherein if the storage device does not contain storage blocks categorized as within the first category of storage blocks, the memory allocates the storage blocks categorized as within the third category of storage blocks for new data storage.

5. The system of claim 1 , wherein the processor is further configured by the memory to perform the steps of:

parsing a received file system command; and

determining if the file system command is for a deterministic block operation or a non-deterministic block operation.

6. The system of claim 5 , wherein the processor is further configured by the memory to perform the steps of:

looking for a storage block categorized as within the first category of storage blocks if the file system command is for a non-deterministic block allocation;

returning an error message if no storage block categorized as within the first category of storage blocks is located; and

marking a storage block categorized as within the first category of storage blocks as within the third category of storage blocks if a storage block is located that is categorized as within the first category of storage blocks.

7. The system of claim 5 , wherein the processor is further configured by the memory to perform the steps of:

looking for a storage block categorized as within the first category of storage blocks if the file system command is for a deterministic block allocation;

marking a storage block categorized as within the first category of storage blocks as within the second category of storage blocks if a storage block is located that is categorized as within the first category of storage blocks; and

looking for a storage block categorized as within the third category of storage blocks that is currently being used for non-deterministic storage if a storage block categorized as within the first category of storage blocks is not found.

8. The system of claim 7 , wherein the processor is further configured by the memory to perform the steps of:

marking a found storage block categorized as within the third category of storage blocks as within the second category of storage blocks if during looking for a storage block categorized as within the third category of storage blocks a block categorized as within the third category of storage blocks was found; and

returning an error message if no storage block categorized as within the third category of storage blocks was found.

9. The system of claim 5 , wherein the processor is further configured by the memory to perform the steps of:

if the file system command is for non-deterministic block operation, determining whether a storage block is categorized as within the third category of storage blocks;

if the storage block is categorized as within the third category of storage blocks, writing to the storage block categorized as within the third category of storage blocks; and

if the storage block is not categorized as within the third category of storage blocks, returning an error message showing that the storage block categorized as within the third category of storage blocks does not exist.

10. The system of claim 1 , wherein the processor is further configured by the memory to perform the step of releasing a storage block having data from the storage device.

11. The system of claim 10 , wherein the processor is further configured by the memory to perform the steps of: parsing a received file system command; and determining if the file system command is for reliable operation.

12. The system of claim 11 , wherein the processor is further configured by the memory to perform the steps of:

if the command is for non-deterministic block operation, determining if a storage block is categorized as within the third category of storage blocks; and

if the storage block is categorized as within the third category of storage blocks, releasing the storage block categorized as within the third category of storage blocks and marking the released storage block as within the first category of storage blocks.

13. The system of claim 11 , wherein, if the command is for reliable block operation, the processor is further configured by the memory to perform the step of releasing a storage block and marking the released storage block as within the first category of storage blocks.

14. The system of claim 5 , wherein if the file system command is for either a deterministic block operation or a non-deterministic block operation the command is forwarded to a file system within the operating system for performing deterministic or non-deterministic block operation.

15. The system of claim 5 , wherein if the file system command is for a non-deterministic block operation the command is forwarded to a secondary file system for performing non-deterministic block operation.

16. The system of claim 1 , wherein the system presents storage blocks in the first and third categories as free for storing data.

17. A system for increasing cache size, comprising:

a storage device having storage blocks therein;

a memory; and

a processor, wherein the memory contains an operating system for creating processes for execution by the processor, and wherein the processor is configured by the memory to perform the steps of:

categorizing storage blocks within the storage device as “free” storage blocks if the storage blocks are available to the system for storing data when needed;

categorizing storage blocks within the storage device as “used” if the storage blocks contain application data therein; and

categorizing storage blocks within the storage device as “semifree” if the storage blocks are storing cached data and are available for storing application data if no “free” storage blocks are available to the system.

18. A method for increasing cache size, comprising the steps of:

storing data that is not application data; and

overwriting the stored data that is not application data with application data or cached data when the application data or cached data is required to be stored,

wherein the stored data that is not application data is stored in a manner that reflects to a user that storage space used to store the stored data that is not application data is free for storage.

Assignments (6)
CHANGE OF NAME Recorded Jan 24, 2019
From: HOLA NEWCO LTD.
To: WEB SPARK LTD.
Reel/Frame 048119/0240 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2017
From: HOLA NETWORKS LTD.
To: HOLA NEWCO LTD.
Reel/Frame 043977/0335 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAMES PREVIOUSLY RECORDED ON REEL 024938 FRAME 0635. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2011
From: HOLA INC. F/K/A HYPERNET INC.
To: HOLA NETWORKS LTD.
Reel/Frame 025984/0682 →
CHANGE OF NAME Recorded Mar 21, 2011
From: HYPERNET, INC.
To: HOLA INC.
Reel/Frame 025987/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2010
From: SHRIBMAN, DERRY; VILENSKI, OFER
To: HOLA NETWORKS, LTD.
Reel/Frame 024938/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2009
From: SHRIBMAN, DERRY BENJAMIN; VILENSKI, OFER
To: HYPERNET, INC.
Reel/Frame 022821/0051 →