aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/actors/interconnect/interconnect_channel.cpp
diff options
context:
space:
mode:
authorAlexander Rutkovsky <alexander.rutkovsky@gmail.com>2022-06-16 14:45:38 +0300
committerAlexander Rutkovsky <alexander.rutkovsky@gmail.com>2022-06-16 14:45:38 +0300
commit20d96d3531fa27af7cf21e8de55d71255b054cfd (patch)
treeab97943b524e5f222b839b4c767321538244eb36 /library/cpp/actors/interconnect/interconnect_channel.cpp
parentc0fe73f947f62476b336002f7fa85301f8a80dee (diff)
downloadydb-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.cpp46
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;