Yes, homework time.

thanks,
charlie

On Jan 20, 2014, at 7:13 AM, √iktor Ҡlang <[email protected]> wrote:

> Hi Charlie,
> 
> I think you might benefit quite a lot from reading the reference docs.
> 
> Cheers,
> √
> 
> 
> On Mon, Jan 20, 2014 at 2:53 PM, Robert Withers <[email protected]> wrote:
> Hi Endre,
> 
> I think this is the right solution for local EPromises (PromiseRef), and it 
> is the same solution I use in the intravat queuing described here: 
> http://erights.org/elib/concurrency/queuing.html.   I like that you just wrap 
> Akka underneath the EPromise.  How do you get the actorRef from an 
> ActorSelection? is the actorRef of the result of the first send?  Is this 
> then an onComplete sort of call, on the future of the first call, to obtain 
> the actorRef?  That sounds like it may work.  I appreciate that you seem to 
> be talking about wrapping an actorRef in an actor.
> 
> My questions arise when we distribute the user and the EPromise between 2 
> processes, over the net.  Is the proxy actor located in the process where the 
> first send computes?  It would need to be to do pipelining.  This is why I 
> was diving into the internals.  
> 
> In murmur there is a RemoteEPromise (RemotePromiseRef), in the user’s 
> process, pointing to an EPromise (PromiseRef) in the computing process, of 
> the result of the first message send.  The MessageSend points back to the 
> RemoteEPromise for resolution (continuation).  And so it seems the EPromise 
> is an actor, with the send queue, and the RemoteEPromise is an actor that the 
> MessageSend can send to sender too.  Is the Akka future an actor?  I do not 
> queue in the RemotePromiseRef when sending to the EPromise; it's 
> RemoteHandler just sends.
> 
> The thing I like most about Akka Actors is that it solves the issue of having 
> to wrap an eventual ref in a way that makes real sense in a typed language.
> 
> - charlie
> 
> On Jan 20, 2014, at 6:12 AM, Akka Team <[email protected]> wrote:
> 
>> Hi Rob,
>> 
>> I don't think you need to go into the internals of ActorRefs to achieve what 
>> you want. You can create a proxy actor that does the pipelining you need, 
>> you can even wrap it in a Future based interface if you like.
>> 
>> The proxy actor then would:
>>  - obtain an actorRef from an ActorSelection
>>  - at the same time queue up requests from user, then sending the first as 
>> soon as the target actor ref is resolved
>>  - sends result of request back to user, and forwards the next request to 
>> the target actor
>>  - continues until all requests are satisfied, or until failure, or until 
>> timeout
>> 
>> -Endre
>> 
>> 
>> 
>> 
>> On Mon, Jan 20, 2014 at 1:23 PM, Robert Withers <[email protected]> wrote:
>> Hi, in browsing, I found that the RemoteActorRef, in RemoteActorRefProvider, 
>> calls this send. 
>> 
>> private[akka] abstract class RemoteTransport(val system: 
>> ExtendedActorSystem, val provider: RemoteActorRefProvider) {
>>   /**
>>    * Sends the given message to the recipient supplying the sender if any
>>    */
>>   def send(message: Any, senderOption: Option[ActorRef], recipient: 
>> RemoteActorRef): Unit
>> 
>> but I found no subclasses, so I was unable to find an actual implementation 
>> of send(…).  Where might I find that?
>> 
>> thank you,
>> 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.
>> 
>> 
>> 
>> -- 
>> Akka Team
>> Typesafe - The software stack for applications that scale
>> Blog: letitcrash.com
>> Twitter: @akkateam
>> 
>> -- 
>> >>>>>>>>>> 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.
> 
> 
> 
> -- 
> Cheers,
> √
> 
> Viktor Klang
> Concurrent, Distributed
> 
> Twitter: @viktorklang
> 
> -- 
> >>>>>>>>>> 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.

Reply via email to