@@ -37,14 +37,16 @@ class UnorderedInputStream : public IProfilingBlockInputStream
3737 int extra_table_id_index_,
3838 const String & req_id,
3939 const RuntimeFilteList & runtime_filter_list_ = std::vector<RuntimeFilterPtr>{},
40- int max_wait_time_ms_ = 0 )
40+ int max_wait_time_ms_ = 0 ,
41+ bool is_disagg_ = false )
4142 : task_pool(task_pool_)
4243 , header(AddExtraTableIDColumnTransformAction::buildHeader(columns_to_read_, extra_table_id_index_))
4344 , log(Logger::get(req_id))
4445 , ref_no(0 )
4546 , task_pool_added(false )
4647 , runtime_filter_list(runtime_filter_list_)
4748 , max_wait_time_ms(max_wait_time_ms_)
49+ , is_disagg(is_disagg_)
4850 {
4951 ref_no = task_pool->increaseUnorderedInputStreamRefCount ();
5052 }
@@ -75,6 +77,8 @@ class UnorderedInputStream : public IProfilingBlockInputStream
7577 max_wait_time_ms = max_wait_time_ms_;
7678 }
7779
80+ std::vector<ConnectionProfileInfo> getConnectionProfileInfos () const { return connection_profile_infos; }
81+
7882protected:
7983 Block readImpl () override
8084 {
@@ -116,6 +120,23 @@ class UnorderedInputStream : public IProfilingBlockInputStream
116120
117121 void readSuffixImpl () override
118122 {
123+ if (is_disagg)
124+ {
125+ std::call_once (task_pool->getRemoteConnectionInfoFlag (), [&]() {
126+ auto pool_connection_info_opt = task_pool->getRemoteConnectionInfo ();
127+ RUNTIME_CHECK (
128+ pool_connection_info_opt.has_value () || (task_pool->getTotalReadTasks () == 0 ),
129+ pool_connection_info_opt.has_value (),
130+ task_pool->getTotalReadTasks ());
131+ RUNTIME_CHECK (connection_profile_infos.empty (), connection_profile_infos.size ());
132+
133+ if (pool_connection_info_opt)
134+ {
135+ connection_profile_infos.push_back (pool_connection_info_opt->first );
136+ connection_profile_infos.push_back (pool_connection_info_opt->second );
137+ }
138+ });
139+ }
119140 LOG_DEBUG (
120141 log,
121142 " Finish read from storage, pool_id={} ref_no={} rows={}" ,
@@ -156,6 +177,8 @@ class UnorderedInputStream : public IProfilingBlockInputStream
156177 std::vector<RuntimeFilterPtr> runtime_filter_list;
157178 int max_wait_time_ms;
158179
180+ std::vector<ConnectionProfileInfo> connection_profile_infos;
181+ const bool is_disagg;
159182 friend class tests ::DeltaMergeStoreRWTest;
160183};
161184} // namespace DB::DM
0 commit comments