diff options
author | Alexander Rutkovsky <alexander.rutkovsky@gmail.com> | 2022-06-16 14:45:38 +0300 |
---|---|---|
committer | Alexander Rutkovsky <alexander.rutkovsky@gmail.com> | 2022-06-16 14:45:38 +0300 |
commit | 20d96d3531fa27af7cf21e8de55d71255b054cfd (patch) | |
tree | ab97943b524e5f222b839b4c767321538244eb36 /library/cpp/actors/interconnect/interconnect_channel.cpp | |
parent | c0fe73f947f62476b336002f7fa85301f8a80dee (diff) | |
download | ydb-20d96d3531fa27af7cf21e8de55d71255b054cfd.tar.gz |
Refactor Wilson KIKIMR-15105
ref:55ce6a1b08bba785ea62b3bdfea902ef7263cf57
Diffstat (limited to 'library/cpp/actors/interconnect/interconnect_channel.cpp')
-rw-r--r-- | library/cpp/actors/interconnect/interconnect_channel.cpp | 46 |
1 files changed, 35 insertions, 11 deletions
diff --git a/library/cpp/actors/interconnect/interconnect_channel.cpp b/library/cpp/actors/interconnect/interconnect_channel.cpp index a66ba2a154..32f015af54 100644 --- a/library/cpp/actors/interconnect/interconnect_channel.cpp +++ b/library/cpp/actors/interconnect/interconnect_channel.cpp @@ -11,20 +11,18 @@ LWTRACE_USING(ACTORLIB_PROVIDER); namespace NActors { - DECLARE_WILSON_EVENT(EventSentToSocket); - DECLARE_WILSON_EVENT(EventReceivedFromSocket); - bool TEventOutputChannel::FeedDescriptor(TTcpPacketOutTask& task, TEventHolder& event, ui64 *weightConsumed) { - const size_t amount = sizeof(TChannelPart) + sizeof(TEventDescr); + const size_t descrSize = Params.UseExtendedTraceFmt ? sizeof(TEventDescr2) : sizeof(TEventDescr1); + const size_t amount = sizeof(TChannelPart) + descrSize; if (task.GetVirtualFreeAmount() < amount) { return false; } - NWilson::TTraceId traceId(event.Descr.TraceId); -// if (ctx) { -// WILSON_TRACE(*ctx, &traceId, EventSentToSocket); -// } - traceId.Serialize(&event.Descr.TraceId); + auto& span = *event.Span; + span.EndOk(); + const NWilson::TTraceId traceId(span); + event.Span.reset(); + LWTRACK(SerializeToPacketEnd, event.Orbit, PeerNodeId, ChannelId, OutputQueueSize, task.GetDataSize()); task.Orbit.Take(event.Orbit); @@ -33,8 +31,34 @@ namespace NActors { TChannelPart *part = static_cast<TChannelPart*>(task.GetFreeArea()); part->Channel = ChannelId | TChannelPart::LastPartFlag; - part->Size = sizeof(TEventDescr); - memcpy(part + 1, &event.Descr, sizeof(TEventDescr)); + part->Size = descrSize; + + void *descr = part + 1; + if (Params.UseExtendedTraceFmt) { + auto *p = static_cast<TEventDescr2*>(descr); + *p = { + event.Descr.Type, + event.Descr.Flags, + event.Descr.Recipient, + event.Descr.Sender, + event.Descr.Cookie, + {}, + event.Descr.Checksum + }; + traceId.Serialize(&p->TraceId); + } else { + auto *p = static_cast<TEventDescr1*>(descr); + *p = { + event.Descr.Type, + event.Descr.Flags, + event.Descr.Recipient, + event.Descr.Sender, + event.Descr.Cookie, + {}, + event.Descr.Checksum + }; + } + task.AppendBuf(part, amount); *weightConsumed += amount; OutputQueueSize -= part->Size; |