Hi Roland, Some days the old mind isn’t as agile as I’d like it to be. Of course I should look in the remote project to find the ActorRef for remote. *smacks forehead* In my defense, I just spent a few weeks going hard with few breaks as we went to production with an expanded use of kafka for traffic bound to our new Hadoop cluster. Fun stuff, but a ton of work. In 6 months we rolled out kafka and Hadoop. Next is Akka, in my playbook.
I am curious as well to see which obstacles lay before me and whether I have the wherewithal to get through them. I can’t recall when I started coding murmur, but I think it may have been over a decade ago. Murmur is a full implementation of what Kenton Varda defined as level 4 RPC from Cap’n Proto, where they have adopted a promise-pilining model. I am going to have to go deep, into both Scala and Akka and Cap’n Proto, and I am thrilled by that. I still struggle with the core mental model of functional programming, after all these years, though I have used closures since forever, in Smalltalk. Here’s my promise-pipelining in Akka, though no Akka as of yet. I guess I will rename it pauwau (https://github.com/pauwau/pauwau). And the high-level task list, although there is likely much overlap with clustering and other Akka features I have no knowledge of: Akka frontend to murmur – untyped EventualActorRef, new semantics of ‘ask’ Cap’n Proto – standard encoding and promise-pipelining protocol Distributed transactional membrane – 3-phase commit protocol Kafka/Hadoop replication – replication protocol Bit torrent – for high volume connections Variable encryption – maps, graphs and trees Switch from Untyped actors to Typed actors and hack the inferencer I should note that while I think there may a somewhat smallish performance gain (a fraction of an order of magnitude) between 2 parties with a pipelined coding style, my feeling is as conversations scale out to multiple interacting parties, the pipelined performance increase will be somewhat logarithmic. I am much more interested in the computing model that results, sending to promises. We’ll see how many months... it takes to show you something. :) Regards, Robert On Jan 20, 2014, at 12:00 AM, Roland Kuhn <[email protected]> wrote: > Hi Rob, > > it will be interesting to see which walls you hit and how hard they prove to > be—and whether the result actually improves performance in typical scenarios. > In any case, you’ll want to look at the other sub-projects as well to check > out ClusterActorRefProvider and RemoteActorRefProvider (and the kind of > ActorRefs used by the latter). > > Regards, > > Roland > > 20 jan 2014 kl. 06:05 skrev Rob Withers <[email protected]>: > >> Is the remote implementation in that file as well? If it is like >> Elib/murmur, then the sender side has a special, remote handler, while the >> receiver side has a local ref. >> >> Robert >> >> On Jan 19, 2014, at 4:44 PM, Konrad Malawski <[email protected]> wrote: >> >>> Ah, and the impl itself depends on if it’s an remote or local actor etc. >>> But it’s also in this file, for example for LocalActorRef: >>> https://github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/actor/ActorRef.scala#L384 >>> >>> -- >>> Cheers, >>> Konrad Malawski >>> blog.project13.pl | java.pl | geecon.org | gdgkrakow.pl | krakowscala.pl >>> >>> >>> 2014/1/19 Konrad Malawski <[email protected]> >>> It’s in ActorRef.scala, but in a special trait >>> https://github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/actor/ActorRef.scala#L178 >>> >>> trait ScalaActorRef { ref: ActorRef ⇒ >>> def !(message: Any)(implicit sender: ActorRef = Actor.noSender): Unit >>> } >>> This trick is used in order to not pollute the Java API with methods like !. >>> There is an implicit available in an Actor from ActorRef to ScalaActorRef, >>> >>> >>> so you have this method available only in Scala code. >>> >>> -- >>> Konrad >>> On Sunday, 19 January 2014 at 22:49, Rob Withers wrote: >>> >>>> So that I may look into adapting different semantics. I did not find it >>>> in ActorRef.scala, so I am grasping. >>>> >>>> thanks, >>>> - robert >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>> >>>>>>>>>> Check the FAQ: http://akka.io/faq/ >>>> >>>>>>>>>> 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 [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at http://groups.google.com/group/akka-user. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >>> -- >>> >>>>>>>>>> Read the docs: http://akka.io/docs/ >>> >>>>>>>>>> Check the FAQ: http://akka.io/faq/ >>> >>>>>>>>>> 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 [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/akka-user. >>> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> -- >> >>>>>>>>>> Read the docs: http://akka.io/docs/ >> >>>>>>>>>> Check the FAQ: http://akka.io/faq/ >> >>>>>>>>>> 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 [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/akka-user. >> For more options, visit https://groups.google.com/groups/opt_out. > > > > Dr. Roland Kuhn > Akka Tech Lead > Typesafe – Reactive apps on the JVM. > twitter: @rolandkuhn > > > > -- > >>>>>>>>>> Read the docs: http://akka.io/docs/ > >>>>>>>>>> Check the FAQ: http://akka.io/faq/ > >>>>>>>>>> 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/akka-user. > For more options, visit https://groups.google.com/groups/opt_out. - robert -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: http://akka.io/faq/ >>>>>>>>>> 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/groups/opt_out.
