This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch resource_ctx
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/resource_ctx by this push:
     new 521931f66e9 f
521931f66e9 is described below

commit 521931f66e9718c991abe06da38fa7be8743a262
Author: yiguolei <guo...@selectdb.com>
AuthorDate: Fri Dec 6 21:16:52 2024 +0800

    f
---
 be/src/runtime/workload_management/io_context.h    |  2 +-
 .../runtime/workload_management/resource_context.h | 33 ++++++++++++++++++----
 2 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/be/src/runtime/workload_management/io_context.h 
b/be/src/runtime/workload_management/io_context.h
index b6e883264a1..886e436a3bf 100644
--- a/be/src/runtime/workload_management/io_context.h
+++ b/be/src/runtime/workload_management/io_context.h
@@ -75,7 +75,7 @@ public:
 public:
     IOContext() {}
     virtual ~IOContext() = default;
-    IOThrottle* get_io_throttle() {}
+    IOThrottle* io_throttle() {}
 };
 
 } // namespace doris
diff --git a/be/src/runtime/workload_management/resource_context.h 
b/be/src/runtime/workload_management/resource_context.h
index 7473d6e3afa..b5e5400165b 100644
--- a/be/src/runtime/workload_management/resource_context.h
+++ b/be/src/runtime/workload_management/resource_context.h
@@ -43,19 +43,40 @@ class ResourceContext : public 
std::enable_shared_from_this<ResourceContext> {
     ENABLE_FACTORY_CREATOR(ResourceContext);
 
 public:
-    ResourceContext() = default;
+    ResourceContext() {
+        // These all default values, it may be reset.
+        cpu_context_ = std::make_shared<CPUContext>();
+        memory_context_ = std::make_shared<MemoryContext>();
+        io_context_ = std::make_shared<IOContext>();
+        reclaimer_ = std::make_shared<ResourceReclaimer>();
+    }
     virtual ~ResourceContext() = default;
 
-    void set_workload_group() {
+    CPUContext* cpu_context() { return cpu_context_.get(); }
+    MemoryContext* memory_context() { return memory_context_.get(); }
+    IOContext* io_context() { return io_context_.get(); }
+    ResourceReclaimer* reclaimer() { return reclaimer_.get(); }
+
+    void set_cpu_context(std::shared_ptr<CPUContext> cpu_context) { 
cpu_context_ = cpu_context; }
+    void set_memory_context(std::shared_ptr<MemoryContext> memory_context) {
+        memory_context_ = memory_context;
+    }
+    void set_io_context(std::shared_ptr<IOContext> io_context) { io_context_ = 
io_context; }
+    void set_reclaimer(std::shared_ptr<ResourceReclaimer> reclaimer) { 
reclaimer_ = reclaimer; }
+
+    void set_workload_group(std::shared_ptr<WorkloadGroup> wg) {
         // update all child context's workload group property
+        workload_group_ = wg;
     }
 
 private:
     // The controller's init value is nullptr, it means the resource context 
will ignore this controller.
-    std::shared_ptr<CPUContext> _cpu_context = nullptr;
-    std::shared_ptr<MemoryContext> _memory_context = nullptr;
-    std::shared_ptr<IOContext> _io_context = nullptr;
-    std::shared_ptr<ResourceReclaimer> _reclaimer = nullptr;
+    std::shared_ptr<CPUContext> cpu_context_ = nullptr;
+    std::shared_ptr<MemoryContext> memory_context_ = nullptr;
+    std::shared_ptr<IOContext> io_context_ = nullptr;
+    std::shared_ptr<ResourceReclaimer> reclaimer_ = nullptr;
+    // Workload group will own resource context, so that resource context only 
have weak ptr for workload group.
+    std::weak_ptr<WorkloadGroup> workload_group_ = nullptr;
 };
 
 } // namespace doris


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to