* Restructure NamespaceInfo Protos
* System namespace registration is moved to the immutableClusterMetadata path, rather than registering in schema
* Add NewUUID(), Fix Namespace test
* Remove unused import
* Serialization moved to Manager
* shared.WorkflowExecutionInfo and shared.WorkflowExecution usage has been moved to commonproto
* enums.WorkflowExecutionCloseStatus default value of 0 is now WorkflowExecutionCloseStatusUnknown
* CloseTime/StartTime are treated as nullable, requiring protobuf Int64Value wrappers
* dataInterfaces.go#WorkflowCloseStatus
* default value None has been renamed to Running as that is what persistence/serialization was calling the previous 0 value
* Running is also moved to value of 1 to match changes in protos, requiring it to be set
* This found a bug where historyEngine.DescribeWorkflowExecution was not returning the CloseStatus
* shared.Memo usage has been moved to commonproto
* General /common/adapter and shared.Thrift removals
- ProtoWorkflowExecutionInfo definition - Moves SQL from Thrift and Cassandra from frozen
- WorkflowExecutionInfo split into two objects (added WorkflowExecutionState) to support UpdateCurrentExecution workflows where the store layer wont want to fetch and manipulate an existing monolith proto.
- Checksum proto introduced, Cassandra moves from frozen Checksum to proto
- This does not move any protos into the request layer and leaves InternalWorkflowMutableState, so common field mapping functions exist
- The go defined ReplicationInfo struct is consolidated to the proto replication package ReplicationInfo
- Convert sql thrift usage of sqlblobs.ReplicationTaskInfo to persistenceblobs.ReplicationTaskInfo proto
- Cassandra now uses data/encoding to persist the proto file
- Serialization still happens at store level and will need to be migrated to manager, so for now Cassandra imports the SQL serializer
- As ReplicationTask used to meet the queueTaskInfo interface, the interface was changed to meet the raw types of IDs (string uuid -> []byte uuid) and int types (int->int32).
- The non-proto tasks needed (timer and transfer) to meet this new interface as well and runtime conversions were added, but they will eventually be converted to protos as well.
* ClusterMembership Pagination Needs Monotonic SQL Id
* ClusterMembership Pagination Fields on GetClusterMembers
* Expanded ClusterMembership tests to include pagination
This change adds three new apis to the ClusterMetadataManager persistence client across Mysql, Postgresql and Cassandra implementations:
- GetActiveClusterMembers
- UpsertClusterMembership
- PruneClusterMembership
This paves the way for a subsequent change to persist and coordinate cluster membership through this layer.
This builds upon https://github.com/temporalio/temporal/pull/65 and implements the logic on top of the provided schemas to make the number of history shards and the cluster name read-only configuration.
See PR commits for step by step vertical implementation of a configuration value to the persistence layer.
* Add ack level to source cluster and source cluster can clean up replication task based on min ack level from all other clusters
* Add sync shard info from get replication messages API