* Remove forced namespace cache refresh
* Make SQL insert into history tree idempotent
NOTE: Previously, if a namespace is newly created and not loaded
in cache, the namespace cache can do forced cache refresh reducing
the wait time for caller. This forced cache refreshment may able
to trigger a new callback for failover. Now, if a task with deleted
namespace is processed, namespace cache will trigger the above
cache refreshment and causing a deadlock. The only solution now is
to remove the namespace cache forced refreshment logic.
* Optimize SQL layer supporting batch delete
* Split DeleteFromActivityInfoMaps into DeleteFromActivityInfoMaps and DeleteAllFromActivityInfoMaps
* Split DeleteFromTimerInfoMaps into DeleteFromTimerInfoMaps and DeleteAllFromTimerInfoMaps
* Split DeleteFromChildExecutionInfoMaps into DeleteFromChildExecutionInfoMaps and DeleteAllFromChildExecutionInfoMaps
* Split DeleteFromRequestCancelInfoMaps into DeleteFromRequestCancelInfoMaps and DeleteAllFromRequestCancelInfoMaps
* Split DeleteFromSignalInfoMaps into DeleteFromSignalInfoMaps and DeleteAllFromSignalInfoMaps
* Split DeleteFromSignalsRequestedSets into DeleteFromSignalsRequestedSets and DeleteAllFromSignalsRequestedSets
* Revert "Revert "Use sqlx master branch (#924)" (#947)"
This reverts commit 392b8217fc.
* Use latest sqlx and dependencies
* Revert "Update SQL max conn lifetime according to recommendations"
This reverts commit 680ab493f3618ec4f18b010e08a5b67eb51fbf29.
* Split ActivityInfoMapsFilter into ActivityInfoMapsSelectFilter and ActivityInfoMapsDeleteFilter
* Split TimerInfoMapsFilter into TimerInfoMapsSelectFilter and TimerInfoMapsDeleteFilter
* Split ChildExecutionInfoMapsFilter into ChildExecutionInfoMapsSelectFilter and ChildExecutionInfoMapsDeleteFilter
* Split RequestCancelInfoMapsFilter into RequestCancelInfoMapsSelectFilter and RequestCancelInfoMapsDeleteFilter
* Split SignalInfoMapsFilter into SignalInfoMapsSelectFilter and SignalInfoMapsDeleteFilter
* Split SignalsRequestedSetsFilter into SignalsRequestedSetsSelectFilter and SignalsRequestedSetsDeleteFilter
* When performing workflow reset & terminating current workflow, one unnecessary create history tree API is called, this PR remove the redundant call to improve performance
* Split TransferTasksFilter into TransferTasksFilter and TransferTasksRangeFilter
* Split SelectFromTransferTasks into SelectFromTransferTasks and RangeSelectFromTransferTasks
* Split DeleteFromTransferTasks into DeleteFromTransferTasks and RangeDeleteFromTransferTasks
* Split TimerTasksFilter into TimerTasksFilter and TimerTasksRangeFilter
* Split SelectFromTimerTasks into SelectFromTimerTasks and RangeSelectFromTimerTasks
* Split DeleteFromTimerTasks into DeleteFromTimerTasks and RangeDeleteFromTimerTasks
After 2dc removal we trigger a slightly different codepath on mysql
persistence when resetting workflows.
AppendHistoryNodes when called with IsNewBranch add both
history_tree metadata and history_node. This caused the problem
because history_node is already added when fork was called so
adding it again failed with duplicate error. Updated
AppendHistoryNodes api to upsert instead.
Another issue was with create workflow execution never expected
to be called with `CreateWorkflowModeContinueAsNew` mode. With
NDC now workflow reset is implemented in similar fashion as
doing continue as new. So removed the check to disallow
`CreateWorkflowModeContinueAsNew` on create execution and added
appropriate validation.