Skip to content

Introduce composite detach#925

Open
robertbaldyga wants to merge 28 commits intoOpen-CAS:masterfrom
robertbaldyga:composite-detach
Open

Introduce composite detach#925
robertbaldyga wants to merge 28 commits intoOpen-CAS:masterfrom
robertbaldyga:composite-detach

Conversation

@robertbaldyga
Copy link
Member

No description provided.

@robertbaldyga robertbaldyga force-pushed the composite-detach branch 5 times, most recently from c7642b0 to 4c94656 Compare February 16, 2026 20:03
robertbaldyga and others added 25 commits February 16, 2026 23:23
It is recurring pattern in OCF.

Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Since the free_detached partition will have the same ID as the freelist
(due to limited number of available IDs) requesting cache lines with part
id set to PARTITION_FREELIST would end up with accessing unavailable
(detached) cache lines.

However, at the point of calling `lru_req_next_cline()` the freelist is
empty anyway as the eviction algorithm makes sure that the whole cache is
populated before trying to move cachelines between the user parts. Thus, it
is safe to assume that all cache lines with part id == PARTITION_FREELIST
are detached and this change doesn't modify the OCF's behavior.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
An additional partition to store cache lines that belonged to detached
members of composite volume. Keeping track of such cache lines will allow
to easily reuse them once the missing composite volume member will be
readded.

The unavaliable cache lines will be moved to free_detached part, however
because of the limited number of available part_ids the unavailable cache
lines will have assigned PARTITION_FREE as partition id in metadata.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
It allows to move free detached cache lines back into the freelist.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Show OCF_COMPOSITE_VOLUME_MEMBERS_MAX in OCF public API, as it may be
useful in adapter implementation.

Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Call on_init() properly in situation when uuid==NULL.

Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Those values are going to be needed for composite volume attach/detach
operations, which could be performed before the volume is opened.

Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Avi Halaf <avi.halaf@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@unvertical.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants