105
mutation *InternalWorkflowMutation,
106
historyStatistics *HistoryStatistics,
107
>
) *MutableStateStatistics {
size.go
108
>
if mutation == nil {
109
return nil
110
}
111
112
>
executionInfoSize := sizeOfBlob(mutation.ExecutionInfoBlob)
size.go
113
>
executionStateSize := sizeOfBlob(mutation.ExecutionStateBlob)
114
>
115
>
totalActivityCount := mutation.ExecutionInfo.ActivityCount
116
>
activityInfoCount := len(mutation.UpsertActivityInfos)
117
>
activityInfoCount += len(mutation.DeleteActivityInfos)
118
>
activityInfoSize := sizeOfInt64BlobMap(mutation.UpsertActivityInfos)
119
>
activityInfoSize += sizeOfInt64Set(mutation.DeleteActivityInfos)
120
>
121
>
totalUserTimerCount := mutation.ExecutionInfo.UserTimerCount
122
>
timerInfoCount := len(mutation.UpsertTimerInfos)
123
>
timerInfoCount += len(mutation.DeleteTimerInfos)
124
>
timerInfoSize := sizeOfStringBlobMap(mutation.UpsertTimerInfos)
125
>
timerInfoSize += sizeOfStringSet(mutation.DeleteTimerInfos)
126
>
127
>
totalChildExecutionCount := mutation.ExecutionInfo.ChildExecutionCount
128
>
childExecutionInfoCount := len(mutation.UpsertChildExecutionInfos)
129
>
childExecutionInfoCount += len(mutation.DeleteChildExecutionInfos)
130
>
childExecutionInfoSize := sizeOfInt64BlobMap(mutation.UpsertChildExecutionInfos)
131
>
childExecutionInfoSize += sizeOfInt64Set(mutation.DeleteChildExecutionInfos)
132
>
133
>
totalRequestCancelExternalCount := mutation.ExecutionInfo.RequestCancelExternalCount
134
>
requestCancelInfoCount := len(mutation.UpsertRequestCancelInfos)
135
>
requestCancelInfoCount += len(mutation.DeleteRequestCancelInfos)
136
>
requestCancelInfoSize := sizeOfInt64BlobMap(mutation.UpsertRequestCancelInfos)
137
>
requestCancelInfoSize += sizeOfInt64Set(mutation.DeleteRequestCancelInfos)
138
>
139
>
totalSignalExternalCount := mutation.ExecutionInfo.SignalExternalCount
140
>
signalInfoCount := len(mutation.UpsertSignalInfos)
141
>
signalInfoCount += len(mutation.DeleteSignalInfos)
142
>
signalInfoSize := sizeOfInt64BlobMap(mutation.UpsertSignalInfos)
143
>
signalInfoSize += sizeOfInt64Set(mutation.DeleteSignalInfos)
144
>
145
>
totalSignalCount := mutation.ExecutionInfo.SignalCount
146
>
signalRequestIDCount := len(mutation.UpsertSignalRequestedIDs)
147
>
signalRequestIDCount += len(mutation.DeleteSignalRequestedIDs)
148
>
signalRequestIDSize := sizeOfStringSet(mutation.UpsertSignalRequestedIDs)
149
>
signalRequestIDSize += sizeOfStringSet(mutation.DeleteSignalRequestedIDs)
150
>
151
>
totalUpdateCount := mutation.ExecutionInfo.UpdateCount
152
>
updateInfoCount := len(mutation.ExecutionInfo.UpdateInfos)
153
>
154
>
bufferedEventsCount := 0
155
>
bufferedEventsSize := 0
156
>
if mutation.NewBufferedEvents != nil {
157
>
bufferedEventsCount = 1
size.go
158
>
bufferedEventsSize = mutation.NewBufferedEvents.Size()
159
>
}
160
161
>
taskCountByCategory := taskCountsByCategory(&mutation.Tasks)
size.go
162
>
163
>
chasmTotalSize := sizeOfChasmNodeMap(mutation.UpsertChasmNodes)
164
>
chasmTotalSize += sizeOfStringSet(mutation.DeleteChasmNodes)
165
>
166
>
// TODO what about checksum?
167
>
168
>
totalSize := executionInfoSize
169
>
totalSize += executionStateSize
170
>
totalSize += activityInfoSize
171
>
totalSize += timerInfoSize
172
>
totalSize += childExecutionInfoSize
173
>
totalSize += requestCancelInfoSize
174
>
totalSize += signalInfoSize
175
>
totalSize += signalRequestIDSize
176
>
totalSize += bufferedEventsSize
177
>
totalSize += chasmTotalSize
178
>
179
>
return &MutableStateStatistics{
180
>
TotalSize: totalSize,
181
>
HistoryStatistics: historyStatistics,
182
>
183
>
ExecutionInfoSize: executionInfoSize,
184
>
ExecutionStateSize: executionStateSize,
185
>
186
>
ActivityInfoSize: activityInfoSize,
187
>
ActivityInfoCount: activityInfoCount,
188
>
TotalActivityCount: totalActivityCount,
189
>
190
>
TimerInfoSize: timerInfoSize,
191
>
TimerInfoCount: timerInfoCount,
192
>
TotalUserTimerCount: totalUserTimerCount,
193
>
194
>
ChildInfoSize: childExecutionInfoSize,
195
>
ChildInfoCount: childExecutionInfoCount,
196
>
TotalChildExecutionCount: totalChildExecutionCount,
197
>
198
>
RequestCancelInfoSize: requestCancelInfoSize,
199
>
RequestCancelInfoCount: requestCancelInfoCount,
200
>
TotalRequestCancelExternalCount: totalRequestCancelExternalCount,
201
>
202
>
SignalInfoSize: signalInfoSize,
203
>
SignalInfoCount: signalInfoCount,
204
>
TotalSignalExternalCount: totalSignalExternalCount,
205
>
206
>
SignalRequestIDSize: signalRequestIDSize,
207
>
SignalRequestIDCount: signalRequestIDCount,
208
>
TotalSignalCount: totalSignalCount,
209
>
210
>
BufferedEventsSize: bufferedEventsSize,
211
>
BufferedEventsCount: bufferedEventsCount,
212
>
213
>
TaskCountByCategory: taskCountByCategory,
214
>
215
>
TotalUpdateCount: totalUpdateCount,
216
>
UpdateInfoCount: updateInfoCount,
217
>
218
>
ChasmTotalSize: chasmTotalSize,
219
>
}
220
}
221
222
>
func taskCountsByCategory(t *map[tasks.Category][]InternalHistoryTask) map[string]int {
size.go
223
>
counts := make(map[string]int)
224
>
for category, tasks := range *t {
225
>
counts[category.Name()] = len(tasks)
size.go
226
>
}
228
}
229