diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-07-26 12:00:54 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-08-02 13:16:51 +0000 |
| commit | e47492d07d852b143ac4f7d33bb4dc4f900d2410 (patch) | |
| tree | a60162c2997a3ab00282b8edd1af6d3f70598881 /pkg/flatrpc/flatrpc.go | |
| parent | 137fdde817df60cccfeb9a40237533e48bc143ec (diff) | |
pkg/rpcserver: use dense VM indices instead of string names
Using actual VM indices for VM identification allows to match these indices to VMs in the pool,
allows to use dense arrays to store information about runners (e.g. in queue.Distributor),
and just removes string names as unnecessary additional entities.
Diffstat (limited to 'pkg/flatrpc/flatrpc.go')
| -rw-r--r-- | pkg/flatrpc/flatrpc.go | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/pkg/flatrpc/flatrpc.go b/pkg/flatrpc/flatrpc.go index aa0aa0257..ff2f4c623 100644 --- a/pkg/flatrpc/flatrpc.go +++ b/pkg/flatrpc/flatrpc.go @@ -459,7 +459,7 @@ func (v SnapshotState) String() string { } type ConnectRequestRawT struct { - Name string `json:"name"` + Id int64 `json:"id"` Arch string `json:"arch"` GitRevision string `json:"git_revision"` SyzRevision string `json:"syz_revision"` @@ -469,12 +469,11 @@ func (t *ConnectRequestRawT) Pack(builder *flatbuffers.Builder) flatbuffers.UOff if t == nil { return 0 } - nameOffset := builder.CreateString(t.Name) archOffset := builder.CreateString(t.Arch) gitRevisionOffset := builder.CreateString(t.GitRevision) syzRevisionOffset := builder.CreateString(t.SyzRevision) ConnectRequestRawStart(builder) - ConnectRequestRawAddName(builder, nameOffset) + ConnectRequestRawAddId(builder, t.Id) ConnectRequestRawAddArch(builder, archOffset) ConnectRequestRawAddGitRevision(builder, gitRevisionOffset) ConnectRequestRawAddSyzRevision(builder, syzRevisionOffset) @@ -482,7 +481,7 @@ func (t *ConnectRequestRawT) Pack(builder *flatbuffers.Builder) flatbuffers.UOff } func (rcv *ConnectRequestRaw) UnPackTo(t *ConnectRequestRawT) { - t.Name = string(rcv.Name()) + t.Id = rcv.Id() t.Arch = string(rcv.Arch()) t.GitRevision = string(rcv.GitRevision()) t.SyzRevision = string(rcv.SyzRevision()) @@ -524,12 +523,16 @@ func (rcv *ConnectRequestRaw) Table() flatbuffers.Table { return rcv._tab } -func (rcv *ConnectRequestRaw) Name() []byte { +func (rcv *ConnectRequestRaw) Id() int64 { o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) if o != 0 { - return rcv._tab.ByteVector(o + rcv._tab.Pos) + return rcv._tab.GetInt64(o + rcv._tab.Pos) } - return nil + return 0 +} + +func (rcv *ConnectRequestRaw) MutateId(n int64) bool { + return rcv._tab.MutateInt64Slot(4, n) } func (rcv *ConnectRequestRaw) Arch() []byte { @@ -559,8 +562,8 @@ func (rcv *ConnectRequestRaw) SyzRevision() []byte { func ConnectRequestRawStart(builder *flatbuffers.Builder) { builder.StartObject(4) } -func ConnectRequestRawAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) { - builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(name), 0) +func ConnectRequestRawAddId(builder *flatbuffers.Builder, id int64) { + builder.PrependInt64Slot(0, id, 0) } func ConnectRequestRawAddArch(builder *flatbuffers.Builder, arch flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(arch), 0) |
