Modified: helix/site-content/1.0.3-docs/tutorial_cloud_support.html URL: http://svn.apache.org/viewvc/helix/site-content/1.0.3-docs/tutorial_cloud_support.html?rev=1900255&r1=1900254&r2=1900255&view=diff ============================================================================== --- helix/site-content/1.0.3-docs/tutorial_cloud_support.html (original) +++ helix/site-content/1.0.3-docs/tutorial_cloud_support.html Mon Apr 25 08:18:23 2022 @@ -1,7 +1,13 @@ <!DOCTYPE html> + + + + + + <!-- - Generated by Apache Maven Doxia at 2022-04-23 Rendered using Reflow Maven Skin 2.0.0-SNAPSHOT (https://andriusvelykis.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2022-04-25 Rendered using Reflow Maven Skin 2.0.0 (https://olamy.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> @@ -29,24 +35,31 @@ <![endif]--> - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3211522-12']); - _gaq.push(['_trackPageview']); - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> + +<!-- Matomo --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '15']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<!-- End Matomo Code --> + </head> <body class="page-tutorial_cloud_support project-103-docs" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target"> + <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> @@ -119,7 +132,7 @@ <li><a href="./" title="Release 1.0.3">Release 1.0.3</a></li> <li class="divider">/</li> <li>Tutorial - Cloud Support</li> - <li class="publishDate version-date pull-right">Last Published: 2022-04-23</li> + <li class="publishDate version-date pull-right">Last Published: 2022-04-25</li> </ul> </div> </header> @@ -209,9 +222,9 @@ under the License. <p>Helix enhanced current cluster creation REST API as well as Java API with extra fields that represent cloud related input. For example, in the following modified <code>createCluster</code> API, <code>addCloudConfig</code> is a Boolean value denotes whether to create with cloud config, and the <code>cloudConfigManifest</code> is the cloud config string, which will be converted to a Znode record.</p> <div class="source"> <pre><code>@PUT - @Path("{clusterId}") - public Response createCluster(@PathParam("clusterId") String clusterId, @DefaultValue("false") @QueryParam("recreate") String recreate, - @DefaultValue("false") @QueryParam("addCloudConfig") String addCloudConfig, String cloudConfigManifest) + @Path("{clusterId}") + public Response createCluster(@PathParam("clusterId") String clusterId, @DefaultValue("false") @QueryParam("recreate") String recreate, + @DefaultValue("false") @QueryParam("addCloudConfig") String addCloudConfig, String cloudConfigManifest) </code></pre> </div> <p>Besides the enhanced cluster creation API, Helix also provides a set of cloud specific APIs in Java and REST that handles the get/add/update of cloud config.</p> @@ -219,15 +232,15 @@ under the License. <li>Create cluster and add meanwhile cloud config related information to ZK.</li> </ul> <div class="source"> - <pre><code>$ curl -X PUT -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster?addCloudConfig=true -d ' + <pre><code>$ curl -X PUT -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster?addCloudConfig=true -d ' { - "simpleFields" : + "simpleFields" : { - "CLOUD_ENABLED" : "true", - "CLOUD_PROVIDER": "AWS", - "CLOUD_ID" : "12345" - "CLOUD_INFO_SOURCE": {"http://169.254.169.254/"} - "CLOUD_INFO_PROCESSOR_NAME": "AWSCloudInformationProcesser" + "CLOUD_ENABLED" : "true", + "CLOUD_PROVIDER": "AWS", + "CLOUD_ID" : "12345" + "CLOUD_INFO_SOURCE": {"http://169.254.169.254/"} + "CLOUD_INFO_PROCESSOR_NAME": "AWSCloudInformationProcesser" } }' </code></pre> @@ -236,15 +249,15 @@ under the License. <li>Add cloud config to an existing cluster</li> </ul> <div class="source"> - <pre><code>$ curl -X PUT -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster/cloudconfig -d ' + <pre><code>$ curl -X PUT -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster/cloudconfig -d ' { - "simpleFields" : + "simpleFields" : { - "CLOUD_ENABLED" : "true", - "CLOUD_PROVIDER": "AWS", - "CLOUD_ID" : "12345" - "CLOUD_INFO_SOURCE": {"http://169.254.169.254/"} - "CLOUD_INFO_PROCESSOR_NAME": "AWSCloudInformationProcesser" + "CLOUD_ENABLED" : "true", + "CLOUD_PROVIDER": "AWS", + "CLOUD_ID" : "12345" + "CLOUD_INFO_SOURCE": {"http://169.254.169.254/"} + "CLOUD_INFO_PROCESSOR_NAME": "AWSCloudInformationProcesser" } }' </code></pre> @@ -267,10 +280,10 @@ under the License. <li>Update the cloud config of a cluster</li> </ul> <div class="source"> - <pre><code>$ curl -X POST -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster/cloudconfig?command=update -d ' + <pre><code>$ curl -X POST -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster/cloudconfig?command=update -d ' { - "simpleFields" : { - "CLOUD_ID" : "12345" + "simpleFields" : { + "CLOUD_ID" : "12345" } }' </code></pre> @@ -279,10 +292,10 @@ under the License. <li>Delete some of the fields in the cloud config</li> </ul> <div class="source"> - <pre><code>$ curl -X POST -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster/cloudconfig?command=delete -d ' + <pre><code>$ curl -X POST -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster/cloudconfig?command=delete -d ' { - "simpleFields" : { - "CLOUD_ID" : "12345" + "simpleFields" : { + "CLOUD_ID" : "12345" } }' </code></pre> @@ -361,19 +374,19 @@ public interface CloudInstanceInformatio <p>To make the participant auto registration work, users would need to make sure their cluster config is set properly. The most important one is the <code>allowParticipantAutoJoin</code> field in cluster config.</p> <div class="source"> <pre><code>{ - "id": "clusterName", - "listFields": {}, - "mapFields": {}, - "simpleFields": { + "id": "clusterName", + "listFields": {}, + "mapFields": {}, + "simpleFields": { ...... - "allowParticipantAutoJoin": "true" + "allowParticipantAutoJoin": "true" ...... } } </code></pre> </div> <p>This field is used in participant manager logic as a prerequisite for participants to do auto registration. The detailed logic is shown in the following flow chart. The related code is in <a class="externalLink" href="https://github.com/apache/helix/blob/master/helix-core/src/main/java/org/apache/helix/manager/zk/ParticipantManager.java">Participant Manager</a>.</p> - <p><img src="./images/ParticipantAutoRegistrationLogic.png" alt="Participant Auto Registration Logic" /></p> + <p><img src="./images/ParticipantAutoRegistrationLogic.png" alt="Participant Auto Registration Logic"></p> <p>If the participant decides that it should do auto registration based on the config, it will first query cloud config and decide what environment it is in. Based on this information, the participant will call the corresponding cloud instance information processor. Then with all the information, especially the domain information, the participant can auto register to the cluster without any manual effort.</p> </section> </section> @@ -447,7 +460,7 @@ public interface CloudInstanceInformatio <div class="span12"> <p class="pull-right"><a href="#">Back to top</a></p> <p class="copyright">Copyright ©2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> - <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="https://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p> + <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> maintained by <a href="https://twitter.com/olamy" target="_blank" title="Olivier Lamy">Olivier Lamy</a>.</p> <div class="row span16"><div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div> <a href="https://helix.apache.org/1.0.3-docs/privacy-policy.html">Privacy Policy</a>
Modified: helix/site-content/1.0.3-docs/tutorial_controller.html URL: http://svn.apache.org/viewvc/helix/site-content/1.0.3-docs/tutorial_controller.html?rev=1900255&r1=1900254&r2=1900255&view=diff ============================================================================== --- helix/site-content/1.0.3-docs/tutorial_controller.html (original) +++ helix/site-content/1.0.3-docs/tutorial_controller.html Mon Apr 25 08:18:23 2022 @@ -1,7 +1,13 @@ <!DOCTYPE html> + + + + + + <!-- - Generated by Apache Maven Doxia at 2022-04-23 Rendered using Reflow Maven Skin 2.0.0-SNAPSHOT (https://andriusvelykis.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2022-04-25 Rendered using Reflow Maven Skin 2.0.0 (https://olamy.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> @@ -29,24 +35,31 @@ <![endif]--> - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3211522-12']); - _gaq.push(['_trackPageview']); - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> + +<!-- Matomo --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '15']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<!-- End Matomo Code --> + </head> <body class="page-tutorial_controller project-103-docs" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target"> + <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> @@ -119,7 +132,7 @@ <li><a href="./" title="Release 1.0.3">Release 1.0.3</a></li> <li class="divider">/</li> <li>Tutorial - Controller</li> - <li class="publishDate version-date pull-right">Last Published: 2022-04-23</li> + <li class="publishDate version-date pull-right">Last Published: 2022-04-25</li> </ul> </div> </header> @@ -348,7 +361,7 @@ manager.connect(); <div class="span12"> <p class="pull-right"><a href="#">Back to top</a></p> <p class="copyright">Copyright ©2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> - <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="https://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p> + <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> maintained by <a href="https://twitter.com/olamy" target="_blank" title="Olivier Lamy">Olivier Lamy</a>.</p> <div class="row span16"><div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div> <a href="https://helix.apache.org/1.0.3-docs/privacy-policy.html">Privacy Policy</a> Modified: helix/site-content/1.0.3-docs/tutorial_customized_view.html URL: http://svn.apache.org/viewvc/helix/site-content/1.0.3-docs/tutorial_customized_view.html?rev=1900255&r1=1900254&r2=1900255&view=diff ============================================================================== --- helix/site-content/1.0.3-docs/tutorial_customized_view.html (original) +++ helix/site-content/1.0.3-docs/tutorial_customized_view.html Mon Apr 25 08:18:23 2022 @@ -1,7 +1,13 @@ <!DOCTYPE html> + + + + + + <!-- - Generated by Apache Maven Doxia at 2022-04-23 Rendered using Reflow Maven Skin 2.0.0-SNAPSHOT (https://andriusvelykis.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2022-04-25 Rendered using Reflow Maven Skin 2.0.0 (https://olamy.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> @@ -29,24 +35,31 @@ <![endif]--> - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3211522-12']); - _gaq.push(['_trackPageview']); - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> + +<!-- Matomo --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '15']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<!-- End Matomo Code --> + </head> <body class="page-tutorial_customized_view project-103-docs" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target"> + <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> @@ -119,7 +132,7 @@ <li><a href="./" title="Release 1.0.3">Release 1.0.3</a></li> <li class="divider">/</li> <li>Tutorial - Customized View</li> - <li class="publishDate version-date pull-right">Last Published: 2022-04-23</li> + <li class="publishDate version-date pull-right">Last Published: 2022-04-25</li> </ul> </div> </header> @@ -152,7 +165,7 @@ under the License. </div> <p>Helix supports users to define their own per partition states that are different from the states appeared in the state model. These states are called customized states. Helix also provides aggregation function for these per partition states across all participants to facilitate the use of them. The aggregated customized state result is called customized view. Usually users would only need to listen on the customized view change to capture customized state updates.</p> <p>The relationship between customized states and customized view is very similar to that between current states and external view. Helix controller uses similar logic to aggregate external view and customized view. But the two views are designed for different purposes. External view is mainly used to represent Helix state transition status, while customized view is to record users' own state status. This tutorial provides information for users to get started with using customized view, which needs more user input than external view.</p> - <p>The following figure shows the high level architecture of customized view aggregation. <img src="./images/CustomizedViewSystemArchitecture.jpeg" alt="CustomizedViewSystemArchitecture" /></p> + <p>The following figure shows the high level architecture of customized view aggregation. <img src="./images/CustomizedViewSystemArchitecture.jpeg" alt="CustomizedViewSystemArchitecture"></p> <section> <h3 id="Terminologies">Terminologies</h3> <ul> @@ -224,15 +237,15 @@ under the License. </div> <p>Every JAVA API has a corresponding REST API. For example, the function <code>addCustomizedStateConfig</code> can be performed by the following REST call.</p> <div class="source"> - <pre><code> $curl -X PUT -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster/customized-state-config -d ' + <pre><code> $curl -X PUT -H "Content-Type: application/json" http://localhost:1234/admin/v2/clusters/myCluster/customized-state-config -d ' { - "id" : "CustomizedStateConfig", - "listFields" : { - "AGGREGATION_ENABLED_TYPES" : ["CUSTOMIZED_STATE_TYPE_0", "CUSTOMIZED_STATE_TYPE_1""] + "id" : "CustomizedStateConfig", + "listFields" : { + "AGGREGATION_ENABLED_TYPES" : ["CUSTOMIZED_STATE_TYPE_0", "CUSTOMIZED_STATE_TYPE_1""] }, - "simpleFields" : { + "simpleFields" : { }, - "mapFields" : { + "mapFields" : { } }' </code></pre> @@ -274,40 +287,40 @@ routingTableProvider = new RoutingTableP <div class="source"> <pre><code>P0: { - "id": "MyResource", - "listFields": {}, - "mapFields": { - "MyResource_0": { - "CURRENT_STATE": "STATE_NAME_1", - "PREVIOUS_STATE": "STATE_NAME_0", - "START_TIME": "1580221789100", - "END_TIME": "1580221835197", + "id": "MyResource", + "listFields": {}, + "mapFields": { + "MyResource_0": { + "CURRENT_STATE": "STATE_NAME_1", + "PREVIOUS_STATE": "STATE_NAME_0", + "START_TIME": "1580221789100", + "END_TIME": "1580221835197", }, - "MyResource_1": { - "CURRENT_STATE": "STATE_NAME_2", - "PREVIOUS_STATE": "STATE_NAME1", - "START_TIME": "1580221789880", - "END_TIME": "1580221835117" + "MyResource_1": { + "CURRENT_STATE": "STATE_NAME_2", + "PREVIOUS_STATE": "STATE_NAME1", + "START_TIME": "1580221789880", + "END_TIME": "1580221835117" } } } P1: { - "id": "MyResource", - "listFields": {}, - "mapFields": { - "MyResource_0": { - "CURRENT_STATE": "STATE_NAME_2", - "PREVIOUS_STATE": "STATE_NAME_0", - "START_TIME": "1570221125566", - "END_TIME": "15744432835197", + "id": "MyResource", + "listFields": {}, + "mapFields": { + "MyResource_0": { + "CURRENT_STATE": "STATE_NAME_2", + "PREVIOUS_STATE": "STATE_NAME_0", + "START_TIME": "1570221125566", + "END_TIME": "15744432835197", }, - "MyResource_1": { - "CURRENT_STATE": "STATE_NAME_0", - "PREVIOUS_STATE": "STATE_NAME1", - "START_TIME": "1570221723440", - "END_TIME": "1570321835117" + "MyResource_1": { + "CURRENT_STATE": "STATE_NAME_0", + "PREVIOUS_STATE": "STATE_NAME1", + "START_TIME": "1570221723440", + "END_TIME": "1570321835117" } } } @@ -315,16 +328,16 @@ P1: </div> <p>After Helix controller aggregation, the customized view should look like the following:</p> <div class="source"> - <pre><code>{ "id": "MyResource", - "listFields": {}, - "mapFields": { - "MyResource_0": { - "P0": "STATE_NAME_1", - "P1": "STATE_NAME_2" + <pre><code>{ "id": "MyResource", + "listFields": {}, + "mapFields": { + "MyResource_0": { + "P0": "STATE_NAME_1", + "P1": "STATE_NAME_2" }, - "MyResource_1": { - "P0": "STATE_NAME_2", - "P1": "STATE_NAME_0" + "MyResource_1": { + "P0": "STATE_NAME_2", + "P1": "STATE_NAME_0" } } </code></pre> @@ -401,7 +414,7 @@ P1: <div class="span12"> <p class="pull-right"><a href="#">Back to top</a></p> <p class="copyright">Copyright ©2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> - <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="https://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p> + <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> maintained by <a href="https://twitter.com/olamy" target="_blank" title="Olivier Lamy">Olivier Lamy</a>.</p> <div class="row span16"><div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div> <a href="https://helix.apache.org/1.0.3-docs/privacy-policy.html">Privacy Policy</a> Modified: helix/site-content/1.0.3-docs/tutorial_distributed_lock.html URL: http://svn.apache.org/viewvc/helix/site-content/1.0.3-docs/tutorial_distributed_lock.html?rev=1900255&r1=1900254&r2=1900255&view=diff ============================================================================== --- helix/site-content/1.0.3-docs/tutorial_distributed_lock.html (original) +++ helix/site-content/1.0.3-docs/tutorial_distributed_lock.html Mon Apr 25 08:18:23 2022 @@ -1,7 +1,13 @@ <!DOCTYPE html> + + + + + + <!-- - Generated by Apache Maven Doxia at 2022-04-23 Rendered using Reflow Maven Skin 2.0.0-SNAPSHOT (https://andriusvelykis.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2022-04-25 Rendered using Reflow Maven Skin 2.0.0 (https://olamy.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> @@ -29,24 +35,31 @@ <![endif]--> - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3211522-12']); - _gaq.push(['_trackPageview']); - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> + +<!-- Matomo --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '15']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<!-- End Matomo Code --> + </head> <body class="page-tutorial_distributed_lock project-103-docs" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target"> + <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> @@ -119,7 +132,7 @@ <li><a href="./" title="Release 1.0.3">Release 1.0.3</a></li> <li class="divider">/</li> <li>Tutorial - Distributed Lock</li> - <li class="publishDate version-date pull-right">Last Published: 2022-04-23</li> + <li class="publishDate version-date pull-right">Last Published: 2022-04-25</li> </ul> </div> </header> @@ -269,7 +282,7 @@ public interface DistributedLock { </section> <section> <h4 id="Priority_Lock_Workflow">Priority Lock Workflow</h4> - <p>To better visualize the above analysis, we draw the following diagram shows how a client may go through the possible scenarios. <img src="./images/HelixPriorityLockWorkflow.jpeg" alt="HelixPriorityLockWorkflow" /></p> + <p>To better visualize the above analysis, we draw the following diagram shows how a client may go through the possible scenarios. <img src="./images/HelixPriorityLockWorkflow.jpeg" alt="HelixPriorityLockWorkflow"></p> </section> <section> <h4 id="Priority_Lock_Usage">Priority Lock Usage</h4> @@ -321,7 +334,7 @@ public interface DistributedLock { <div class="source"> <pre><code> ZKDistributedNonblockingLock.Builder lockBuilder = new ZKDistributedNonblockingLock.Builder(); lockBuilder.setLockScope(new HelixLockScope(HelixLockScope.LockScopeProperty.CLUSTER, pathKeys)).setZkAddress(ZK_ADDR).setTimeout(3600000L) - .setLockMsg("test lock").setUserId("test Id").setPriority(0).setWaitingTimeout(1000) + .setLockMsg("test lock").setUserId("test Id").setPriority(0).setWaitingTimeout(1000) .setCleanupTimeout(2000).setIsForceful(false) .setLockListener(new LockListener() {@Override public void onCleanupNotification() {}); ZKDistributedNonblockingLock testLock = lockBuilder.build(); @@ -400,7 +413,7 @@ public interface DistributedLock { <div class="span12"> <p class="pull-right"><a href="#">Back to top</a></p> <p class="copyright">Copyright ©2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> - <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="https://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p> + <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> maintained by <a href="https://twitter.com/olamy" target="_blank" title="Olivier Lamy">Olivier Lamy</a>.</p> <div class="row span16"><div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div> <a href="https://helix.apache.org/1.0.3-docs/privacy-policy.html">Privacy Policy</a> Modified: helix/site-content/1.0.3-docs/tutorial_health.html URL: http://svn.apache.org/viewvc/helix/site-content/1.0.3-docs/tutorial_health.html?rev=1900255&r1=1900254&r2=1900255&view=diff ============================================================================== --- helix/site-content/1.0.3-docs/tutorial_health.html (original) +++ helix/site-content/1.0.3-docs/tutorial_health.html Mon Apr 25 08:18:23 2022 @@ -1,7 +1,13 @@ <!DOCTYPE html> + + + + + + <!-- - Generated by Apache Maven Doxia at 2022-04-23 Rendered using Reflow Maven Skin 2.0.0-SNAPSHOT (https://andriusvelykis.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2022-04-25 Rendered using Reflow Maven Skin 2.0.0 (https://olamy.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> @@ -29,24 +35,31 @@ <![endif]--> - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3211522-12']); - _gaq.push(['_trackPageview']); - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> + +<!-- Matomo --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '15']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<!-- End Matomo Code --> + </head> <body class="page-tutorial_health project-103-docs" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target"> + <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> @@ -119,7 +132,7 @@ <li><a href="./" title="Release 1.0.3">Release 1.0.3</a></li> <li class="divider">/</li> <li>Tutorial - Customizing Heath Checks</li> - <li class="publishDate version-date pull-right">Last Published: 2022-04-23</li> + <li class="publishDate version-date pull-right">Last Published: 2022-04-25</li> </ul> </div> </header> @@ -235,7 +248,7 @@ under the License. <div class="span12"> <p class="pull-right"><a href="#">Back to top</a></p> <p class="copyright">Copyright ©2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> - <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="https://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p> + <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> maintained by <a href="https://twitter.com/olamy" target="_blank" title="Olivier Lamy">Olivier Lamy</a>.</p> <div class="row span16"><div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div> <a href="https://helix.apache.org/1.0.3-docs/privacy-policy.html">Privacy Policy</a> Modified: helix/site-content/1.0.3-docs/tutorial_messaging.html URL: http://svn.apache.org/viewvc/helix/site-content/1.0.3-docs/tutorial_messaging.html?rev=1900255&r1=1900254&r2=1900255&view=diff ============================================================================== --- helix/site-content/1.0.3-docs/tutorial_messaging.html (original) +++ helix/site-content/1.0.3-docs/tutorial_messaging.html Mon Apr 25 08:18:23 2022 @@ -1,7 +1,13 @@ <!DOCTYPE html> + + + + + + <!-- - Generated by Apache Maven Doxia at 2022-04-23 Rendered using Reflow Maven Skin 2.0.0-SNAPSHOT (https://andriusvelykis.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2022-04-25 Rendered using Reflow Maven Skin 2.0.0 (https://olamy.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> @@ -29,24 +35,31 @@ <![endif]--> - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3211522-12']); - _gaq.push(['_trackPageview']); - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> + +<!-- Matomo --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '15']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<!-- End Matomo Code --> + </head> <body class="page-tutorial_messaging project-103-docs" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target"> + <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> @@ -119,7 +132,7 @@ <li><a href="./" title="Release 1.0.3">Release 1.0.3</a></li> <li class="divider">/</li> <li>Tutorial - Messaging</li> - <li class="publishDate version-date pull-right">Last Published: 2022-04-23</li> + <li class="publishDate version-date pull-right">Last Published: 2022-04-25</li> </ul> </div> </header> @@ -168,10 +181,10 @@ requestBackupUriRequest.setMsgState(Mess // Set the Recipient criteria: all nodes that satisfy the criteria will receive the message Criteria recipientCriteria = new Criteria(); -recipientCriteria.setInstanceName("%"); +recipientCriteria.setInstanceName("%"); recipientCriteria.setRecipientInstanceType(InstanceType.PARTICIPANT); -recipientCriteria.setResource("MyDB"); -recipientCriteria.setPartition(""); +recipientCriteria.setResource("MyDB"); +recipientCriteria.setPartition(""); // Should be processed only by process(es) that are active at the time of sending the message // This means if the recipient is restarted after message is sent, it will not be processe. @@ -260,7 +273,7 @@ int sentMessageCount = messagingService. <div class="span12"> <p class="pull-right"><a href="#">Back to top</a></p> <p class="copyright">Copyright ©2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> - <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="https://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p> + <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> maintained by <a href="https://twitter.com/olamy" target="_blank" title="Olivier Lamy">Olivier Lamy</a>.</p> <div class="row span16"><div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div> <a href="https://helix.apache.org/1.0.3-docs/privacy-policy.html">Privacy Policy</a> Modified: helix/site-content/1.0.3-docs/tutorial_participant.html URL: http://svn.apache.org/viewvc/helix/site-content/1.0.3-docs/tutorial_participant.html?rev=1900255&r1=1900254&r2=1900255&view=diff ============================================================================== --- helix/site-content/1.0.3-docs/tutorial_participant.html (original) +++ helix/site-content/1.0.3-docs/tutorial_participant.html Mon Apr 25 08:18:23 2022 @@ -1,7 +1,13 @@ <!DOCTYPE html> + + + + + + <!-- - Generated by Apache Maven Doxia at 2022-04-23 Rendered using Reflow Maven Skin 2.0.0-SNAPSHOT (https://andriusvelykis.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2022-04-25 Rendered using Reflow Maven Skin 2.0.0 (https://olamy.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> @@ -29,24 +35,31 @@ <![endif]--> - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3211522-12']); - _gaq.push(['_trackPageview']); - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> + +<!-- Matomo --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '15']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<!-- End Matomo Code --> + </head> <body class="page-tutorial_participant project-103-docs" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target"> + <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> @@ -119,7 +132,7 @@ <li><a href="./" title="Release 1.0.3">Release 1.0.3</a></li> <li class="divider">/</li> <li>Tutorial - Participant</li> - <li class="publishDate version-date pull-right">Last Published: 2022-04-23</li> + <li class="publishDate version-date pull-right">Last Published: 2022-04-25</li> </ul> </div> </header> @@ -198,12 +211,12 @@ manager.connect(); OnlineOfflineStateModel stateModel = new OnlineOfflineStateModel(); return stateModel; } - @StateModelInfo(states = "{'OFFLINE','ONLINE'}", initialState = "OFFINE") + @StateModelInfo(states = "{'OFFLINE','ONLINE'}", initialState = "OFFINE") public static class OnlineOfflineStateModel extends StateModel { - @Transition(from = "OFFLINE", to = "ONLINE") + @Transition(from = "OFFLINE", to = "ONLINE") public void onBecomeOnlineFromOffline(Message message, NotificationContext context) { - System.out.println("OnlineOfflineStateModel.onBecomeOnlineFromOffline()"); + System.out.println("OnlineOfflineStateModel.onBecomeOnlineFromOffline()"); //////////////////////////////////////////////////////////////////////////////////////////////// // Application logic to handle transition // @@ -211,10 +224,10 @@ manager.connect(); //////////////////////////////////////////////////////////////////////////////////////////////// } - @Transition(from = "ONLINE", to = "OFFLINE") + @Transition(from = "ONLINE", to = "OFFLINE") public void onBecomeOfflineFromOnline(Message message, NotificationContext context) { - System.out.println("OnlineOfflineStateModel.onBecomeOfflineFromOnline()"); + System.out.println("OnlineOfflineStateModel.onBecomeOfflineFromOnline()"); //////////////////////////////////////////////////////////////////////////////////////////////// // Application logic to handle transition // @@ -296,7 +309,7 @@ manager.connect(); <div class="span12"> <p class="pull-right"><a href="#">Back to top</a></p> <p class="copyright">Copyright ©2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> - <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="https://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p> + <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> maintained by <a href="https://twitter.com/olamy" target="_blank" title="Olivier Lamy">Olivier Lamy</a>.</p> <div class="row span16"><div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div> <a href="https://helix.apache.org/1.0.3-docs/privacy-policy.html">Privacy Policy</a> Modified: helix/site-content/1.0.3-docs/tutorial_propstore.html URL: http://svn.apache.org/viewvc/helix/site-content/1.0.3-docs/tutorial_propstore.html?rev=1900255&r1=1900254&r2=1900255&view=diff ============================================================================== --- helix/site-content/1.0.3-docs/tutorial_propstore.html (original) +++ helix/site-content/1.0.3-docs/tutorial_propstore.html Mon Apr 25 08:18:23 2022 @@ -1,7 +1,13 @@ <!DOCTYPE html> + + + + + + <!-- - Generated by Apache Maven Doxia at 2022-04-23 Rendered using Reflow Maven Skin 2.0.0-SNAPSHOT (https://andriusvelykis.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2022-04-25 Rendered using Reflow Maven Skin 2.0.0 (https://olamy.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> @@ -29,24 +35,31 @@ <![endif]--> - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3211522-12']); - _gaq.push(['_trackPageview']); - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> + +<!-- Matomo --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '15']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<!-- End Matomo Code --> + </head> <body class="page-tutorial_propstore project-103-docs" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target"> + <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> @@ -119,7 +132,7 @@ <li><a href="./" title="Release 1.0.3">Release 1.0.3</a></li> <li class="divider">/</li> <li>Tutorial - Application Property Store</li> - <li class="publishDate version-date pull-right">Last Published: 2022-04-23</li> + <li class="publishDate version-date pull-right">Last Published: 2022-04-25</li> </ul> </div> </header> @@ -227,7 +240,7 @@ under the License. <div class="span12"> <p class="pull-right"><a href="#">Back to top</a></p> <p class="copyright">Copyright ©2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> - <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="https://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p> + <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> maintained by <a href="https://twitter.com/olamy" target="_blank" title="Olivier Lamy">Olivier Lamy</a>.</p> <div class="row span16"><div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div> <a href="https://helix.apache.org/1.0.3-docs/privacy-policy.html">Privacy Policy</a> Modified: helix/site-content/1.0.3-docs/tutorial_rebalance.html URL: http://svn.apache.org/viewvc/helix/site-content/1.0.3-docs/tutorial_rebalance.html?rev=1900255&r1=1900254&r2=1900255&view=diff ============================================================================== --- helix/site-content/1.0.3-docs/tutorial_rebalance.html (original) +++ helix/site-content/1.0.3-docs/tutorial_rebalance.html Mon Apr 25 08:18:23 2022 @@ -1,7 +1,13 @@ <!DOCTYPE html> + + + + + + <!-- - Generated by Apache Maven Doxia at 2022-04-23 Rendered using Reflow Maven Skin 2.0.0-SNAPSHOT (https://andriusvelykis.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2022-04-25 Rendered using Reflow Maven Skin 2.0.0 (https://olamy.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> @@ -29,24 +35,31 @@ <![endif]--> - <script type="text/javascript"> - - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-3211522-12']); - _gaq.push(['_trackPageview']); - (function() { - var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; - var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); - })(); - </script> - </head> + +<!-- Matomo --> +<script> + var _paq = window._paq = window._paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + + (function() { + var u="https://analytics.apache.org"; + _paq.push(['setTrackerUrl', u+'/matomo.php']); + _paq.push(['setSiteId', '15']); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<!-- End Matomo Code --> + </head> <body class="page-tutorial_rebalance project-103-docs" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target"> + <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> @@ -119,7 +132,7 @@ <li><a href="./" title="Release 1.0.3">Release 1.0.3</a></li> <li class="divider">/</li> <li>Tutorial - Rebalancing Algorithms</li> - <li class="publishDate version-date pull-right">Last Published: 2022-04-23</li> + <li class="publishDate version-date pull-right">Last Published: 2022-04-25</li> </ul> </div> </header> @@ -182,19 +195,19 @@ under the License. <p>For example, consider this system that uses a MasterSlave state model, with 3 partitions and 2 replicas in the ideal state.</p> <div class="source"> <pre><code>{ - "id" : "MyResource", - "simpleFields" : { - "REBALANCE_MODE" : "FULL_AUTO", - "NUM_PARTITIONS" : "3", - "REPLICAS" : "2", - "STATE_MODEL_DEF_REF" : "MasterSlave", + "id" : "MyResource", + "simpleFields" : { + "REBALANCE_MODE" : "FULL_AUTO", + "NUM_PARTITIONS" : "3", + "REPLICAS" : "2", + "STATE_MODEL_DEF_REF" : "MasterSlave", } - "listFields" : { - "MyResource_0" : [], - "MyResource_1" : [], - "MyResource_2" : [] + "listFields" : { + "MyResource_0" : [], + "MyResource_1" : [], + "MyResource_2" : [] }, - "mapFields" : { + "mapFields" : { } } </code></pre> @@ -202,24 +215,24 @@ under the License. <p>If there are 3 nodes in the cluster, then Helix will balance the masters and slaves equally. The ideal state is therefore:</p> <div class="source"> <pre><code>{ - "id" : "MyResource", - "simpleFields" : { - "NUM_PARTITIONS" : "3", - "REPLICAS" : "2", - "STATE_MODEL_DEF_REF" : "MasterSlave", + "id" : "MyResource", + "simpleFields" : { + "NUM_PARTITIONS" : "3", + "REPLICAS" : "2", + "STATE_MODEL_DEF_REF" : "MasterSlave", }, - "mapFields" : { - "MyResource_0" : { - "N1" : "MASTER", - "N2" : "SLAVE", + "mapFields" : { + "MyResource_0" : { + "N1" : "MASTER", + "N2" : "SLAVE", }, - "MyResource_1" : { - "N2" : "MASTER", - "N3" : "SLAVE", + "MyResource_1" : { + "N2" : "MASTER", + "N3" : "SLAVE", }, - "MyResource_2" : { - "N3" : "MASTER", - "N1" : "SLAVE", + "MyResource_2" : { + "N3" : "MASTER", + "N1" : "SLAVE", } } } @@ -233,19 +246,19 @@ under the License. <p>Example: In the ideal state below, the partition 'MyResource_0' is constrained to be placed only on node1 or node2. The choice of <i>state</i> is still controlled by Helix. That means MyResource_0.MASTER could be on node1 and MyResource_0.SLAVE on node2, or vice-versa but neither would be placed on node3.</p> <div class="source"> <pre><code>{ - "id" : "MyResource", - "simpleFields" : { - "REBALANCE_MODE" : "SEMI_AUTO", - "NUM_PARTITIONS" : "3", - "REPLICAS" : "2", - "STATE_MODEL_DEF_REF" : "MasterSlave", + "id" : "MyResource", + "simpleFields" : { + "REBALANCE_MODE" : "SEMI_AUTO", + "NUM_PARTITIONS" : "3", + "REPLICAS" : "2", + "STATE_MODEL_DEF_REF" : "MasterSlave", } - "listFields" : { - "MyResource_0" : [node1, node2], - "MyResource_1" : [node2, node3], - "MyResource_2" : [node3, node1] + "listFields" : { + "MyResource_0" : [node1, node2], + "MyResource_1" : [node2, node3], + "MyResource_2" : [node3, node1] }, - "mapFields" : { + "mapFields" : { } } </code></pre> @@ -259,25 +272,25 @@ under the License. <p>Here's an example, again with 3 partitions, 2 replicas per partition, and the MasterSlave state model:</p> <div class="source"> <pre><code>{ - "id" : "MyResource", - "simpleFields" : { - "REBALANCE_MODE" : "CUSTOMIZED", - "NUM_PARTITIONS" : "3", - "REPLICAS" : "2", - "STATE_MODEL_DEF_REF" : "MasterSlave", + "id" : "MyResource", + "simpleFields" : { + "REBALANCE_MODE" : "CUSTOMIZED", + "NUM_PARTITIONS" : "3", + "REPLICAS" : "2", + "STATE_MODEL_DEF_REF" : "MasterSlave", }, - "mapFields" : { - "MyResource_0" : { - "N1" : "MASTER", - "N2" : "SLAVE", + "mapFields" : { + "MyResource_0" : { + "N1" : "MASTER", + "N2" : "SLAVE", }, - "MyResource_1" : { - "N2" : "MASTER", - "N3" : "SLAVE", + "MyResource_1" : { + "N2" : "MASTER", + "N3" : "SLAVE", }, - "MyResource_2" : { - "N3" : "MASTER", - "N1" : "SLAVE", + "MyResource_2" : { + "N3" : "MASTER", + "N1" : "SLAVE", } } } @@ -363,7 +376,7 @@ under the License. <div class="span12"> <p class="pull-right"><a href="#">Back to top</a></p> <p class="copyright">Copyright ©2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> - <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="https://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p> + <p><a href="https://github.com/olamy/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> maintained by <a href="https://twitter.com/olamy" target="_blank" title="Olivier Lamy">Olivier Lamy</a>.</p> <div class="row span16"><div>Apache Helix, Apache, the Apache feather logo, and the Apache Helix project logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div> <a href="https://helix.apache.org/1.0.3-docs/privacy-policy.html">Privacy Policy</a>
