Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #43596

Re: Threadpool item mailboxes design problem

Path csiph.com!usenet.pasdenom.info!news.albasani.net!newsfeed.freenet.ag!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <chris@rebertia.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.001
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'url:sourceforge': 0.03; 'dynamically': 0.07; 'extent': 0.07; 'apis': 0.09; 'chime': 0.09; 'feasible.': 0.09; 'instances.': 0.09; 'keys,': 0.09; 'subject:design': 0.09; 'cc:addr:python- list': 0.11; 'python': 0.11; 'thread': 0.14; 'actors': 0.16; 'dict': 0.16; 'instances,': 0.16; 'loops': 0.16; 'mean,': 0.16; 'subject:item': 0.16; 'url:kamaelia': 0.16; 'wrote:': 0.18; 'implementing': 0.19; 'cc:addr:python.org': 0.22; 'instance,': 0.24; 'subject:problem': 0.24; 'cc:2**0': 0.24; "i've": 0.25; '&gt;': 0.26; 'post': 0.26; 'least': 0.26; 'url:edu': 0.26; 'header:In-Reply-To:1': 0.27; 'external': 0.29; 'database,': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; '(perhaps': 0.31; 'continually': 0.31; 'libraries': 0.31; 'stuff': 0.32; 'url:python': 0.33; 'running': 0.33; '(e.g.': 0.33; 'implemented': 0.33; 'could': 0.34; 'something': 0.35; 'operations': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; '14,': 0.36; 'url:org': 0.36; 'too': 0.37; 'skip:& 10': 0.38; 'list,': 0.38; 'planning': 0.38; 'pm,': 0.38; 'rather': 0.38; 'space': 0.40; 'how': 0.40; 'even': 0.60; 'details.': 0.61; 'save': 0.62; 'more': 0.64; 'mailbox': 0.68; 'dict.': 0.84; 'or...': 0.84; 'sender:addr:chris': 0.84; 'url:contents': 0.84; 'url:latest': 0.91; '2013': 0.98
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=rebertia.com; s=google; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=Guj85LUL7LgfQ31H4NT3Tp/NahiOM+ZAQVyk7VQpuwo=; b=axkJLrTw2K9tmRu4tTomK9Ab8MYcT3XD5J2Mmc5o7HV+LceeEw22aKrz4yMCIPcjCD zS6T0KSpHBZ8Qb7e2rit/tAHSfUALjJPwHHo/6e89MRYE+jd+uNkZVSrz4P02kbKbEfo TpagwgwxDh+UHyY5Ao3DJt9+v/3EPj6HmzV9I=
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :x-gm-message-state; bh=Guj85LUL7LgfQ31H4NT3Tp/NahiOM+ZAQVyk7VQpuwo=; b=ikfJCwi/r9DtGL64jndIqHlHaBq3JB7PAhgZ1vfyLbXOhwFAbwv9lOWppGP6LQNa3s k74ZkugoqNQu3JvJbHS89z5MlIrLfZAB1oj4CUixdvBESaSaTdaFWm9R++jwvoyn2nqE Lq5d8uA2JK+ao3C5++lzpm8bKsBaqfKinV4H7bIa7gR2z8xejZmdcb/btcvmo9yWHD66 w2rkIo3XLyd+jQp9r0WgQmMldGRMWX8iGindGBAKv7F3dMHOBr+d+E1VDYKa/dPQp4Jv JhVIH1s4rM3VtW/CVyayHCl3/+PefNmXTLe/PWEuUU4PBHdbfHjb+8GaM3ic7dCAQPpJ CAqA==
MIME-Version 1.0
X-Received by 10.50.53.176 with SMTP id c16mr4174513igp.36.1365993174919; Sun, 14 Apr 2013 19:32:54 -0700 (PDT)
Sender chris@rebertia.com
In-Reply-To <516B37CB.1020607@earthlink.net>
References <516B37CB.1020607@earthlink.net>
Date Sun, 14 Apr 2013 19:32:54 -0700
X-Google-Sender-Auth d4l5WVZuaVaOF-tZkkFpRXfRowk
Subject Re: Threadpool item mailboxes design problem
From Chris Rebert <clp2@rebertia.com>
To Charles Hixson <charleshixsn@earthlink.net>
Content-Type multipart/alternative; boundary=f46d04339ca801deb304da5d12c8
X-Gm-Message-State ALoCoQkGeEtDGZ+qfkC23k4OfcWAvYbReLyp38BmpKifh/SVVof4c9m7h0uxviIvHFjpbsmWeEKG
Cc Python <python-list@python.org>
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.615.1365993185.3114.python-list@python.org> (permalink)
Lines 93
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1365993185 news.xs4all.nl 2656 [2001:888:2000:d::a6]:48128
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:43596

Show key headers only | View raw


[Multipart message — attachments visible in raw view] - view raw

On Apr 14, 2013 4:27 PM, "Charles Hixson" <charleshixsn@earthlink.net>
wrote:
>
> What is the best approach to implementing actors that accept and post
messages (and have no other external contacts).

You might look at how some of the existing Python actor libraries are
implemented (perhaps one of these might even save you from reinventing the
wheel):

http://www.pykka.org/en/latest/
http://www.kamaelia.org/Docs/Axon/Axon.html
https://pypi.python.org/pypi/pulsar

Kinda old:
http://candygram.sourceforge.net/contents.html
http://osl.cs.uiuc.edu/parley/

> So far what I've come up with is something like:
> actors     = {}
> mailboxs = {}
>
> Stuff actors with actor instances, mailboxes with multiprocessing.queue
instances.   (Actors and mailboxes will have identical keys, which are id#,
but it's got to be a dict rather than a list, because too many are rolled
out to disk.)  And I'm planning of having the actors running simultaneously
and continually in a threadpool that just loops through the actors that are
assigned to each thread of the pool.
<snip>
> It would, however, be better if the mailbox could be specific to the
threadpool instance, so less space would be wasted.  Or if the queues could
dynamically resize.  Or if there was a threadsafe dict.  Or...  But I don't
know that any of these are feasible.  (I mean, yes, I could write all the
mail to a database, but is that a better answer, or even a good one?)

My recollection is that the built-in collection types are threadsafe at
least to the limited extent that the operations exposed by their APIs (e.g.
dict.setdefault) are atomic.
Perhaps someone will be able to chime in with more details.

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: Threadpool item mailboxes design problem Chris Rebert <clp2@rebertia.com> - 2013-04-14 19:32 -0700

csiph-web