diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/selector/AbstractHashMessage.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/selector/AbstractHashMessage.java
index 0a5f64a14c1c955ba2a72ccc4b05f1a6f694c83d..c3f336f83c90e901ced4e7807bb4cd0ad5a9b9ec 100644
--- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/selector/AbstractHashMessage.java
+++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/selector/AbstractHashMessage.java
@@ -1,6 +1,12 @@
package com.a.eye.skywalking.collector.actor.selector;
/**
+ * The AbstractHashMessage
should be implemented by any class whose instances
+ * are intended to provide send message with {@link HashCodeSelector}.
+ *
+ * Usually the implemented class used to persistence data to database
+ * or aggregation the metric,
+ *
* @author pengys5
*/
public abstract class AbstractHashMessage {
diff --git a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/selector/HashCodeSelector.java b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/selector/HashCodeSelector.java
index a3d46df68173cde101381d3029678d6c7933c68d..aef766ab1e6122f87168f6236abb17049524cb43 100644
--- a/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/selector/HashCodeSelector.java
+++ b/skywalking-collector/skywalking-collector-cluster/src/main/java/com/a/eye/skywalking/collector/actor/selector/HashCodeSelector.java
@@ -1,14 +1,26 @@
package com.a.eye.skywalking.collector.actor.selector;
+import com.a.eye.skywalking.collector.actor.AbstractWorker;
import com.a.eye.skywalking.collector.actor.WorkerRef;
import java.util.List;
/**
+ * The
+ * Actually, the HashCodeSelector
is a simple implementation of {@link WorkerSelector}.
+ * It choose {@link WorkerRef} by message {@link AbstractHashMessage} key's hashcode, so it can use to send the same hashcode
+ * message to same {@link WorkerRef}. Usually, use to database operate which avoid dirty data.
+ *
* @author pengys5
*/
public class HashCodeSelector implements WorkerSelectorRollingSelector
is a simple implementation of {@link WorkerSelector}.
+ * It choose {@link WorkerRef} nearly random, by round-robin.
+ *
* @author pengys5
*/
public class RollingSelector implements WorkerSelectorWorkerSelector
should be implemented by any class whose instances
+ * are intended to provide select a {@link WorkerRef} from a {@link WorkerRef} list.
+ * WorkerRef
is designed to provide a routing ability in the collector cluster
+ *
* @author pengys5
*/
public interface WorkerSelector