2727#include " lib/profile/ob_trace_id.h"
2828#include " lib/restore/ob_storage.h"
2929#include " lib/tc/ob_tc.h"
30+ #include " lib/thread/thread_mgr_interface.h"
3031#include " lib/worker.h"
3132#include " share/resource_manager/ob_resource_plan_info.h"
3233#include " storage/ob_storage_checked_object_base.h"
@@ -50,6 +51,7 @@ namespace common
5051{
5152
5253class ObObjectDevice ;
54+ class ObIOCallbackManager ;
5355
5456// the timestamp adjustment will not adjust until the queue is idle for more than this time
5557static constexpr int64_t CLOCK_IDLE_THRESHOLD_US = 100 * 1000L ; // 100ms
@@ -215,25 +217,22 @@ struct ObIOFlag final
215217
216218// different io callback types enqueue different io callback thread queue
217219enum class ObIOCallbackType : uint8_t {
218- ATOMIC_WRITE_CALLBACK = 0 ,
219- ASYNC_SINGLE_MICRO_BLOCK_CALLBACK = 1 ,
220- MULTI_DATA_BLOCK_CALLBACK = 2 ,
221- SYNC_SINGLE_MICRO_BLOCK_CALLBACK = 3 ,
222- SS_CACHE_LOAD_FROM_REMOTE_CALLBACK = 4 ,
223- SS_CACHE_LOAD_FROM_LOCAL_CALLBACK = 5 ,
224- SS_MC_PREWARM_CALLBACK = 6 ,
225- STORAGE_META_CALLBACK = 7 ,
226- TMP_PAGE_CALLBACK = 8 ,
227- TMP_MULTI_PAGE_CALLBACK = 9 ,
228- TMP_DIRECT_READ_PAGE_CALLBACK = 10 ,
229- TEST_CALLBACK = 11 , // just for unittest
230- SS_TMP_FILE_CALLBACK = 12 ,
231- TMP_CACHED_READ_CALLBACK = 13 ,
232- MAX_CALLBACK_TYPE = 14
220+ ASYNC_SINGLE_MICRO_BLOCK_CALLBACK = 0 ,
221+ MULTI_DATA_BLOCK_CALLBACK = 1 ,
222+ SYNC_SINGLE_MICRO_BLOCK_CALLBACK = 2 ,
223+ SS_CACHE_LOAD_FROM_REMOTE_CALLBACK = 3 ,
224+ SS_CACHE_LOAD_FROM_LOCAL_CALLBACK = 4 ,
225+ SS_MC_PREWARM_CALLBACK = 5 ,
226+ STORAGE_META_CALLBACK = 6 ,
227+ TMP_PAGE_CALLBACK = 7 ,
228+ TMP_MULTI_PAGE_CALLBACK = 8 ,
229+ TMP_DIRECT_READ_PAGE_CALLBACK = 9 ,
230+ TEST_CALLBACK = 10 , // just for unittest
231+ SS_TMP_FILE_CALLBACK = 11 ,
232+ TMP_CACHED_READ_CALLBACK = 12 ,
233+ MAX_CALLBACK_TYPE = 13
233234};
234235
235- bool is_atomic_write_callback (const ObIOCallbackType type);
236-
237236class ObIOCallback
238237{
239238public:
@@ -528,7 +527,7 @@ class ObIOResult final
528527 friend class ObTenantIOManager ;
529528 friend class ObAsyncIOChannel ;
530529 friend class ObSyncIOChannel ;
531- friend class ObIORunner ;
530+ friend class ObIOCallbackManager ;
532531 friend class backup ::ObBackupDeviceHelper;
533532 bool is_inited_;
534533 bool is_finished_;
@@ -602,7 +601,7 @@ class ObIORequest : public common::ObDLinkBase<ObIORequest>
602601 friend class ObDeviceChannel ;
603602 friend class ObIOManager ;
604603 friend class ObIOResult ;
605- friend class ObIORunner ;
604+ friend class ObIOCallbackManager ;
606605 friend class ObMClockQueue ;
607606 friend class ObAsyncIOChannel ;
608607 friend class ObSyncIOChannel ;
@@ -618,6 +617,7 @@ class ObIORequest : public common::ObDLinkBase<ObIORequest>
618617 int hold_storage_accesser (const ObIOFd &fd, ObObjectDevice &object_device);
619618 int calc_io_offset_and_size_ ();
620619public:
620+ common::LinkTask req_node_;
621621 ObIOResult *io_result_;
622622 TCRequest qsched_req_;
623623protected:
0 commit comments