[ANN] beanstalkd 0.5

mike mike503 at gmail.com
Tue Dec 11 22:17:33 UTC 2007


Question:

Does this -use- memcached, or is it basically a copy of memcached that
has been modified to fit a job queue type model?

Does it use memcached libraries, or is it totally independent?

I think it's a neat idea, however, for a work queue, I would think
that it would be important to have guarantees (unless it guarantees it
by processing it until it's done)

memcached is volatile and can be empty or unavailable at any time, and
the application should be able to function without it. Does this job
queueing system function the same way? Since it is designed
specifically with that purpose in mind it would not make sense to make
a second job queue system (like the difference of using memcached as a
CACHE vs. a DATA STORE) ...

I hope this makes sense.

On 12/11/07, Keith Rarick <kr.philotic at gmail.com> wrote:
> I'm happy to announce the release of beanstalkd 0.5.
>
> This is the very first public release. In the future I'll confine
> release announcements to the beanstalk mailing list.
>
>
> WHAT IS BEANSTALKD?
> -------------------
>
> Beanstalkd is a fast, distributed, in-memory workqueue service. Its
> interface is generic, but is intended for use in reducing the latency
> of page views in high-volume web applications by running most
> time-consuming tasks asynchronously.
>
> Philotic, Inc. developed beanstalkd to improve the response time for
> the Causes on Facebook (http://apps.facebook.com/causes/) application
> (with over 9.5 million users). Beanstalkd drastically decreased the
> average response time for the most common pages to a tiny fraction of
> the original and dramatically improved the user experience.
>
> Stay tuned for a Rails plugin called Async Observer that will make
> using beanstalk in your Rails project a snap!
>
>
> OUR FEW URLS
> ------------
>
> Download the 0.5 tarball and learn all about beanstalk:
> http://xph.us/software/beanstalkd/
>
> Talk about beanstalk development or use at:
> http://groups.google.com/group/beanstalk-talk
>
>
> HOW TO RUN IT
> -------------
>
> First, run beanstalkd on two or three machines. There is no
> configuration file and only a handful of command-line options.
>
>  $ ./beanstalkd -d -l 10.0.1.5 -p 11300
>
> This starts up beanstalkd as a daemon listening on address 10.0.1.5,
> port 11300. If you want to spy on what beanstalkd is doing, recompile
> it in debug mode.
>
>
> HOW TO USE IT
> -------------
>
> Here's an example in Ruby. First, have one process put a job into the
> queue:
>
>
>  beanstalk = Beanstalk::Pool(['localhost:11300'])
>  ...
>  beanstalk.put('hello')
>
>
> Then start another process to take jobs out of the queue and run them:
>
>
>  beanstalk = Beanstalk::Pool(['localhost:11300'])
>  loop do
>    j = beanstalk.reserve
>    puts j.body # prints "hello"
>    j.delete
>  end
>
>
> DEPENDENCY
> ----------
>
> Beanstalkd requires libevent. It was developed with libevent 1.3b, but
> it may work with other versions.
>
> http://monkey.org/~provos/libevent/
>
>
> KNOWN BUGS
> ----------
>
>  * The min heap data structure is not dynamically-sized. This means a
>   fixed hard limit on the number of ready jobs (by default set to
>   around 16 million).
>
>  * The policy of signalling errors by closing the connection is wrong.
>   The server should send a helpful error response whenever possible
>   and only close the connection as a last resort.
>
>
> kr
>


More information about the memcached mailing list