Skip to content

Commit ba5e059

Browse files
author
Robert Baldyga
committed
doc: Add requirements for sequential cutoff
Signed-off-by: Robert Baldyga <[email protected]>
1 parent c2c1d9e commit ba5e059

File tree

1 file changed

+235
-0
lines changed

1 file changed

+235
-0
lines changed

doc/requirements/sequential_cutoff

Lines changed: 235 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,235 @@
1+
---
2+
group: Sequential cutoff
3+
---
4+
5+
Sequential cutoff feature allows to detect sequential data streams
6+
and redirect them to backend volume (bypassing the cache).
7+
8+
--------------------------------------------------------------------------------
9+
--------------------------------------------------------------------------------
10+
title: Setting sequential cutoff policy for core
11+
id: policy_core
12+
---
13+
14+
The management tool shall allow to specify sequential cutoff policy
15+
for given core.
16+
17+
--------------------------------------------------------------------------------
18+
--------------------------------------------------------------------------------
19+
title: Setting sequential cutoff policy for all cores in given cache instance
20+
id: policy_all_cores
21+
---
22+
23+
The management tool shall allow to specify sequential cutoff policy
24+
for all cores associated with given cache instance at once.
25+
26+
--------------------------------------------------------------------------------
27+
--------------------------------------------------------------------------------
28+
title: Allowed sequential cutoff policies
29+
id: allowed_policies
30+
---
31+
32+
There shall be three sequential cutoff policies:
33+
34+
1. always
35+
2. full
36+
3. never
37+
38+
--------------------------------------------------------------------------------
39+
--------------------------------------------------------------------------------
40+
title: Default sequential cutoff policy
41+
id: policy_default
42+
---
43+
44+
The default sequential cutoff policy shall be **full**.
45+
46+
--------------------------------------------------------------------------------
47+
--------------------------------------------------------------------------------
48+
title: Setting sequential cutoff threshold for core
49+
id: threshold_core
50+
---
51+
52+
The management tool shall allow to specify sequential cutoff threshold
53+
for given core.
54+
55+
--------------------------------------------------------------------------------
56+
--------------------------------------------------------------------------------
57+
title: Setting sequential cutoff threshold for all cores in given cache instance
58+
id: threshold_all_cores
59+
---
60+
61+
The management tool shall allow to specify sequential cutoff threshold
62+
for all cores associated with given cache instance at once.
63+
64+
--------------------------------------------------------------------------------
65+
--------------------------------------------------------------------------------
66+
title: Allowed sequential cutoff theshold values
67+
id: threshold_values
68+
---
69+
70+
It shall be possible to specify sequential cutoff threshold value in range
71+
from 1 to 4194181 KiB inclusive.
72+
73+
--------------------------------------------------------------------------------
74+
--------------------------------------------------------------------------------
75+
title: Default sequential cutoff threshold value
76+
id: threshold_default
77+
---
78+
79+
The default sequential cutoff threshold shall be 1024 KiB.
80+
81+
--------------------------------------------------------------------------------
82+
--------------------------------------------------------------------------------
83+
title: Setting sequential cutoff promotion count for core
84+
id: promotion_count_core
85+
---
86+
87+
The management tool shall allow to specify sequential cutoff promotion count
88+
for given core.
89+
90+
--------------------------------------------------------------------------------
91+
--------------------------------------------------------------------------------
92+
title: >-
93+
Setting sequential cutoff promotion count for all cores in given
94+
cache instance
95+
id: promotion_count_all_cores
96+
---
97+
98+
The management tool shall allow to specify sequential cutoff promotion count
99+
for all cores associated with given cache instance at once.
100+
101+
--------------------------------------------------------------------------------
102+
--------------------------------------------------------------------------------
103+
title: Allowed sequential cutoff promotion count values
104+
id: promotion_count_values
105+
---
106+
107+
It shall be possible to specify sequential cutoff promotion count value
108+
in range from 0 to 65535 inclusive.
109+
110+
--------------------------------------------------------------------------------
111+
--------------------------------------------------------------------------------
112+
title: Default sequential cutoff promotion count value
113+
id: promotion_count_default
114+
---
115+
116+
The default sequential cutoff promotion count shall be 8.
117+
118+
--------------------------------------------------------------------------------
119+
--------------------------------------------------------------------------------
120+
title: Loading sequential cutoff configuration on cache load
121+
id: loading_configuration
122+
---
123+
124+
All sequential cutoff parameters shall be loaded from cache metadata for each
125+
core on cache load.
126+
127+
--------------------------------------------------------------------------------
128+
--------------------------------------------------------------------------------
129+
title: Sequential cutoff stream detection
130+
id: operation
131+
---
132+
133+
The sequential cutoff shall detect streams of sequential IO requests.
134+
135+
--------------------------------------------------------------------------------
136+
--------------------------------------------------------------------------------
137+
title: Sequential cutoff operation
138+
id: operation
139+
---
140+
141+
When lenght of the stream reaches the cutoff threshold, each next IO request
142+
which continues the stream and is not full dirty hit shall be handled
143+
in Pass-Through mode.
144+
145+
--------------------------------------------------------------------------------
146+
--------------------------------------------------------------------------------
147+
title: Sequential cutoff for reads and writes
148+
id: reads_and_writes
149+
---
150+
151+
The sequential cutoff shall track streams of read and write IO requests
152+
separately.
153+
154+
--------------------------------------------------------------------------------
155+
--------------------------------------------------------------------------------
156+
title: Multiple per-CPU sequential cutoff streams
157+
id: per_cpu_multiple_streams
158+
---
159+
160+
The sequential cutoff shall be able to detect up to 128 per-CPU streams.
161+
162+
--------------------------------------------------------------------------------
163+
--------------------------------------------------------------------------------
164+
title: Multiple shared sequential cutoff streams
165+
id: shared_multiple_streams
166+
---
167+
168+
The sequential cutoff shall be able to detect up to 64 shared streams.
169+
170+
--------------------------------------------------------------------------------
171+
--------------------------------------------------------------------------------
172+
title: Sequential cutoff per-CPU stream continuation
173+
id: per_cpu_stream_continuation
174+
---
175+
176+
When new IO request is being handled, the sequential cutoff shall first try to
177+
account it to one of per-CPU streams local to the CPU on which the IO request
178+
is being handled.
179+
180+
--------------------------------------------------------------------------------
181+
--------------------------------------------------------------------------------
182+
title: Sequential cutoff shared stream continuation
183+
id: shared_stream_continuation
184+
---
185+
186+
When new IO request is being handled and there is no per-CPU stream which can
187+
be continued by this IO request, the sequential cutoff shall try to account it
188+
to one of shared streams.
189+
190+
--------------------------------------------------------------------------------
191+
--------------------------------------------------------------------------------
192+
title: Sequential cutoff stream creation
193+
id: stream_creation
194+
---
195+
196+
When new IO request is being handled and there is neither per-CPU nor shared
197+
stream which can be countinued by this IO request, the sequential cutoff shall
198+
create new per-CPU stream starting with this IO request.
199+
200+
--------------------------------------------------------------------------------
201+
--------------------------------------------------------------------------------
202+
title: Sequential cutoff stream promotion
203+
id: stream_promotion
204+
---
205+
206+
When number of IO requests accounted to given per-CPU stream reaches
207+
the promotion count or stream length reaches the threshold, the stream
208+
shall be promoted to shared stream pool.
209+
210+
--------------------------------------------------------------------------------
211+
--------------------------------------------------------------------------------
212+
title: Sequential cutoff policy **always**
213+
id: policy_always
214+
---
215+
216+
When sequential cutoff policy is set to **always**, the sequential cutoff shall
217+
be enabled regardless to cache occupancy.
218+
219+
--------------------------------------------------------------------------------
220+
--------------------------------------------------------------------------------
221+
title: Sequential cutoff policy **full**
222+
id: policy_full
223+
---
224+
225+
When sequential cutoff policy is set to **full**, the sequential cutoff shall
226+
be enabled only when cache occupancy reaches 100%.
227+
228+
--------------------------------------------------------------------------------
229+
--------------------------------------------------------------------------------
230+
title: Sequential cutoff policy **never**
231+
id: policy_never
232+
---
233+
234+
When sequential cutoff policy is set to **never**, the sequential cutoff shall
235+
be disabled.

0 commit comments

Comments
 (0)