Reconfigurable caching
AssigneeHossein Asadi
InventorsHossein Asadi, Reza Salkhordehhaghighi, Shahriyar Ebrahimi
Life of this patent
Estimating the term…
Abstract
A method for reconfigurable caching is disclosed. The method includes receiving a workload including a plurality of requests, classifying a first request of the plurality of requests in a first class, classifying the workload in a second class based on the first class, assigning a priority to the first request based on the first class and the second class, and storing the first request in a cache memory including a plurality of blocks responsive to the first request satisfying a caching condition, the cache memory satisfying a validation condition, and the priority satisfying a priority condition.
Claims20
A method for reconfigurable caching, the method comprising:
- receiving a workload comprising a plurality of requests;
- classifying a first request of the plurality of requests in a first class;
- classifying the workload in a second class based on the first class;
- assigning a priority to the first request based on the first class and the second class;
- and
- storing the first request in a cache memory comprising a plurality of blocks responsive to:
- the first request satisfying a caching condition;
- the cache memory satisfying a validation condition;
- and
- the priority satisfying a priority condition.
A system for reconfigurable caching, the system comprising:
- a memory having processor-readable instructions stored therein;
- and
- a processor configured to access the memory and execute the processor-readable instructions, which, when executed by the processor configures the processor to perform a method, the method comprising:
- receiving a workload comprising a plurality of requests from a filesystem;
- classifying a first request of a plurality of requests in a random class;
- arranging the plurality of requests in a request queue;
- selecting the first request from the request queue, the first request associated with a first plurality of addresses, each of the first plurality of addresses being an integer number;
- selecting a second request of the plurality of requests from the request queue, the second request associated with a second plurality of addresses, each of the second plurality of addresses being an integer number;
- classifying the first request in a strided class responsive to a smallest address of the first plurality of addresses being larger than a largest address of the second plurality of addresses by a gap value, the gap value being smaller than a gap threshold;
- classifying the first request in a sequential class responsive to the smallest address of the first plurality of addresses being larger than the largest address of the second plurality of addresses by 1;
- classifying the first request in an overlapped class responsive to a first portion of the first plurality of addresses being the same as a second portion of the second plurality of addresses
- classifying the workload in a random consumer class responsive to more than 60 percent of the plurality of requests read from a memory unit and more than 70 percent of the plurality of requests classified in the random class;
- classifying the workload in a sequential producer-consumer class responsive to 40 percent to 60 percent of the plurality of requests read from the memory unit and more than 50 percent of the plurality of requests classified in the sequential class;
- classifying the workload in a random producer-consumer class responsive to 40 percent to 80 percent of the plurality of requests read from the memory unit and more than 60 percent of the plurality of requests classified in the random class;
- classifying the workload in an archival consumer class responsive to more than 80 percent of the plurality of requests read from the memory unit and more than 70 percent of the plurality of requests classified in the sequential class;
- classifying the workload in a large file generator class responsive to more than 90 percent of the plurality of requests written on the memory unit and more than 60 percent of the plurality of requests classified in the sequential class;
- assigning a priority to the first request based on the classified first request and the classified workload;
- and
- storing the first request in a cache memory comprising a plurality of blocks responsive to:
- the first request not stored in the cache memory;
- all of the plurality of blocks being valid;
- and
- the priority of the first request being larger than a smallest block priority of a plurality of block priorities, each of the plurality of block priorities assigned to a block of the plurality of blocks.
A reconfigurable caching architecture, comprising:
- a file system;
- a mapping unit configured to receive a workload comprising a plurality of requests from the file system;
- an analyzing unit coupled to the mapping unit, the analyzing unit configured to classify a first request of the plurality of requests in a first class;
- a reconfiguration unit coupled to the analyzing unit, the reconfiguration unit configured to classify the workload in a second class based on the first class;
- a priority calculation unit coupled to the reconfiguration unit, the priority calculation unit configured to assign a priority to the first request based on the first class and the second class;
- a cache memory comprising a plurality of blocks;
- and
- a cache managing unit configured to store the first request in the cache memory responsive to:
- the first request not stored in the cache memory;
- all of the plurality of blocks being valid;
- and
- the priority satisfying a priority condition.
Dependencies are inferred from the claim text.