Open
Conversation
Contributor
Author
|
todo found: rebuild ms |
1e69592 to
8f8fae8
Compare
Contributor
Author
|
currently, ts transfer task is using timer-task (setting time = now), can migrate to immediate transfer task. |
8f8fae8 to
6eacb02
Compare
2463097 to
39ac713
Compare
feiyang3cat
commented
Mar 24, 2026
| mutableState.approximateSize += dbRecord.ExecutionInfo.Size() - mutableState.executionInfo.Size() | ||
| mutableState.executionInfo = dbRecord.ExecutionInfo | ||
|
|
||
| if mutableState.executionInfo.GetTimeSkippingInfo().GetEnabled() { |
feiyang3cat
commented
Mar 24, 2026
| } | ||
| for _, task := range ms.InsertTasks[tasks.CategoryTimer] { | ||
| if userTimerTask, ok := task.(*tasks.UserTimerTask); ok { | ||
| userTimerTask.VisibilityTimestamp = userTimerTask.VisibilityTimestamp.Add(-skippedDuration) |
39ac713 to
2e1df0a
Compare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…art workflows data plane: rename persistencespb.TimeSkippedDetails
2e1df0a to
dd0297a
Compare
Contributor
Author
|
should merge API first and change api-go commitID |
feiyang3cat
commented
Mar 24, 2026
| AddWorkflowExecutionTimeSkippedEvent(ctx context.Context, advanceToTimePoint time.Time) (*historypb.HistoryEvent, error) | ||
| ApplyWorkflowExecutionTimeSkippedEvent(ctx context.Context, event *historypb.HistoryEvent) error | ||
| IsAutoTimeSkippable() bool | ||
| VirtualTimeNow() time.Time |
Contributor
Author
There was a problem hiding this comment.
can just call it now, if there is no timeskipping ever happened, return shard.Now()
feiyang3cat
commented
Mar 24, 2026
| "go.temporal.io/server/service/history/tasks" | ||
| ) | ||
|
|
||
| type ( |
Contributor
Author
There was a problem hiding this comment.
@yux0 this time-skipping feature is almost completed in this pr, and I think replication will naturally be covered by this change? (I haven't add feature testing for replication yet, will need to read a bit on how to do that
Contributor
Author
|
need to add more in-repo feature testing (now the basic uses cases are contained, edgy cases are needed) |
add timeSkippingEvent to workflow rebuilder fix bugs of taskRefersher, and mutable virtual time The proto source had the api-linter suppression comment for to_time but the generated .pb.go was not updated to reflect it. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dd0297a to
824d0c6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed?
add automatic time-skipping, i.e. all features, unit-tests, feature tests are in this pr.
manual skipping, fine-grained control, chasm related not yet included.
1. full control plane related:
- dc flag for the feature in a namespace
- opt-in to enable time-skipping when starting a workflow
- disable/enable time-skipping with workflowUpdateOptions
- API related:
2. data plane:
- on mutation/snapshot a timeskipping transfer task is created with the transaction
- handling of time-skipping transfer-task: transaction (calculate time to be skipped, update virtual time of the ms, generate new timertasks with new virtual time)
- timeSkippingTimeSourceImpl and mutableState vitualTime
- mutableState rebuild
How did you test it?