]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/scrub: Modify osd_scrub_sched.h high-level diagram
authorRonen Friedman <rfriedma@redhat.com>
Thu, 13 Jun 2024 10:33:00 +0000 (05:33 -0500)
committerRonen Friedman <rfriedma@redhat.com>
Tue, 16 Jul 2024 14:19:32 +0000 (09:19 -0500)
to convey the change in the scheduling data ownership: no longer
a scrub-job object shared between the Scrubber and the OSD
scrub queue. Instead - the scrub queue holds a copied snapshot
of the scheduling data.

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/osd/scrubber/osd_scrub_sched.h

index 75708af7bcf09cbdf8c1b7c40afc41fc06526b6f..fd11dfa06cd77e91f4ea9813bcb5225b1784360d 100644 (file)
@@ -4,77 +4,78 @@
 #pragma once
 // clang-format off
 /*
-┌───────────────────────┐
-│ OSD                   │
-│ OSDService            │
-│                       │
-│ ┌─────────────────────│
-│ │                     │
-│ │   OsdScrub          │
-│ │                    ─┼───┐
-│ │                     │   │
-└───────────────────────┘   │   Ownes & uses the following
-                            │   ScrubQueue interfaces:
-                            │
-                            │
-                            │   - resource management (*1)
-                            │
-                            │   - environment conditions (*2)
-                            │
-                            │   - scrub scheduling (*3)
-                            │
-                            │
-                            │
- ScrubQueue                 │
-┌───────────────────────────▼────────────┐
-│                                        │
-│                                        │
-│  ScrubQContainer    to_scrub <>────────┼────────┐
-│                                        │        │
-│                                        │        │
-│  OSD_wide resource counters            │        │
-│                                        │        │
-│                                        │        │
-│  "env scrub conditions" monitoring     │        │
-│                                        │        │
-│                                        │        │
-│                                        │        │
-│                                        │        │
-└─▲──────────────────────────────────────┘        │
-  │                                               │
-  │                                               │
-  │uses interface <4>                             │
-  │                                               │
-  │                                               │
-  │            ┌──────────────────────────────────┘
-  │            │                 shared ownership of jobs
-  │            │
-  │      ┌─────▼──────┐
-  │      │ScrubJob    │
-  │      │            ├┐
-  │      │            ││
-  │      │            │┼┐
-  │      │            │┼│
-  └──────┤            │┼┤◄──────┐
-         │            │┼│       │
-         │            │┼│       │
-         │            │┼│       │
-         └┬───────────┼┼│       │shared ownership
-          └─┼┼┼┼┼┼┼┼┼┼┼┼│       │
-            └───────────┘       │
-                                │
-                                │
-                                │
-                                │
-┌───────────────────────────────┼─┐
-│                               <>│
-│PgScrubber                       │
-│                                 │
-│                                 │
-│                                 │
-│                                 │
-│                                 │
-└─────────────────────────────────┘
+  ┌───────────────────────┐
+  │ OSD                   │
+  │ OSDService            │
+  │                       │
+  │ ┌─────────────────────┤
+  │ │                     │
+  │ │   OsdScrub          │
+  │ │                    ─┼───┐
+  │ │                     │   │
+  └─┴─────────────────────┘   │   Owns & uses the following
+                              │   ScrubQueue interfaces:
+                              │
+                              │
+                              │   - resource management (*1)
+                              │
+                              │   - environment conditions (*2)
+                              │
+                              │   - scrub scheduling (*3)
+                              │
+                              │
+                              │
+   ScrubQueue                 │
+  ┌───────────────────────────▼────────────┐
+  │                                        │
+  │                                        │
+  │  ScrubQContainer    to_scrub <>────────┼────────┐
+  │                                        │        │
+  │                                        │        │
+  │  OSD_wide resource counters            │        │
+  │                                        │        │
+  │                                        │        │
+  │  "env scrub conditions" monitoring     │        │
+  │                                        │        │
+  │                                        │        │
+  │                                        │        │
+  │                                        │        │
+  └─▲──────────────────────────────────────┘        │
+    │                                               │
+    │                                               │
+    │uses interface <4>                             │
+    │                                               │
+    │                                               │
+    │            ┌──────────────────────────────────┘
+    │            │
+    │            │
+    │      ┌─────▼──────┐
+    │      │Copy of     │
+    │      │job's       ├┐
+    │      │sched params││
+    │      │(*)         │┼┐
+    │      │            │┼┘◄────────────────────────┐
+    └──────┤            ││                          │
+           │            ││   (*) for now - a copy   │
+           │            ││       of the whole SJ    │
+           │            ││                          │
+           └┬───────────┼│                          │
+            └─┼┼┼┼┼┼┼┼┼┼┼│                          │
+              └──────────┘                          │
+                                                    │
+                                                    │                                                    │
+                                                    │
+  ┌─────────────────────────────────┐               │
+  │                               <>│               │
+  │PgScrubber                       │               │
+  │               ┌─────────────────┴───┐           │
+  │               │ScrubJob             │           │
+  │               │                     │           │
+  │               │     ┌───────────────┤           │
+  │               │     │Sched params   ├───────────┘
+  └───────────────┤     └───────────────┤
+                  │                     │
+                  └─────────────────────┘
 
 
 ScrubQueue interfaces (main functions):