Project

General

Profile

Actions

Enhancement #73577

open

cephfs-mirror: use asynchronous IO interface for data transfer

Added by Venky Shankar 5 months ago. Updated 5 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Performance/Resource Usage
Target version:
% Done:

0%

Source:
Development
Backport:
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
cephfs-mirror
Labels (FS):
Pull request ID:
Tags (freeform):
Merge Commit:
Fixed In:
Released In:
Upkeep Timestamp:

Description

Right now sync calls are used which makes the mirror daemon rely on spawning threads for concurrent synchronization. The mirror daemon relies on config variable cephfs_mirror_max_concurrent_directory_syncs to control the number of concurrent directory syncs, but each of the thread is crawling and synchronizing snapshots. Feature tracker https://tracker.ceph.com/issues/73452 suggests to split the crawler and sync threads, which is beneficial, however, it might be better if the sync threads can use async IO interfaces. That way we can have a pool of sync threads that basically pick a sync item from a global queue which is filled by the crawler thread.

Each entry in the queue will carry the following detail (at least the necessary ones)

- path of the file (or open fds: one for reading [local] and one of writing [remote])
- changed block


Related issues 1 (0 open1 closed)

Related to CephFS - Bug #73452: cephfs-mirror: split the snapshot mirror thread into a mirror and crawler threadResolvedKotresh Hiremath Ravishankar

Actions
Actions #1

Updated by Venky Shankar 5 months ago

  • Related to Bug #73452: cephfs-mirror: split the snapshot mirror thread into a mirror and crawler thread added
Actions #2

Updated by Venky Shankar 5 months ago

  • Tracker changed from Bug to Enhancement
  • Regression deleted (No)
  • Severity deleted (3 - minor)
Actions

Also available in: Atom PDF