aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/actors/interconnect/load.h
blob: 0a01a0dc0481e096126f39899f84f5a7e7f7c8ed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma once

#include <library/cpp/actors/core/actor.h>

namespace NInterconnect {
    // load responder -- lives on every node as a service actor
    NActors::IActor* CreateLoadResponderActor();
    NActors::TActorId MakeLoadResponderActorId(ui32 node);

    // load actor -- generates load with specific parameters
    struct TLoadParams {
        TString Name;
        ui32 Channel;
        TVector<ui32> NodeHops;             // node ids for the message route
        ui32 SizeMin, SizeMax;              // min and max size for payloads
        ui32 InFlyMax;                      // maximum number of in fly messages
        TDuration IntervalMin, IntervalMax; // min and max intervals between sending messages
        bool SoftLoad;                      // is the load soft?
        TDuration Duration;                 // test duration
        bool UseProtobufWithPayload;        // store payload separately
    };
    NActors::IActor* CreateLoadActor(const TLoadParams& params);

}