[ 
https://issues.apache.org/jira/browse/HELIX-470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14114309#comment-14114309
 ] 

Hudson commented on HELIX-470:
------------------------------

ABORTED: Integrated in helix #1287 (See 
[https://builds.apache.org/job/helix/1287/])
[HELIX-470] Netty-based IPC layer (brandt.greg: rev 
f2475fa9a6123052fea2588cdd4e439ddc7af020)
* helix-ipc/src/main/java/org/apache/helix/resolver/ResolverRoutingTable.java
* helix-core/src/main/java/org/apache/helix/spectator/RoutingTableProvider.java
* helix-ipc/src/main/config/log4j.properties
* helix-ipc/src/assemble/assembly.xml
* helix-ipc/src/main/java/org/apache/helix/resolver/AbstractHelixResolver.java
* helix-ipc/src/main/java/org/apache/helix/resolver/HelixResolver.java
* helix-ipc/src/main/java/org/apache/helix/resolver/HelixAddress.java
* helix-ipc/NOTICE
* helix-ipc/src/main/java/org/apache/helix/ipc/HelixIPCMessageManager.java
* helix-ipc/src/test/resources/run_benchmark.sh
* helix-ipc/pom.xml
* helix-ipc/src/test/java/org/apache/helix/resolver/TestZKHelixResolver.java
* helix-ipc/src/main/java/org/apache/helix/resolver/zk/ZKHelixResolver.java
* helix-ipc/src/test/resources/build_benchmark.sh
* helix-ipc/src/main/java/org/apache/helix/resolver/HelixMessageScope.java
* helix-ipc/src/main/java/org/apache/helix/ipc/HelixIPCService.java
* helix-ipc/src/test/java/org/apache/helix/ipc/benchmark/BenchmarkDriver.java
* helix-core/src/test/java/org/apache/helix/TestHelper.java
* helix-ipc/LICENSE
* helix-ipc/src/main/java/org/apache/helix/ipc/netty/NettyHelixIPCService.java
* pom.xml
* helix-ipc/src/main/java/org/apache/helix/ipc/HelixIPCCallback.java
* helix-ipc/src/test/java/org/apache/helix/ipc/TestNettyHelixIPCService.java


> Add performant IPC (Helix actors)
> ---------------------------------
>
>                 Key: HELIX-470
>                 URL: https://issues.apache.org/jira/browse/HELIX-470
>             Project: Apache Helix
>          Issue Type: Improvement
>          Components: helix-core
>    Affects Versions: 0.7.1, 0.6.4
>            Reporter: Greg Brandt
>             Fix For: 0.7.1
>
>
> Helix is missing a high-performance way to exchange messages among resource 
> partitions, with a user-friendly API.
> Currently, the Helix messaging service relies on creating many nodes in 
> ZooKeeper, which can lead to ZooKeeper outages if messages are sent too 
> frequently.
> In order to avoid this, high-performance NIO-based {{HelixActors}} should be 
> implemented (in rough accordance with the actor model). {{HelixActors}} 
> exchange messages asynchronously without waiting for a response, and are 
> partition/state-addressable.
> The API would look something like this:
> {code}
> public interface HelixActor<T> {
>     void send(Partition partition, String state, T message);
>     void register(String resource, HelixActorCallback<T> callback);
> }
> public interface HelixActorCallback<T> {
>     void onMessage(Partition partition, State state, T message);
> }
> {code}
> {{#send}} should likely support wildcards for partition number and state, or 
> its method signature might need to be massaged a little bit for more 
> flexibility. But that's the basic idea.
> Nothing is inferred about the format of the messages - the only metadata we 
> need to be able to interpret is (1) partition name and (2) state. The user 
> provides a codec to encode / decode messages, so it's nicer to implement 
> {{HelixActor#send}} and {{HelixActorCallback#onMessage}}.
> {code}
> public interface HelixActorMessageCodec<T> {
>     byte[] encode(T message);
>     T decode(byte[] message);
> }
> {code}
> Actors should support somewhere around 100k to 1M messages per second. The 
> Netty framework is a potential implementation candidate, but should be 
> thoroughly evaluated w.r.t. performance.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to