It is a long time since last release, but anyway, we have new version
now, and new feature is ready! Lots of people here request the
multiple queue feature, now it is shipped!
MemcacheQ is a damn simple queue service over memcache protocol, just
set for append and get for consume. Any memcached clients can do queue
operations on MemcacheQ. It is very fast, and can do tens of thousands
append/comsume operations per second.
Please visit http://memcachedb.org/memcacheq for more info(also
howtos), and you can download it from:
http://code.google.com/p/memcacheq/downloads/list
Please post your bugs and issues to the mailing list, and any feedback
is welcome!
Thanks mark for his bombing on my mailbox that makes me keep working on it :P
Enjoy!
--
Steve Chu
http://stvchu.org
this is the best of all the open-source queuing solution ever!!!!
simple, fast and rocks out loud!!!
> Thanks mark for his bombing on my mailbox that makes me keep working on it :P
hei steve.. thanks a lot for taking time to work on this!! this is
great!! thanks again!!!
>
> Does it ever drop queued items?
No, it is persistent(we use Berkeley DB TDS in our backend). But for
'-N' mode, if the server daemon crashed, it will lose the data in the
write buffer(the size determined by you with '-L' option), seem we
should use replication for this situation, but a bit complicated.
>
> Can you compare it to gearmand/beanstalkd/starling?
>
We need a queue component that we know all the details(I mean the code
base, and when something bad happened, we can solve it easily). We do
not use Perl, we do not use Ruby, so we do not use gearmand and
starling. The application developers in our company are very familiar
with memcached clients, so we take the memcache protocol as a
consideration.
You mean the non-blocked I/O model? What properties that make it
quite poorly? Can you give us a bit more detail?
> You can certainly work
> around them, but if the goal is to get it to work with existing
> memcached clients, then you've recreated starling (including the part
> where it forces the clients to poll for jobs, which will cause you to
> try to balance between pickup latency and massive CPU utilization on
> both server and client).
>
> If it's stateless, then you also have to have semantics for jobs
> that get dropped by clients. e.g. if I ask for a job and then
> immediately crash, does the job get run?
Yes, this is a problem we should solve. Maybe a visible timeout and
explicit delete will make this done, but also a bit more complicated
to end users.
>
> Of course, I'm not trying to suggest there shouldn't be innovation
> in this space, but there are a *lot* of options, and I don't
> understand what the others are lacking (I've used and written several
> myself).
>
--
Steve Chu
http://stvchu.org
beanstalkd is too complicated.. with tubes and stuff like that.. and
it is not persistent.. and getting started is not easy.. all i want is
a q server, that has multiple queues, and follows a very simple
protocol like memcaches.. memcacheq is perfect in such a scenario...