IP Library Granted Patent US 8,578,098
Granted Patent B2
US 8,578,098 · App. 13/363,784 · Granted Nov 5, 2013

System and method for 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,578,098
App. No.
13/363,784
Granted
Nov 5, 2013
Kind
B2
Abstract

A system and method for increasing cache size is provided. Generally, the system contains a memory and a processor. The processor is configured by the memory to perform the steps of: categorizing storage blocks within a 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 (43)

1. A system for increasing cache size, comprising:

a memory; and

a processor configured by the memory to perform the steps of:

categorizing storage blocks within a 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 memory; and

a processor configured by the memory to perform the steps of:

categorizing storage blocks within a 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.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2012
From: SHRIBMAN, DERRY; VILENSKI, OFER
To: HOLA NETWORKS LTD.
Reel/Frame 028102/0743 →