|
| 1 | +--- |
| 2 | +group: IO class |
| 3 | +--- |
| 4 | + |
| 5 | +The IO classes provide ability to control how data is cached with better |
| 6 | +granularity. Every IO can be analyzed on the fly to determine its attributes, |
| 7 | +attributes of an issuing process or a destination file. Using IO class configuration |
| 8 | +settings, Open CAS Linux may be tuned for a specific workload. The IO class mechanism |
| 9 | +can determine whether or not data shall be cached or with which priority it shall be |
| 10 | +evicted. |
| 11 | + |
| 12 | +-------------------------------------------------------------------------------- |
| 13 | +-------------------------------------------------------------------------------- |
| 14 | +title: Setting occupancy limit |
| 15 | +id: occupancy |
| 16 | +--- |
| 17 | + |
| 18 | +It shall be possible to set a maximum size of an IO class. |
| 19 | + |
| 20 | +-------------------------------------------------------------------------------- |
| 21 | +-------------------------------------------------------------------------------- |
| 22 | +title: Allowed occupancy values |
| 23 | +id: occupancy_allowed_values |
| 24 | +--- |
| 25 | + |
| 26 | +The product shall accept integer and fixed point values for a max size of an IO class |
| 27 | +in range from 0.00 to 1.00 and interpret them as a fraction of a cache size. |
| 28 | + |
| 29 | +-------------------------------------------------------------------------------- |
| 30 | +-------------------------------------------------------------------------------- |
| 31 | +title: Default occupancy limit |
| 32 | +id: occupancy_default_limit |
| 33 | +--- |
| 34 | + |
| 35 | +When initializing a cache the software shall set IO class's max occupancy to 1.00. |
| 36 | + |
| 37 | +-------------------------------------------------------------------------------- |
| 38 | +-------------------------------------------------------------------------------- |
| 39 | +title: Setting an occupancy limit on loading a cache |
| 40 | +id: occupancy_limit_on_load |
| 41 | +--- |
| 42 | + |
| 43 | +When a cache state is loaded, the occupancy limit for each IO class shall be set |
| 44 | +to the value used before the cache had been shut down. |
| 45 | + |
| 46 | +-------------------------------------------------------------------------------- |
| 47 | +-------------------------------------------------------------------------------- |
| 48 | +title: Display an occupancy limit value |
| 49 | +id: occupancy_display_limit |
| 50 | +--- |
| 51 | + |
| 52 | +It shall be possible to display the currently set value of the occupancy limit |
| 53 | +for each configured ioclass. The value shall be displayed as a fraction of a cache |
| 54 | +size. |
| 55 | + |
| 56 | +-------------------------------------------------------------------------------- |
| 57 | +-------------------------------------------------------------------------------- |
| 58 | +title: Respecting occupancy limit on a cache miss |
| 59 | +id: occupancy_respecting_limit_on_miss |
| 60 | +--- |
| 61 | + |
| 62 | +When an IO request is a miss and the target IO class has reached its occupancy limit, |
| 63 | +the software shall evict a number of missing cache blocks from the target IO class |
| 64 | +before inserting new data into it. |
| 65 | + |
| 66 | +-------------------------------------------------------------------------------- |
| 67 | +-------------------------------------------------------------------------------- |
| 68 | +title: IO request to a disabled IO class |
| 69 | +id: occupancy_disabled_io_class |
| 70 | +--- |
| 71 | + |
| 72 | +When a target IO class max occupancy has been set to 0.00 the software shall submit |
| 73 | +IO requests in the Pass-Through mode. |
| 74 | + |
| 75 | +-------------------------------------------------------------------------------- |
| 76 | +-------------------------------------------------------------------------------- |
| 77 | +title: Reassign cachelines to another IO class regardless of occupancy limit |
| 78 | +id: occupancy_limit_on_repart |
| 79 | +--- |
| 80 | + |
| 81 | +When an IO request is a hit and triggers reassigning a cache line to another |
| 82 | +IO class, the software shall reassign the cache line regardless of the target |
| 83 | +IO class's occupancy limit. |
0 commit comments