<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Composing Actors</title>
	<atom:link href="http://www.dalnefre.com/wp/2010/05/composing-actors/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dalnefre.com/wp/2010/05/composing-actors/</link>
	<description>Exploring the design and implementation of reliable, scalable, massively-concurrent computer systems</description>
	<lastBuildDate>Fri, 17 Feb 2012 04:14:18 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: Dale Schumacher</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-16014</link>
		<dc:creator>Dale Schumacher</dc:creator>
		<pubDate>Mon, 07 Nov 2011 14:18:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-16014</guid>
		<description>See http://www.dalnefre.com/wp/2011/11/high-availability-for-mutable-shared-state/#queue for an &lt;b&gt;O&lt;/b&gt;(1) Banker&#039;s Queue implementation that could be used to implement the &quot;pending&quot; list here.</description>
		<content:encoded><![CDATA[<p>See <a href="http://www.dalnefre.com/wp/2011/11/high-availability-for-mutable-shared-state/#queue" rel="nofollow">http://www.dalnefre.com/wp/2011/11/high-availability-for-mutable-shared-state/#queue</a> for an <b>O</b>(1) Banker&#8217;s Queue implementation that could be used to implement the &#8220;pending&#8221; list here.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: High Availability for Mutable Shared State</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-16012</link>
		<dc:creator>High Availability for Mutable Shared State</dc:creator>
		<pubDate>Mon, 07 Nov 2011 13:14:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-16012</guid>
		<description>[...] previous articles, when we needed to defer customers, we often used a simple stack built by pairing new [...]</description>
		<content:encoded><![CDATA[<p>[...] previous articles, when we needed to defer customers, we often used a simple stack built by pairing new [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dale Schumacher</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-10612</link>
		<dc:creator>Dale Schumacher</dc:creator>
		<pubDate>Wed, 01 Jun 2011 12:44:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-10612</guid>
		<description>@senderista Good Observation.  I wanted to keep the description simple, so I used the easy-to-implement push/pop operations to store deferred messages.  This is somewhat justified on the basis that there are no assurances about message delivery order in the actor model.

Also, services are expected to generally keep up with demand, so the deferred message buffer with generally be short and empty often.  This is true of any service.  If it&#039;s protected by a serializer, messages will pile up in the deferred message buffer.  If not, messages can still pile up in the message delivery system of the actor runtime.  I expect to be posting a few articles that address this issue by providing back-pressure and flow-control among producers and consumers.</description>
		<content:encoded><![CDATA[<p>@senderista Good Observation.  I wanted to keep the description simple, so I used the easy-to-implement push/pop operations to store deferred messages.  This is somewhat justified on the basis that there are no assurances about message delivery order in the actor model.</p>
<p>Also, services are expected to generally keep up with demand, so the deferred message buffer with generally be short and empty often.  This is true of any service.  If it&#8217;s protected by a serializer, messages will pile up in the deferred message buffer.  If not, messages can still pile up in the message delivery system of the actor runtime.  I expect to be posting a few articles that address this issue by providing back-pressure and flow-control among producers and consumers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: senderista</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-10590</link>
		<dc:creator>senderista</dc:creator>
		<pubDate>Tue, 31 May 2011 19:29:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-10590</guid>
		<description>Storing pending messages in a linked list has O(1) push/pop, but also implies LIFO semantics, which means the serializer is liable to starve earlier clients once throughput reaches steady state. (FIFO semantics would require yet another queue implementation.)</description>
		<content:encoded><![CDATA[<p>Storing pending messages in a linked list has O(1) push/pop, but also implies LIFO semantics, which means the serializer is liable to starve earlier clients once throughput reaches steady state. (FIFO semantics would require yet another queue implementation.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Java Plain Old Concurrent Object &#171; Josef&#039;s Blog</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-10253</link>
		<dc:creator>Java Plain Old Concurrent Object &#171; Josef&#039;s Blog</dc:creator>
		<pubDate>Sun, 22 May 2011 14:33:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-10253</guid>
		<description>[...] · Schumacher, Dale, &#8220;Composing Actors&#8221;, &#8220;blog It&#8217;s Actors All The Way Down&#8221;, http://www.dalnefre.com/wp/2010/05/composing-actors/ [...]</description>
		<content:encoded><![CDATA[<p>[...] · Schumacher, Dale, &#8220;Composing Actors&#8221;, &#8220;blog It&#8217;s Actors All The Way Down&#8221;, <a href="http://www.dalnefre.com/wp/2010/05/composing-actors/" rel="nofollow">http://www.dalnefre.com/wp/2010/05/composing-actors/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dale Schumacher</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-9498</link>
		<dc:creator>Dale Schumacher</dc:creator>
		<pubDate>Sat, 30 Apr 2011 13:04:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-9498</guid>
		<description>The point of this article is to illustrate how arbitrary collections of actors can be treated as a single actor.  This allows scaling, by composition, to arbitrarily large systems, while maintaining the guarantee of correct concurrent behavior.  I chose the queue as a simple-to-understand example, but this applies to services as complex as a full database.  As you noted, the actor approach avoids blocking the whole system while delaying responses to customers contending for the same resource.

The implementation details of the queue, like any actor, are conveniently encapsulated behind the asynchronous messaging interface.  You are free to use any representation you like within the actor&#039;s behavior, as long as you support the expected message protocol.  The implementation I chose here has O(1) performance.</description>
		<content:encoded><![CDATA[<p>The point of this article is to illustrate how arbitrary collections of actors can be treated as a single actor.  This allows scaling, by composition, to arbitrarily large systems, while maintaining the guarantee of correct concurrent behavior.  I chose the queue as a simple-to-understand example, but this applies to services as complex as a full database.  As you noted, the actor approach avoids blocking the whole system while delaying responses to customers contending for the same resource.</p>
<p>The implementation details of the queue, like any actor, are conveniently encapsulated behind the asynchronous messaging interface.  You are free to use any representation you like within the actor&#8217;s behavior, as long as you support the expected message protocol.  The implementation I chose here has O(1) performance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Delucia</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-9473</link>
		<dc:creator>Delucia</dc:creator>
		<pubDate>Thu, 28 Apr 2011 20:44:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-9473</guid>
		<description>I realize now the difference which is in the case of locking the client will be blocked while in the actor model it won&#039;t. This is a big difference because in order to achieve the same effect in OO (not blocking) it will require more code than with the actor model.

I have a question regarding the functional nature of the solutions. Is this part of actor model or is it specific to humus or is it just the way you prefer to do it?

For example, is it ok to implement an queue using on actor that keeps an internal list to hold items since the actor process one message at a time?</description>
		<content:encoded><![CDATA[<p>I realize now the difference which is in the case of locking the client will be blocked while in the actor model it won&#8217;t. This is a big difference because in order to achieve the same effect in OO (not blocking) it will require more code than with the actor model.</p>
<p>I have a question regarding the functional nature of the solutions. Is this part of actor model or is it specific to humus or is it just the way you prefer to do it?</p>
<p>For example, is it ok to implement an queue using on actor that keeps an internal list to hold items since the actor process one message at a time?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Delucia</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-9410</link>
		<dc:creator>Delucia</dc:creator>
		<pubDate>Tue, 26 Apr 2011 16:13:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-9410</guid>
		<description>I&#039;m interested in the actor paradigm. However, the queue implementation is far more complicated than the OO approach and I don&#039;t see the added value.  Basically the serializer is doing locking to allow processing of one message at a time. Creating an equivalent in an imperative language like python is trivial with the same performance characteristics and far less code. Please correct me if I&#039;m wrong.</description>
		<content:encoded><![CDATA[<p>I&#8217;m interested in the actor paradigm. However, the queue implementation is far more complicated than the OO approach and I don&#8217;t see the added value.  Basically the serializer is doing locking to allow processing of one message at a time. Creating an equivalent in an imperative language like python is trivial with the same performance characteristics and far less code. Please correct me if I&#8217;m wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dale Schumacher</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-9137</link>
		<dc:creator>Dale Schumacher</dc:creator>
		<pubDate>Thu, 21 Apr 2011 14:27:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-9137</guid>
		<description>I suggest you take a look at &lt;a href=&quot;http://akka.io/&quot; rel=&quot;nofollow&quot;&gt;Akka&lt;/a&gt; and &lt;a href=&quot;http://nodejs.org/&quot; rel=&quot;nofollow&quot;&gt;node.js&lt;/a&gt; as possible starting-points.  Akka is explicitly actor-based, and node.js is built on asynchronous messaging, which can lead to larger-scale actor-like designs.</description>
		<content:encoded><![CDATA[<p>I suggest you take a look at <a href="http://akka.io/" rel="nofollow">Akka</a> and <a href="http://nodejs.org/" rel="nofollow">node.js</a> as possible starting-points.  Akka is explicitly actor-based, and node.js is built on asynchronous messaging, which can lead to larger-scale actor-like designs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy Oliver</title>
		<link>http://www.dalnefre.com/wp/2010/05/composing-actors/comment-page-1/#comment-9101</link>
		<dc:creator>Roy Oliver</dc:creator>
		<pubDate>Wed, 20 Apr 2011 16:16:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.dalnefre.com/wp/?p=15#comment-9101</guid>
		<description>Actors are indeed powerful, yet are there any concrete simple (if possible) web project examples?</description>
		<content:encoded><![CDATA[<p>Actors are indeed powerful, yet are there any concrete simple (if possible) web project examples?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

