@@ -35,7 +35,7 @@ namespace {
3535 LOG_WARN_S (*ActorSystem_, NKikimrServices::KQP_COMPUTE, " TxId: " << TxId << " , channelId: " << ChannelId << " . " << s);
3636
3737#define LOG_T (s ) \
38- LOG_TRACE_S (*ActorSystem_, NKikimrServices::KQP_COMPUTE, " TxId: " << TxId_ << " , channelId: " << ChannelId_ << " . " << s);
38+ LOG_TRACE_S (*ActorSystem_, NKikimrServices::KQP_COMPUTE, " TxId: " << TxId_ << " , channelId: " << ChannelId_ << " . " << s);
3939
4040class TDqChannelStorageActor : public IDqChannelStorageActor ,
4141 public NActors::TActorBootstrapped<TDqChannelStorageActor>
@@ -98,8 +98,9 @@ class TDqChannelStorageActor : public IDqChannelStorageActor,
9898 hFunc (TEvDqSpilling::TEvWriteResult, HandleWork);
9999 hFunc (TEvDqSpilling::TEvReadResult, HandleWork);
100100 hFunc (TEvDqSpilling::TEvError, HandleWork);
101- hFunc (TEvDqChannelSpilling::TEvGet, HandleWork);
102101 hFunc (TEvDqChannelSpilling::TEvPut, HandleWork);
102+ hFunc (TEvDqChannelSpilling::TEvGet, HandleWork);
103+ hFunc (TEvDqChannelSpilling::TEvSetWakeUpCallback, HandleWork);
103104 cFunc (TEvents::TEvPoison::EventType, PassAway);
104105 default :
105106 Y_ABORT (" TDqChannelStorageActor::WorkState unexpected event type: %" PRIx32 " event: %s" ,
@@ -108,30 +109,33 @@ class TDqChannelStorageActor : public IDqChannelStorageActor,
108109 }
109110 }
110111
112+ void HandleWork (TEvDqChannelSpilling::TEvPut::TPtr& ev) {
113+ auto & msg = *ev->Get ();
114+ LOG_T (" [TEvPut] blobId: " << msg.BlobId_ );
115+
116+ auto opBegin = TInstant::Now ();
117+
118+ auto writingBlobInfo = TWritingBlobInfo{msg.Blob_ .Size (), std::move (msg.Promise_ ), opBegin};
119+ WritingBlobs_.emplace (msg.BlobId_ , std::move (writingBlobInfo));
111120
121+ SendInternal (SpillingActorId_, new TEvDqSpilling::TEvWrite (msg.BlobId_ , std::move (msg.Blob_ )));
122+ }
112123
113124 void HandleWork (TEvDqChannelSpilling::TEvGet::TPtr& ev) {
114125 auto & msg = *ev->Get ();
115126 LOG_T (" [TEvGet] blobId: " << msg.BlobId_ );
116127
117128 auto opBegin = TInstant::Now ();
118-
129+
119130 auto loadingBlobInfo = TLoadingBlobInfo{std::move (msg.Promise_ ), opBegin};
120131 LoadingBlobs_.emplace (msg.BlobId_ , std::move (loadingBlobInfo));
121132
122133 SendInternal (SpillingActorId_, new TEvDqSpilling::TEvRead (msg.BlobId_ ));
123134 }
124135
125- void HandleWork (TEvDqChannelSpilling::TEvPut ::TPtr& ev) {
136+ void HandleWork (TEvDqChannelSpilling::TEvSetWakeUpCallback ::TPtr& ev) {
126137 auto & msg = *ev->Get ();
127- LOG_T (" [TEvPut] blobId: " << msg.BlobId_ );
128-
129- auto opBegin = TInstant::Now ();
130-
131- auto writingBlobInfo = TWritingBlobInfo{msg.Blob_ .Size (), std::move (msg.Promise_ ), opBegin};
132- WritingBlobs_.emplace (msg.BlobId_ , std::move (writingBlobInfo));
133-
134- SendInternal (SpillingActorId_, new TEvDqSpilling::TEvWrite (msg.BlobId_ , std::move (msg.Blob_ )));
138+ WakeUpCallback_ = std::move (msg.WakeUpCallback_ );
135139 }
136140
137141 void HandleWork (TEvDqSpilling::TEvWriteResult::TPtr& ev) {
@@ -203,7 +207,7 @@ class TDqChannelStorageActor : public IDqChannelStorageActor,
203207
204208 // BlobId -> blob size + promise that blob is saved
205209 std::unordered_map<ui64, TWritingBlobInfo> WritingBlobs_;
206-
210+
207211 // BlobId -> promise with requested blob
208212 std::unordered_map<ui64, TLoadingBlobInfo> LoadingBlobs_;
209213
0 commit comments