Dear hakkers,

We are pleased to announce the availability of the third development
milestone of the new Akka Remoting, codenamed Artery. It’s an early
development preview and we encourage you to try it out and give us
feedback, but it’s not intended for production usage yet.


The version number is 2.4-ARTERY-M3 with same artifacts as usual.


It is enabled with the following configuration:


akka.remote.artery {

 enabled = on

 # The hostname or ip clients should connect to.

 hostname = localhost

 # use 0 if you want a random available port

 port = 20200

}


The protocol part of the actor system address is artery, so you need to
change previous akka.tcp to artery in for example configuration of cluster
seed-nodes.


A summary of what is included in M3 compared to M2
<https://groups.google.com/d/msg/akka-user/tn6OB_NWaHE/K9PG-NT8QQAJ>::



   -

   compression of sender and recipient actor references in the message
   envelope header, explained below
   -

   performance improvements, results below
   -

   various bug fixes, all relevant remoting tests are now passing


The full list of changes since the last milestone is available under the
2.4-ARTERY-M3 <https://github.com/akka/akka/milestone/90?closed=1>
milestone on github for your reference.


The most exciting new feature in this milestone is the envelope header
compression. For small messages the sender and recipient Actor references
that are included in each remote message can be a large fraction of the
total payload since they are encoded as string representation of the full
ActorPath and the Actor’s UID. To reduce the message header size we have
developed a smart compression algorithm. The most commonly used sender and
recipient refs are detected by the recipient system and announced as a
compression table to the sender system. Then the sender can encode those
actor references as integers indexing the announced compression table. The
same thing is also done for serialization manifest strings. Overall
allowing us to save up to hundreds of bytes per message that would have
otherwise have be transferred over the wire (costing time and resources).


Another thing that some of you might find interesting is performance. We
have now measured the following between two m4.4xlarge EC2 instances (1
Gbit/s bandwidth) using the MaxThroughputSpec
<https://github.com/akka/akka/blob/v2.4-ARTERY-M3/akka-remote-tests/src/multi-jvm/scala/akka/remote/artery/MaxThroughputSpec.scala>
and LatencySpec
<https://github.com/akka/akka/blob/v2.4-ARTERY-M3/akka-remote-tests/src/multi-jvm/scala/akka/remote/artery/LatencySpec.scala>
:



   -

   630,239 messages/s with message payload of 100 bytes
   -

   8,245 messages/s with messages payload of 10,000 bytes
   -

   Round trip latency at a message rate of 10,000 messages/s: 50%ile: 155
   µs, 90%ile: 173 µs, 99%ile: 196 µs


We are using Aeron <https://github.com/real-logic/Aeron> as the underlying
transport and are implementing the layers on top using Akka Streams. You
find more details in the design document
<https://github.com/akka/akka-meta/issues/16>.


The development branch is artery-dev
<https://github.com/akka/akka/tree/artery-dev>, in case you want to take a
look or contribute. Issues are labeled with t:remoting:artery
<https://github.com/akka/akka/issues?q=is%3Aopen+is%3Aissue+label%3At%3Aremoting%3Aartery>
.


We are now taking a “summer break” from Artery development. We don’t only
need vacation, but we also have some other important areas to work on
before finalizing Artery. You find our  sprint plans at akka/akka-meta
<https://github.com/akka/akka-meta/issues>. The goal is to complete Artery
in end of August and September and then release it in a 2.4.x version of
Akka as an optional transport.


Happy hakking!

-- 

Patrik Nordwall
Akka Tech Lead
Lightbend <http://www.lightbend.com/> -  Reactive apps on the JVM
Twitter: @patriknw

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to