-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/13878/
-----------------------------------------------------------

(Updated Aug. 29, 2013, 6:15 a.m.)


Review request for helix, Kanak Biscuitwala and Kishore Gopalakrishna.


Changes
-------

merge model changes with accessor changes. still incomplete


Bugs: HELIX-109


Repository: helix-git


Description
-------

commit 394e06a2894f92b0a9fb2787a57d3a0ef7468825
Author: zzhang <[email protected]>
Date:   Tue Aug 27 18:03:33 2013 -0700

    [HELIX-109] Review Helix model package, initial changes

:000000 100644 0000000... f92b14f... A  
helix-core/src/main/java/org/apache/helix/api/Cluster.java
:000000 100644 0000000... 3968376... A  
helix-core/src/main/java/org/apache/helix/api/ClusterId.java
:000000 100644 0000000... 643e466... A  
helix-core/src/main/java/org/apache/helix/api/ClusterReader.java
:000000 100644 0000000... bab45f8... A  
helix-core/src/main/java/org/apache/helix/api/ClusterSnapshot.java
:000000 100644 0000000... 5266a81... A  
helix-core/src/main/java/org/apache/helix/api/Controller.java
:000000 100644 0000000... 1ff3bd3... A  
helix-core/src/main/java/org/apache/helix/api/ControllerId.java
:000000 100644 0000000... 479c33b... A  
helix-core/src/main/java/org/apache/helix/api/ControllerSnapshot.java
:000000 100644 0000000... e66fb7a... A  
helix-core/src/main/java/org/apache/helix/api/CurState.java
:000000 100644 0000000... 3a5d4ac... A  
helix-core/src/main/java/org/apache/helix/api/ExtView.java
:000000 100644 0000000... 84d0a8f... A  
helix-core/src/main/java/org/apache/helix/api/HelixVersion.java
:000000 100644 0000000... d65c3d7... A  
helix-core/src/main/java/org/apache/helix/api/Id.java
:000000 100644 0000000... ac7638d... A  
helix-core/src/main/java/org/apache/helix/api/Msg.java
:000000 100644 0000000... c61a5bf... A  
helix-core/src/main/java/org/apache/helix/api/MsgId.java
:000000 100644 0000000... 16ed316... A  
helix-core/src/main/java/org/apache/helix/api/Participant.java
:000000 100644 0000000... eadc615... A  
helix-core/src/main/java/org/apache/helix/api/ParticipantId.java
:000000 100644 0000000... 48bdfff... A  
helix-core/src/main/java/org/apache/helix/api/ParticipantSnapshot.java
:000000 100644 0000000... c903493... A  
helix-core/src/main/java/org/apache/helix/api/Partition.java
:000000 100644 0000000... ace767d... A  
helix-core/src/main/java/org/apache/helix/api/PartitionId.java
:000000 100644 0000000... e244032... A  
helix-core/src/main/java/org/apache/helix/api/ProcId.java
:000000 100644 0000000... 3d1c69f... A  
helix-core/src/main/java/org/apache/helix/api/RebalancerRef.java
:000000 100644 0000000... dc615de... A  
helix-core/src/main/java/org/apache/helix/api/Resource.java
:000000 100644 0000000... 32cdf4f... A  
helix-core/src/main/java/org/apache/helix/api/ResourceId.java
:000000 100644 0000000... a5e04ff... A  
helix-core/src/main/java/org/apache/helix/api/ResourceSnapshot.java
:000000 100644 0000000... a7b6316... A  
helix-core/src/main/java/org/apache/helix/api/RscAssignment.java
:000000 100644 0000000... 49c5ccf... A  
helix-core/src/main/java/org/apache/helix/api/RunningInstance.java
:000000 100644 0000000... 9a070c0... A  
helix-core/src/main/java/org/apache/helix/api/SessionId.java
:000000 100644 0000000... a4ab2c5... A  
helix-core/src/main/java/org/apache/helix/api/Spectator.java
:000000 100644 0000000... bd0150c... A  
helix-core/src/main/java/org/apache/helix/api/SpectatorId.java
:000000 100644 0000000... 947c767... A  
helix-core/src/main/java/org/apache/helix/api/SpectatorSnapshot.java
:000000 100644 0000000... ebd31cc... A  
helix-core/src/main/java/org/apache/helix/api/State.java
:000000 100644 0000000... fe2b3e0... A  
helix-core/src/main/java/org/apache/helix/api/StateModelDefId.java


close the other jira. paste the original comments here:
can we have separate packages for model, role, listeners ?

Lets avoid having strings, even things like cluster name, resource name, 
partition name should have concrete classes. Also having builder for every 
object is helpful. what do you think
Kanak Biscuitwala 3 days, 19 hours ago (Aug. 24, 2013, 5:50 a.m.)
- Package separation makes sense. Currently, there's only model and role 
classes. I think a new discussion is necessary to decide how to do listeners 
right (and more broadly, concrete use cases for this new API).

- I agree with the string comment. Many (if not all) of the Map<String, Obj> 
could be List/Set<Obj> instead and others can be Map<Obj1, Obj2>.

- I think the following can be candidates for builders: Cluster, Resource, 
Participant, and maybe CurState and ExtView. I can create a separate Jira and 
work on those.

I'm sure Jason has additional thoughts.
Zhen Zhang 2 days, 20 hours ago (Aug. 25, 2013, 4:56 a.m.)
Some comments about the 2nd point: using Map instead of List/Set might be 
convenient since in many cases, we need to index 
ideal-state/current-state/message by id's. Agree to use Id instead of String, 
but it will be just a wrapper around string and we need to override equal() and 
hash() methods. To avoid code duplication, we may have an Id base class and 
ResourceId, ClusterId, ParticipantId, PartitionId, etc will be empty derived 
classes from Id class?


Diffs (updated)
-----

  
helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/SchedulerTasksResource.java
 59d9174 
  
helix-admin-webapp/src/test/java/org/apache/helix/tools/TestResetPartitionState.java
 c8099a4 
  helix-agent/src/main/java/org/apache/helix/agent/AgentStateModel.java 313f430 
  helix-core/src/main/java/org/apache/helix/PropertyKey.java 0874958 
  helix-core/src/main/java/org/apache/helix/api/Cluster.java 5b149d9 
  helix-core/src/main/java/org/apache/helix/api/ClusterAccessor.java 1b43e6b 
  helix-core/src/main/java/org/apache/helix/api/ClusterReader.java 12a41ac 
  helix-core/src/main/java/org/apache/helix/api/Controller.java df28571 
  helix-core/src/main/java/org/apache/helix/api/ControllerAccessor.java fb3f844 
  helix-core/src/main/java/org/apache/helix/api/CurState.java e66fb7a 
  helix-core/src/main/java/org/apache/helix/api/CurStateAccessor.java 1b8e2ce 
  helix-core/src/main/java/org/apache/helix/api/ExtViewAccessor.java 41406ff 
  helix-core/src/main/java/org/apache/helix/api/HelixVersion.java 84d0a8f 
  helix-core/src/main/java/org/apache/helix/api/Id.java 96ce15d 
  helix-core/src/main/java/org/apache/helix/api/MessageId.java e69de29 
  helix-core/src/main/java/org/apache/helix/api/Msg.java ac7638d 
  helix-core/src/main/java/org/apache/helix/api/MsgId.java 88eb448 
  helix-core/src/main/java/org/apache/helix/api/Participant.java e3eb68e 
  helix-core/src/main/java/org/apache/helix/api/ParticipantAccessor.java 
03e0992 
  helix-core/src/main/java/org/apache/helix/api/PartitionId.java 3bec1ad 
  helix-core/src/main/java/org/apache/helix/api/RebalancerConfig.java 219e867 
  helix-core/src/main/java/org/apache/helix/api/RebalancerRef.java 9011da9 
  helix-core/src/main/java/org/apache/helix/api/Resource.java b76a0f8 
  helix-core/src/main/java/org/apache/helix/api/ResourceAccessor.java b5a6516 
  helix-core/src/main/java/org/apache/helix/api/RscAssignment.java 88e4ff6 
  helix-core/src/main/java/org/apache/helix/api/RunningInstance.java 49c5ccf 
  helix-core/src/main/java/org/apache/helix/api/State.java b2000f2 
  
helix-core/src/main/java/org/apache/helix/controller/GenericHelixController.java
 8e4e1ea 
  
helix-core/src/main/java/org/apache/helix/controller/rebalancer/AutoRebalancer.java
 9564e35 
  
helix-core/src/main/java/org/apache/helix/controller/rebalancer/CustomRebalancer.java
 8557fa0 
  
helix-core/src/main/java/org/apache/helix/controller/rebalancer/util/ConstraintBasedAssignment.java
 d2dbdef 
  
helix-core/src/main/java/org/apache/helix/controller/stages/ClusterDataCache.java
 b90880e 
  
helix-core/src/main/java/org/apache/helix/controller/stages/CompatibilityCheckStage.java
 d8f98ed 
  
helix-core/src/main/java/org/apache/helix/controller/stages/CurrentStateComputationStage.java
 6097432 
  
helix-core/src/main/java/org/apache/helix/controller/stages/ExternalViewComputeStage.java
 35ef177 
  
helix-core/src/main/java/org/apache/helix/controller/stages/MessageGenerationPhase.java
 92964e9 
  
helix-core/src/main/java/org/apache/helix/controller/stages/MessageSelectionStage.java
 9a420aa 
  
helix-core/src/main/java/org/apache/helix/controller/stages/RebalanceIdealStateStage.java
 d82ee2f 
  
helix-core/src/main/java/org/apache/helix/controller/stages/ResourceComputationStage.java
 51f0ec1 
  
helix-core/src/main/java/org/apache/helix/controller/stages/TaskAssignmentStage.java
 192a645 
  helix-core/src/main/java/org/apache/helix/manager/zk/ControllerManager.java 
1ed6dea 
  
helix-core/src/main/java/org/apache/helix/manager/zk/CurStateCarryOverUpdater.java
 b96de18 
  
helix-core/src/main/java/org/apache/helix/manager/zk/DefaultControllerMessageHandlerFactory.java
 5f6d083 
  
helix-core/src/main/java/org/apache/helix/manager/zk/DefaultParticipantErrorMessageHandlerFactory.java
 d2e56eb 
  
helix-core/src/main/java/org/apache/helix/manager/zk/DefaultSchedulerMessageHandlerFactory.java
 5451a81 
  
helix-core/src/main/java/org/apache/helix/manager/zk/DistributedControllerManager.java
 c9ad0f3 
  
helix-core/src/main/java/org/apache/helix/manager/zk/DistributedLeaderElection.java
 0ab8342 
  
helix-core/src/main/java/org/apache/helix/manager/zk/ParticipantManagerHelper.java
 70dd592 
  helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixAdmin.java 
754df7b 
  helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java 
025402d 
  helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixManager.java 
621c18b 
  helix-core/src/main/java/org/apache/helix/messaging/AsyncCallback.java 
f9743a4 
  
helix-core/src/main/java/org/apache/helix/messaging/DefaultMessagingService.java
 2eec354 
  
helix-core/src/main/java/org/apache/helix/messaging/handling/AsyncCallbackService.java
 c218a15 
  
helix-core/src/main/java/org/apache/helix/messaging/handling/HelixStateTransitionHandler.java
 627babc 
  helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTask.java 
d9f7ae2 
  
helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
 600a3ab 
  
helix-core/src/main/java/org/apache/helix/messaging/handling/MessageTimeoutTask.java
 e1b4f0f 
  helix-core/src/main/java/org/apache/helix/model/ClusterConstraints.java 
f69a7ce 
  helix-core/src/main/java/org/apache/helix/model/CurrentState.java 32854ab 
  helix-core/src/main/java/org/apache/helix/model/ExternalView.java d5f1afc 
  helix-core/src/main/java/org/apache/helix/model/IdealState.java e14940a 
  helix-core/src/main/java/org/apache/helix/model/InstanceConfig.java eb1c652 
  helix-core/src/main/java/org/apache/helix/model/LiveInstance.java 75e0cf3 
  helix-core/src/main/java/org/apache/helix/model/Message.java d599b8b 
  helix-core/src/main/java/org/apache/helix/model/ResourceAssignment.java 
2b3d14d 
  helix-core/src/main/java/org/apache/helix/model/StateModelDefinition.java 
7f08b6f 
  helix-core/src/main/java/org/apache/helix/model/Transition.java 2151c44 
  
helix-core/src/main/java/org/apache/helix/model/builder/CurrentStateBuilder.java
 e69de29 
  
helix-core/src/main/java/org/apache/helix/model/builder/IdealStateBuilder.java 
a7c0335 
  
helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ResourceMonitor.java
 e24b41f 
  
helix-core/src/main/java/org/apache/helix/participant/DistClusterControllerElection.java
 25aada2 
  
helix-core/src/main/java/org/apache/helix/participant/HelixStateMachineEngine.java
 31fcecf 
  helix-core/src/main/java/org/apache/helix/spectator/RoutingTableProvider.java 
9bba660 
  helix-core/src/main/java/org/apache/helix/tools/ZkLogAnalyzer.java 11e1b66 
  helix-core/src/main/java/org/apache/helix/util/RebalanceUtil.java 273adc3 
  helix-core/src/main/java/org/apache/helix/util/StatusUpdateUtil.java 02c39d1 
  helix-core/src/test/java/org/apache/helix/ZkUnitTestBase.java abf75be 
  
helix-core/src/test/java/org/apache/helix/controller/stages/TestMsgSelectionStage.java
 820abbe 
  
helix-core/src/test/java/org/apache/helix/controller/stages/TestRebalancePipeline.java
 fccd0c7 
  
helix-core/src/test/java/org/apache/helix/controller/stages/TestResourceComputationStage.java
 6febe93 
  helix-core/src/test/java/org/apache/helix/healthcheck/TestAddDropAlert.java 
d5a1b08 
  helix-core/src/test/java/org/apache/helix/healthcheck/TestExpandAlert.java 
69d1062 
  helix-core/src/test/java/org/apache/helix/healthcheck/TestSimpleAlert.java 
1db5ddd 
  
helix-core/src/test/java/org/apache/helix/healthcheck/TestSimpleWildcardAlert.java
 c5b55da 
  helix-core/src/test/java/org/apache/helix/healthcheck/TestStalenessAlert.java 
2304b41 
  helix-core/src/test/java/org/apache/helix/healthcheck/TestWildcardAlert.java 
a0456a7 
  helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalance.java 
1943364 
  
helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java
 32cafcf 
  
helix-core/src/test/java/org/apache/helix/integration/TestCleanupExternalView.java
 781aa89 
  
helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java
 55fc876 
  helix-core/src/test/java/org/apache/helix/integration/TestDrop.java b1fcc60 
  
helix-core/src/test/java/org/apache/helix/integration/TestEnablePartitionDuringDisable.java
 48cabbd 
  
helix-core/src/test/java/org/apache/helix/integration/TestHelixInstanceTag.java 
4484386 
  
helix-core/src/test/java/org/apache/helix/integration/TestMessagePartitionStateMismatch.java
 487e689 
  
helix-core/src/test/java/org/apache/helix/integration/TestMessagingService.java 
2354ebd 
  
helix-core/src/test/java/org/apache/helix/integration/TestResetPartitionState.java
 09e57c6 
  
helix-core/src/test/java/org/apache/helix/integration/TestSchedulerMessage.java 
2c174c4 
  
helix-core/src/test/java/org/apache/helix/integration/TestStateTransitionTimeout.java
 edc10c6 
  helix-core/src/test/java/org/apache/helix/integration/TestStatusUpdate.java 
4b92670 
  
helix-core/src/test/java/org/apache/helix/manager/zk/TestZkClusterManager.java 
7809711 
  helix-core/src/test/java/org/apache/helix/messaging/TestAsyncCallbackSvc.java 
2be955f 
  
helix-core/src/test/java/org/apache/helix/messaging/handling/TestHelixTaskExecutor.java
 1ff6595 
  helix-core/src/test/java/org/apache/helix/mock/participant/ErrTransition.java 
301cd62 
  helix-core/src/test/java/org/apache/helix/tools/TestHelixAdminCli.java 
c58f94d 
  
helix-examples/src/main/java/org/apache/helix/examples/MasterSlaveStateModelFactory.java
 affbea8 
  helix-examples/src/main/java/org/apache/helix/examples/Quickstart.java 
b80d458 
  
recipes/distributed-lock-manager/src/main/java/org/apache/helix/lockmanager/LockManagerDemo.java
 b6c54db 
  
recipes/rsync-replicated-file-system/src/main/java/org/apache/helix/filestore/FileStoreStateModel.java
 6809a87 
  recipes/task-execution/src/main/java/org/apache/helix/taskexecution/Task.java 
0cc8bba 

Diff: https://reviews.apache.org/r/13878/diff/


Testing
-------


Thanks,

Zhen Zhang

Reply via email to