1441
1442
// add events from request
1444
>
if events[0].EventId <= startEventID {
1445
continue
1446
}
1448
>
if err != nil {
1449
return newBranchToken, err
1450
}
1452
>
err := eventsConsecutiveCheck(event.EventId, event.Version)
1453
>
if err != nil {
1454
return newBranchToken, err
1455
}
1457
>
r.addEventToCache(localMutableState.GetWorkflowKey(), event)
1458
}
1460
if err := r.persistenceRateLimiter.Wait(ctx, quotaRequest); err != nil {
1461
return newBranchToken, err
1462
}
1463
}
1465
>
ShardID: r.shardContext.GetShardID(),
1466
>
IsNewBranch: isNewBranch,
1467
>
BranchToken: versionHistoryToAppend.BranchToken,
1468
>
History: eventBlobs[i],
1469
>
PrevTransactionID: prevTxnID,
1470
>
TransactionID: txnID,
1471
>
NodeID: events[0].EventId,
1472
>
Info: persistence.BuildHistoryGarbageCleanupInfo(
1473
>
namespaceID.String(),
1474
>
workflowID,
1475
>
runID,
1476
>
),
1477
>
})
1478
>
if err != nil {
1479
return newBranchToken, err
1480
}
1482
>
isNewBranch = false
1483
>
startEventID = events[len(events)-1].EventId
1484
>
startEventVersion = events[len(events)-1].Version
1485
>
localMutableState.GetExecutionInfo().ExecutionStats.HistorySize += int64(len(eventBlobs[i].Data))
1486
>
if r.shardContext.GetConfig().ExternalPayloadsEnabled(localMutableState.GetNamespaceEntry().Name().String()) {
1487
>
externalPayloadSize, externalPayloadCount, err := workflow.CalculateExternalPayloadSize(
1488
>
events,
1489
>
metrics.NoopMetricsHandler, // don't record metrics since those are not new uploads
1490
>
)
1491
>
if err != nil {
1492
return newBranchToken, err
1493
}
1495
>
localMutableState.AddExternalPayloadCount(externalPayloadCount)
1496
}
1497
}
1498
// add more events if there is any
1500
err = fetchFromRemoteAndAppend(startEventID, startEventVersion, endEventID+1, endEventVersion)
1501
if err != nil {