helix.git
4 months agoAdd rest endpoint for virtual topology group (#1958) helix-virtual-group 1963/head
Qi (Quincy) Qu [Wed, 16 Feb 2022 17:55:56 +0000 (12:55 -0500)] 
Add rest endpoint for virtual topology group (#1958)

4 months agoImplement java API and utils for virtual topology group (#1935)
Qi (Quincy) Qu [Tue, 8 Feb 2022 21:53:40 +0000 (16:53 -0500)] 
Implement java API and utils for virtual topology group (#1935)

Add comment to VirtualTopologyGroupService.

4 months agoIntroduce VirtualTopologyGroup and its assignment logic with benchmark. (#1948)
Qi (Quincy) Qu [Thu, 3 Feb 2022 20:18:46 +0000 (12:18 -0800)] 
Introduce VirtualTopologyGroup and its assignment logic with benchmark. (#1948)

* Cleanup unused assignment schemes and minor change.

* Further refactor and code cleanup.

5 months agoFix #1946 -- Refactor and move ClusterTopologyConfig
Qi (Quincy) Qu [Sat, 29 Jan 2022 00:14:09 +0000 (16:14 -0800)] 
Fix #1946 -- Refactor and move ClusterTopologyConfig

Move ClusterTopologyConfig from nested to a standalone class in helix/model and to be used by virtual topology group logic.

5 months agoImprove helix tutorial and code formatting (#1931) (#1932)
Qi (Quincy) Qu [Tue, 11 Jan 2022 19:48:54 +0000 (11:48 -0800)] 
Improve helix tutorial and code formatting (#1931) (#1932)

Improve helix tutorial and code formatting

5 months agoAvoid NPE when getting property store through Helix-rest API. (#1929)
Jiajun Wang [Fri, 7 Jan 2022 22:21:45 +0000 (14:21 -0800)] 
Avoid NPE when getting property store through Helix-rest API. (#1929)

This PR aims to fix the ambiguous error return message when user request to get an empty ZK node through the Helix-rest property store access API.
This PR changes the server behavior to response NO_CONTENT instead of internal_server_error in the scenarios described above.

5 months agoDeclare dependency to Zookeeper in zookeeper-api-*.ivy (#1926)
Ramin Bashizade [Wed, 5 Jan 2022 19:45:54 +0000 (11:45 -0800)] 
Declare dependency to Zookeeper in zookeeper-api-*.ivy (#1926)

Adds dependency to Zookeeper in the ivy file in zookeeper-api module.

6 months agoFix a string operation for custom health check and update test (#1924)
xyuanlu [Mon, 20 Dec 2021 18:28:51 +0000 (10:28 -0800)] 
Fix a string operation for custom health check and update test (#1924)

6 months agoAdd take/free instance implementation and test (#1918)
xyuanlu [Wed, 15 Dec 2021 21:41:36 +0000 (13:41 -0800)] 
Add take/free instance implementation and test (#1918)

* take & free single instance impl

6 months agoMake theadpool shutdown timeout configurable for the HelixTaskExecutor. (#1920)
Jiajun Wang [Tue, 14 Dec 2021 00:51:39 +0000 (16:51 -0800)] 
Make theadpool shutdown timeout configurable for the HelixTaskExecutor. (#1920)

Add TestHelixTaskExecutor.testHandlerResetTimeout() to cover the new changes.
Also refactoring the related code to reduce duplicate and confusing code.

6 months agoImplement RestSnapShot and substitute the kv maps in HelixDataAccessorWrapper to...
xyuanlu [Fri, 3 Dec 2021 23:32:21 +0000 (15:32 -0800)] 
Implement RestSnapShot and substitute the kv maps in HelixDataAccessorWrapper to a RestSnapShot object (#1913)

* implement RestSnapShot and substitute the kv maps in HelixDataAccessorWrapper with RestSnapShot object

6 months agoAdd rest API for take/free instance (#1917)
xyuanlu [Thu, 2 Dec 2021 23:53:12 +0000 (15:53 -0800)] 
Add rest API for take/free instance (#1917)

* add rest API for take/free instance

7 months agorefactor instanceService to clusterMaintenanceService (#1912)
xyuanlu [Thu, 25 Nov 2021 03:05:04 +0000 (19:05 -0800)] 
refactor instanceService to clusterMaintenanceService (#1912)

7 months agoFix No Instance Level Throttling (#1908)
Junkai Xue [Mon, 22 Nov 2021 19:48:09 +0000 (11:48 -0800)] 
Fix No Instance Level Throttling (#1908)

Instance level throttling quota never charged. Add the charging logic and tests.

7 months agoSplit BatchGetInstancesStoppableChecks (#1902)
xyuanlu [Mon, 22 Nov 2021 17:45:24 +0000 (09:45 -0800)] 
Split BatchGetInstancesStoppableChecks (#1902)

Split BatchGetInstancesStoppableChecks into 2 private util functions.

7 months agoAdd 0.9.9 to menu bar
Junkai Xue [Sun, 21 Nov 2021 21:15:56 +0000 (13:15 -0800)] 
Add 0.9.9 to menu bar

7 months agoMissing end quote
Junkai Xue [Sun, 21 Nov 2021 20:27:19 +0000 (12:27 -0800)] 
Missing end quote

7 months agoFix site.xml head/footer
Junkai Xue [Sun, 21 Nov 2021 20:09:42 +0000 (12:09 -0800)] 
Fix site.xml head/footer

7 months agoRemove 0.9.7 doc folder
Junkai Xue [Sun, 21 Nov 2021 20:03:21 +0000 (12:03 -0800)] 
Remove 0.9.7 doc folder

7 months agoRemove 0.9.1, 0.9.4, 0.9.7, 1.0.0 docs to keep only latest 2 releases doc
Junkai Xue [Sun, 21 Nov 2021 20:01:41 +0000 (12:01 -0800)] 
Remove 0.9.1, 0.9.4, 0.9.7, 1.0.0 docs to keep only latest 2 releases doc

7 months agoRemove 0.8 series doc
Junkai Xue [Sun, 21 Nov 2021 19:58:11 +0000 (11:58 -0800)] 
Remove 0.8 series doc

7 months agoupgrade maven-site-plugin: fix site.xml head/footer (#1910)
Hervé Boutemy [Sun, 21 Nov 2021 10:18:01 +0000 (11:18 +0100)] 
upgrade maven-site-plugin: fix site.xml head/footer (#1910)

7 months agoupdate parent and site plugin (#1909)
Hervé Boutemy [Sat, 20 Nov 2021 11:42:23 +0000 (12:42 +0100)] 
update parent and site plugin (#1909)

7 months agoAdd additional note for release
Junkai Xue [Wed, 17 Nov 2021 21:55:26 +0000 (13:55 -0800)] 
Add additional note for release

7 months agofix input issue for stoppable rest API (#1905)
xyuanlu [Wed, 17 Nov 2021 01:10:57 +0000 (17:10 -0800)] 
fix input issue for stoppable rest API (#1905)

7 months agoAdd 0.9.9 release notes
Junkai Xue [Tue, 16 Nov 2021 22:26:14 +0000 (14:26 -0800)] 
Add 0.9.9 release notes

7 months agoadd take/free instance(s) API (#1899)
xyuanlu [Mon, 15 Nov 2021 19:41:23 +0000 (11:41 -0800)] 
add take/free instance(s) API (#1899)

Create Cluster Maintenance Management service and add API signature and interfaces

7 months agoAdd additional ZK serializer configuration to active ZNRecord compression even the...
Jiajun Wang [Thu, 4 Nov 2021 18:52:05 +0000 (11:52 -0700)] 
Add additional ZK serializer configuration to active ZNRecord compression even the node size is smaller than write size limit.

The property zk.serializer.znrecord.auto-compress.threshold.bytes defines a threshold of ZNRecord size in bytes that the ZK serializer starts to auto compress the ZNRecord for write requests if it's size exceeds the threshold.
If the threshold is not configured or exceed ZKRecord write size limit, default value zk.serializer.znrecord.write.size.limit.bytes (if configured) or 1MB (if no configuration) will be applied.

7 months agoFix log format in instanceValidationUtil (#1894)
xyuanlu [Mon, 1 Nov 2021 20:11:51 +0000 (13:11 -0700)] 
Fix log format in instanceValidationUtil (#1894)

* fix log format in instanceValidationUtil

9 months agoFix test failure TestInstancesAccessor (#1881)
Junkai Xue [Mon, 27 Sep 2021 20:23:23 +0000 (13:23 -0700)] 
Fix test failure TestInstancesAccessor (#1881)

9 months agoFix inconsistent behavior beween batch stoppable and single stoppable API (#1879)
Junkai Xue [Fri, 24 Sep 2021 17:46:23 +0000 (10:46 -0700)] 
Fix inconsistent behavior beween batch stoppable and single stoppable API (#1879)

9 months agoFix TestClusterAggregateMetrics (#1842)
Neal Sun [Tue, 21 Sep 2021 23:15:55 +0000 (16:15 -0700)] 
Fix TestClusterAggregateMetrics (#1842)

Fix TestClusterAggregateMetrics

9 months agoImprove Purge Offline Instances API (#1870)
Neal Sun [Tue, 21 Sep 2021 23:15:16 +0000 (16:15 -0700)] 
Improve Purge Offline Instances API (#1870)

This commit improves the API such that it will also purge any incomplete instance data, such as instance path without InstanceConfig or ParticipantHistory.

9 months agoFix adding a task to a job after deleting old tasks (#1875)
Ali Reza Zamani Zadeh Najari [Fri, 17 Sep 2021 19:56:20 +0000 (12:56 -0700)] 
Fix adding a task to a job after deleting old tasks (#1875)

In this commit, the issue of dynamically adding a task to a job
in which some of its tasks have been deleted before is being
addressed.

9 months agoFix flaky test testClusterFreezeMode (#1871)
Huizhi Lu [Tue, 14 Sep 2021 18:15:55 +0000 (11:15 -0700)] 
Fix flaky test testClusterFreezeMode (#1871)

The test fails randomly. Root cause is the test used a random cluster from the clusters set which has super clusters and task cluster, so the cluster could be a task cluster and then the test fails. Freeze mode does not apply to task framework.

This commit fixes it by changing the test cluster name with a fixed name TestClusters_0.

9 months agoFix error partition blocks load rebalance (#1867)
Junkai Xue [Tue, 14 Sep 2021 02:43:24 +0000 (19:43 -0700)] 
Fix error partition blocks load rebalance (#1867)

There are three things fixed:
1. State priority is higher priority with smaller number.
2. When only downward is allowed, any non downward STs must be removed from message and throttled.
3. Even for downward STs should be respect to the throttling as backward compatible behavior.
4. Fix test for TestErrorReplicaPersist

9 months agoChange our release voting process
Junkai Xue [Fri, 10 Sep 2021 00:06:07 +0000 (17:06 -0700)] 
Change our release voting process

Acked from our Apache Helix VP, we will count committers' vote as binding vote for release.

9 months agoAdd input validation for getJobContext (#1864)
xyuanlu [Wed, 8 Sep 2021 21:05:03 +0000 (14:05 -0700)] 
Add input validation for getJobContext (#1864)

* add validation for getJobContext

9 months agoFix a potential race condition in MBean unregister logic.
Jiajun Wang [Wed, 1 Sep 2021 17:43:07 +0000 (10:43 -0700)] 
Fix a potential race condition in MBean unregister logic.

The unregister method should relies on the MBeanServer class to validate if the target MBean has been unregistered or not to avoid race condition.

9 months agoUpgrade mockito lib version to avoid test case failure due to mock mechanism legacy...
Jiajun Wang [Tue, 31 Aug 2021 21:01:10 +0000 (14:01 -0700)] 
Upgrade mockito lib version to avoid test case failure due to mock mechanism legacy issues.

9 months agoImprove TestControllerLeadershipChange test logic to tolerate longer delay when test...
Jiajun Wang [Tue, 31 Aug 2021 17:24:05 +0000 (10:24 -0700)] 
Improve TestControllerLeadershipChange test logic to tolerate longer delay when test runs. (#1853)

Change the assert condition to consider real test script execute delay to avoid test failure due to slow test runs.

9 months agoRemove unpublished 0.9.9
Junkai Xue [Wed, 1 Sep 2021 19:07:53 +0000 (12:07 -0700)] 
Remove unpublished 0.9.9

9 months agoRemove archived 0.6 & 0.7 version docs
Junkai Xue [Wed, 1 Sep 2021 19:05:17 +0000 (12:05 -0700)] 
Remove archived 0.6 & 0.7 version docs

9 months agoUpdate Menu Bar
Junkai Xue [Wed, 1 Sep 2021 18:36:04 +0000 (11:36 -0700)] 
Update Menu Bar

9 months agoFix management mode history duplicate recording (#1846)
Huizhi Lu [Wed, 1 Sep 2021 17:00:34 +0000 (10:00 -0700)] 
Fix management mode history duplicate recording (#1846)

The management mode history has duplicate entries. It does not impact the normal function, but it's good to get it fixed to avoid confusion. This commit fixes the issue by adding a check for the status in metadata store and the calculated status.

10 months agoRevert "Improve TestControllerLeadershipChange test logic to tolerate longer delay...
Jiajun Wang [Tue, 31 Aug 2021 20:02:33 +0000 (13:02 -0700)] 
Revert "Improve TestControllerLeadershipChange test logic to tolerate longer delay when test runs. (#1853)" (#1860)

This reverts commit a570d0566c42942b6154cb84a3d44f864fde37f0.

10 months agoImprove TestControllerLeadershipChange test logic to tolerate longer delay when test...
Jiajun Wang [Tue, 31 Aug 2021 17:24:05 +0000 (10:24 -0700)] 
Improve TestControllerLeadershipChange test logic to tolerate longer delay when test runs. (#1853)

Change the assert condition to consider real test script execute delay to avoid test failure due to slow test runs.

10 months agoThrow exception when query partition assignment in Maintenance mode (#1855)
xyuanlu [Mon, 30 Aug 2021 18:25:34 +0000 (11:25 -0700)] 
Throw exception when query partition assignment in Maintenance mode (#1855)

Throw exception for partitionAssignment when cluster in Maintenance mode.

10 months agoDisable delayed rebalance as default for partitionAssignment (#1852)
xyuanlu [Mon, 30 Aug 2021 18:25:06 +0000 (11:25 -0700)] 
Disable delayed rebalance as default for partitionAssignment (#1852)

Disable delayed rebalance as default for partitionAssignment.

10 months agoUse activate/DeactivateInstances as keyword in PartitionAssignment API (#1850)
xyuanlu [Tue, 24 Aug 2021 21:23:45 +0000 (14:23 -0700)] 
Use activate/DeactivateInstances as keyword in PartitionAssignment API (#1850)

Use activate/DeactivateInstances as keyword in PartitionAssignment API.

10 months agoAdd stop server wait time to be 10 seconds in MockMetadataStoreDirectoryServer to...
Jiajun Wang [Tue, 24 Aug 2021 00:42:20 +0000 (17:42 -0700)] 
Add stop server wait time to be 10 seconds in MockMetadataStoreDirectoryServer to avoid test failure. (#1848)

This change aims to reduce the unexpected test failure due to http endpoint in use. The additional timeout shall help the test terminate server instances gracefully.

10 months agoCheck server field state before shutdown to avoid NPE in MockMetadataStoreDirectorySe...
Jiajun Wang [Mon, 23 Aug 2021 23:04:20 +0000 (16:04 -0700)] 
Check server field state before shutdown to avoid NPE in MockMetadataStoreDirectoryServer. (#1847)

Check server field state before shutdown to avoid NPE in MockMetadataStoreDirectoryServer.

10 months agoRemove duplicated notice content
Junkai Xue [Thu, 19 Aug 2021 19:55:36 +0000 (12:55 -0700)] 
Remove duplicated notice content

10 months agoUpdate Lisence and Notice
Junkai Xue [Thu, 19 Aug 2021 19:53:38 +0000 (12:53 -0700)] 
Update Lisence and Notice

10 months agoAdd TF Available Threads Metrics (#1834)
Neal Sun [Mon, 16 Aug 2021 18:22:49 +0000 (11:22 -0700)] 
Add TF Available Threads Metrics (#1834)

Add metrics about Task Framework available threads in the cluster per job type.

10 months agoFix test logic for testExternalViewDiffFromTargetExternalView (#1835)
Junkai Xue [Mon, 9 Aug 2021 18:44:07 +0000 (11:44 -0700)] 
Fix test logic for testExternalViewDiffFromTargetExternalView (#1835)

10 months agoStabilize TestInstancesAccessor (#1828)
Ali Reza Zamani Zadeh Najari [Thu, 5 Aug 2021 18:35:01 +0000 (11:35 -0700)] 
Stabilize TestInstancesAccessor (#1828)

TestInstancesAccessor is unstable because the cluster might not be
stable while the test runs the stoppable check and cluster config and
instance config can be missing. In this commit, the test waits until the
cluster config and instance config get created and then proceeds for
the stoppable checks.

10 months agoFix the JavaDoc about transition priority. (#1831)
Jiajun Wang [Wed, 4 Aug 2021 19:33:45 +0000 (12:33 -0700)] 
Fix the JavaDoc about transition priority. (#1831)

Fix the JavaDoc about transition priority.
In addition, update several old code style for simplicity.

10 months agoFix TestZkConnectionLost (#1824)
Neal Sun [Tue, 3 Aug 2021 17:57:12 +0000 (10:57 -0700)] 
Fix TestZkConnectionLost (#1824)

Fix TestZkConnectionLost by adding longer connection timeout and fixing logic that are incorrect.

Co-authored-by: Neal Sun <nesun@nesun-mn1.linkedin.biz>
10 months agoAdd response metadata to response header for partitionAssignment (#1797)
xyuanlu [Tue, 3 Aug 2021 17:53:59 +0000 (10:53 -0700)] 
Add response metadata to response header for partitionAssignment (#1797)

Add response metadata to response header for partitionAssignment.

11 months agoRename property CLUSTER_PAUSE to CLUSTER_FREEZE in PauseSignal (#1820)
Huizhi Lu [Fri, 16 Jul 2021 03:26:11 +0000 (20:26 -0700)] 
Rename property CLUSTER_PAUSE to CLUSTER_FREEZE in PauseSignal (#1820)

Rename property CLUSTER_PAUSE to CLUSTER_FREEZE in PauseSignal.

11 months agoRename live instance status PAUSED to FROZEN (#1819)
Huizhi Lu [Thu, 15 Jul 2021 21:08:08 +0000 (14:08 -0700)] 
Rename live instance status PAUSED to FROZEN (#1819)

Since cluster freeze mode is naming as "FREEZE", live instance status should be named to "FROZEN" accordingly.
This commit renames the enum live instance status PAUSED to FROZEN. No logic change.

11 months agoRefactor freeze mode naming and getStatus default value (#1818)
Huizhi Lu [Thu, 15 Jul 2021 02:32:27 +0000 (19:32 -0700)] 
Refactor freeze mode naming and getStatus default value (#1818)

Rename CLUSTER_PAUSE with CLUSTER_FREEZE mode.
Change default return value for LiveInstance#getStatus(): null -> NORMAL. And fix tests accordingly.

11 months agoAdd integration tests for cluster freeze mode (#1816)
Huizhi Lu [Wed, 14 Jul 2021 22:10:33 +0000 (15:10 -0700)] 
Add integration tests for cluster freeze mode (#1816)

Integration tests are needed to cover the scenarios for the cluster freeze mode.
This commit adds integration tests for cluster freeze mode:
a. freeze cluster when there are pending state transition messages
b. handle new session when frozen - it should be reset and then frozen
c. restart participants when frozen - it should be reset and then frozen
d. reset partition when frozen
f. unfreeze cluster

11 months agoImplement Participant Freeze Process (#1812)
Huizhi Lu [Wed, 14 Jul 2021 19:22:19 +0000 (12:22 -0700)] 
Implement Participant Freeze Process (#1812)

After controller sends a freeze message to participant, participant needs to process the freeze message and execute the freeze request. It will mark the live instance as "frozen" internally in memory and in live instance znode.

For session change during freeze, handle new session won't do anything, except creating the live instance znode.
To unfreeze, if there is session change during the freeze period, state model state will be synced and current states will be carried over. Then live instance status field is removed.

11 months agoAdd message generation logic for management pipeline (#1803)
Huizhi Lu [Tue, 29 Jun 2021 05:53:46 +0000 (22:53 -0700)] 
Add message generation logic for management pipeline (#1803)

In cluster freeze mode, controller sends freeze/unfreeze and pending ST cancellation messages to participants.
In this commit, the existing message generation stage is leveraged to create the ST cancellation messages.
Best possible out is built by copying the state map from current state for generating cancellation messages.
For freeze/unfreeze messages, the logic is added in ManagementMessageGenerationPhase.
The existing MessageDispatchStage is also used for dispatching all the messages.

11 months agoAdd REST APIs for management mode (#1807)
Huizhi Lu [Tue, 29 Jun 2021 00:28:22 +0000 (17:28 -0700)] 
Add REST APIs for management mode (#1807)

This commit adds JAVA and REST APIs to set cluster freeze mode and get the management mode status

11 months agoCheck cluster management mode status (#1798)
Huizhi Lu [Tue, 22 Jun 2021 18:22:49 +0000 (11:22 -0700)] 
Check cluster management mode status (#1798)

Controller needs to know the participant freeze status so it can send freeze/unfreeze messages for entering/exiting freeze mode. The status check is done in management mode stage.

This commit adds methods to check cluster management mode status, and update the status and history accordingly.

11 months agoAdd message util to create messages (#1796)
Huizhi Lu [Tue, 15 Jun 2021 04:32:25 +0000 (21:32 -0700)] 
Add message util to create messages (#1796)

Message creation methods are private in message generation phase. Management mode stage will also need message generation methods to create ST cancellation and participant status change messages.
Message util will help with the purposes.

This commit moves the common message creation logic to a message util so multiple stages can reuse the code.

11 months agoMove pause and maintenance handling out of controller (#1793)
Huizhi Lu [Sat, 12 Jun 2021 08:00:25 +0000 (01:00 -0700)] 
Move pause and maintenance handling out of controller (#1793)

With management mode pipeline, the pause and maintenance signals handling logic should be moved out of the onControllerChange() and moved to the management mode pipeline.

This commit handles pause/maintenance signals enable/disable and update cluster status accordingly.

11 months agoAdd management mode pipeline registry and switch logic (#1769)
Huizhi Lu [Thu, 10 Jun 2021 04:01:30 +0000 (21:01 -0700)] 
Add management mode pipeline registry and switch logic (#1769)

Management Mode Pipeline will help check the cluster status and determine whether the default pipelines can be run.
One use case is, it will help controller to decide when it can exit the cluster freeze mode.

This commit adds management mode pipeline and logic to switch from/to the default resource/task pipelines.

11 months agoAdd model to record history and status of management mode (#1771)
Huizhi Lu [Wed, 9 Jun 2021 21:54:14 +0000 (14:54 -0700)] 
Add model to record history and status of management mode (#1771)

Management mode operation history needs to be persisted to the controller history znode. The status of IN_PROGRESS or COMPLETED is recorded in the temporary status znode: /{clusterName}/STATUS/CLUSTER/{clusterName}.
This commit adds data model and methods to record the status and history for management mode.

11 months agoAdd java api for enable/disable cluster pause mode (#1740)
Huizhi Lu [Wed, 19 May 2021 22:45:11 +0000 (15:45 -0700)] 
Add java api for enable/disable cluster pause mode (#1740)

Cluster pause mode feature is going to be added. This commit adds java api to set cluster pause mode: void setClusterManagementMode(ClusterManagementModeRequest request);

11 months agoStabilize the ZkClient monitor tests. (#1813)
Jiajun Wang [Thu, 15 Jul 2021 22:04:05 +0000 (15:04 -0700)] 
Stabilize the ZkClient monitor tests. (#1813)

Stabilize the ZkClient monitor tests.

11 months agoTurn on the computation of rebalance type discard throttling turned or not (#1817)
Junkai Xue [Wed, 14 Jul 2021 22:59:08 +0000 (15:59 -0700)] 
Turn on the computation of rebalance type discard throttling turned or not (#1817)

12 months agoFix versions bump up for 1.0.3
Junkai Xue [Tue, 29 Jun 2021 22:03:28 +0000 (15:03 -0700)] 
Fix versions bump up for 1.0.3

12 months agoBump ivy version from 1.0.2 SNAPSHOT to 1.0.3 SNAPSHOT
Junkai Xue [Fri, 25 Jun 2021 19:12:28 +0000 (12:12 -0700)] 
Bump ivy version from 1.0.2 SNAPSHOT to 1.0.3 SNAPSHOT

12 months agoAdd failure message for TestClusterAccessor (#1794)
xyuanlu [Mon, 14 Jun 2021 18:12:52 +0000 (11:12 -0700)] 
Add failure message for TestClusterAccessor  (#1794)

* make all test run on by one
* add message when audit log mismatch

12 months agoSupport currentState format for partitionAssignment (#1787)
xyuanlu [Sat, 12 Jun 2021 01:25:59 +0000 (18:25 -0700)] 
Support currentState format for partitionAssignment (#1787)

Support currentState format for partitionAssignment.

12 months agoAdd a badge to track flaky tests. (#1791)
Jiajun Wang [Fri, 11 Jun 2021 07:59:54 +0000 (00:59 -0700)] 
Add a badge to track flaky tests. (#1791)

12 months agoFix MaintenanceRecoveryStage Hanging (#1792)
Junkai Xue [Fri, 11 Jun 2021 00:45:03 +0000 (17:45 -0700)] 
Fix MaintenanceRecoveryStage Hanging (#1792)

The mainteance recovery stage should be in the order after IntermediateStage since it requires the output from IntermediateStage.

12 months agoFix import code style in PropertyPathBuilder. (#1790)
Jiajun Wang [Wed, 9 Jun 2021 23:37:42 +0000 (16:37 -0700)] 
Fix import code style in PropertyPathBuilder. (#1790)

This PR fixes the import style of the PropertyPathBuilder class.

12 months agoUpdate the version in website
Junkai Xue [Tue, 8 Jun 2021 19:45:13 +0000 (12:45 -0700)] 
Update the version in website

12 months agoUpdate release note
dasahcc [Tue, 8 Jun 2021 19:28:45 +0000 (12:28 -0700)] 
Update release note

12 months agoChange partition status in Helix UI to be colorblind-friendly (#1785)
Ramin Bashizade [Mon, 7 Jun 2021 19:24:07 +0000 (12:24 -0700)] 
Change partition status in Helix UI to be colorblind-friendly (#1785)

This commit changes the partition status colors in Helix UI from
green/orange to blue(#2196F3)/black(#212121) to be more colorblind-
friendly. The colors are chosen such that they have a contrast ratio
of at least 3:1 against each other and the background. Moreover, a
checkmark is placed in the icon for ready status, and an exclamtion
point for the not-ready status.

12 months agoNew REST api partitionAssignment -- return potential assignment given cluster change...
xyuanlu [Fri, 4 Jun 2021 23:25:32 +0000 (16:25 -0700)] 
New REST api partitionAssignment -- return potential assignment given cluster change (#1747)

New REST api partitionAssignment -- return potential assignment given cluster change

12 months agoAdd cloud set/remove to cluster setup (#1783)
Ali Reza Zamani Zadeh Najari [Fri, 4 Jun 2021 23:07:34 +0000 (16:07 -0700)] 
Add cloud set/remove to cluster setup (#1783)

In this commit, the CloudConfig set and remove APIs have been added
to the cluster setup.

12 months agoEnforce id field in Helix rest to update resource config (#1672)
Ali Reza Zamani Zadeh Najari [Thu, 3 Jun 2021 19:23:57 +0000 (12:23 -0700)] 
Enforce id field in Helix rest to update resource config (#1672)

In this commit, in the update resource config REST call, the id field
will be validated to avoid creation of ZNodes that does not have any
id.

12 months agoGracefully handle interruptions in the Helix logic. (#1779)
Jiajun Wang [Wed, 2 Jun 2021 23:13:50 +0000 (16:13 -0700)] 
Gracefully handle interruptions in the Helix logic. (#1779)

This PR aims to address the problem that the interrupt signal is swallowed by the catch logic so the thread is not really interrupted. This may cause leakage or race conditions.

12 months agoGet rid of non-official ZK error code to avoid NPEs. (#1778)
Jiajun Wang [Wed, 2 Jun 2021 23:13:22 +0000 (16:13 -0700)] 
Get rid of non-official ZK error code to avoid NPEs. (#1778)

This PR removes the non-official ZK error codes that are returned by the Helix ZkClient. The original design was made for differentiating the failure cases. However, that design caused unexpected NPE when most of Helix's logic relies on the Zookeeper KeeperException.Code class to identify the error types.

13 months agoRemove unused field in ZKHelixDataAccessor - code clean with no logic change (#1764)
xyuanlu [Tue, 1 Jun 2021 21:34:51 +0000 (14:34 -0700)] 
Remove unused field in ZKHelixDataAccessor - code clean with no logic change (#1764)

Remove unused field in ZKHelixDataAccessor.

13 months agoAdd a Waged rebalancer util api that do not need raw zk address (#1756)
xyuanlu [Tue, 1 Jun 2021 18:46:18 +0000 (11:46 -0700)] 
Add a Waged rebalancer util api that do not need raw zk address (#1756)

13 months agoRefactor/clean up code without logic change (#1760)
Junkai Xue [Wed, 26 May 2021 23:44:46 +0000 (16:44 -0700)] 
Refactor/clean up code without logic change (#1760)

This commmit contains:
1. Remove unused functions and logic
2. Combine the Resource/Task message generation into one stage, since they are both relying on best possible result.

13 months agoAdd test cases for replica level throttling (#1754)
Junkai Xue [Wed, 26 May 2021 19:57:08 +0000 (12:57 -0700)] 
Add test cases for replica level throttling (#1754)

This commit contains the test skeleton and multiple test cases for:
1. Sinlge top state throttling/non-throttling
2. Multi top states throttling/non-throttling

13 months ago[Replica Level Throttle] Make Pipeline in a correct order and fixes tests (#1750)
Junkai Xue [Tue, 25 May 2021 17:19:08 +0000 (10:19 -0700)] 
[Replica Level Throttle] Make Pipeline in a correct order and fixes tests (#1750)

* Make Pipeline in a correct order and fixes tests

1. Make pipeline running in a correct order to process computation
2. Add "DROPPED" case in the mapping to reflect the real case.
3. Fixes test cases.

13 months agoApplying per replica logic for entire stage #1724
Junkai Xue [Sun, 16 May 2021 21:41:34 +0000 (14:41 -0700)] 
Applying per replica logic for entire stage #1724

This commit contains:

1.Per resource looping with dynamic rebalance type computation and partition level ordering.
2.Let entire stage works against per replica throttling logic.
3.Move intermediate state compute logic to a centralized place.

13 months agoApply per replica level throttling logic to Recovery/Load Rebalance and PendingMessag...
Junkai Xue [Thu, 6 May 2021 20:22:48 +0000 (13:22 -0700)] 
Apply per replica level throttling logic to Recovery/Load Rebalance and PendingMessage #1719

This commit contains change of:

Recovery/Load Rebalance and pending messages charge adapting per replica throttling.
Change partition level comparator based on 1) missed top states, 2) missed active replicas and 3) ideal state matching or not.

13 months agoChange throttling logic to per message (#1714)
Junkai Xue [Wed, 28 Apr 2021 20:20:09 +0000 (13:20 -0700)] 
Change throttling logic to per message (#1714)

Apply the logic for throttling with per message quota charge.

13 months ago[Replica Level Throttle] Add per replica rebalance type compute logic (#1703)
Junkai Xue [Fri, 23 Apr 2021 21:58:48 +0000 (14:58 -0700)] 
[Replica Level Throttle] Add per replica rebalance type compute logic (#1703)

* Add per replica rebalance type compute logic

Three functions added: 1) rebalance type computation required state.
                       2) rebalance type per message
                       3) message sorting rules and comparators to determine which message to apply first.

13 months agoRemove task requested state (#1723)
xyuanlu [Tue, 1 Jun 2021 17:34:03 +0000 (10:34 -0700)] 
Remove task requested state (#1723)

Remove requested state update in task framework