IPC::DirQueue 0.06 released
[email protected] ((Justin Mason)) Mon, 09 Jan 2006 18:44:59 -0800
| Newsgroups | perl.ipc.dirqueue |
|---|---|
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
hey all --
I've just uploaded v0.06 of IPC::DirQueue. This has a few interesting
changes; lemme quote CHANGES on the big ones:
- API CHANGE: invalid metadata in an enqueued job will now causes die()
to be called, instead of silent ignore.
- add dq-indexd, an optional, experimental central server to maintain DQ
indexes, instead of using readdir() filesystem APIs. It requires POE
- fix race condition in wait_for_queued_job() that can result in missing
jobs enqueued inside the same 1-second window. This would only
manifest if no further files were enqueued to the same dir.
- make the 600-second active-lock timeout configurable; document it
better; and reconcile code behaviour with what the documentation
says it does re behaviour when a stale lock occurs on a task
supposedly active on a remote system. (The code was changed to
match the documentation.)
- fixed a long-running bug; left-over control files in 'active'. Turns
out these were a side effect of qproc A completing a task before qproc
B even started creating a lockfile; in that case, qproc B would get a
lock on the now-complete task, then find that the queue control file
was nonexistent and give up, attempting to remove the 'active' file,
but instead unlinking the now-already-unlinked temporary filename, and
leaving the real 'active' file behind. Totally harmless, fixed
anyway.
- support Reiserfs and XFS queue dirs, which do not update directory
mtimes when a file is creating within them.
- patch from Anton Berezin <tobez.at.tobez.org>: return reference of
sorted files list internally, and use built-in sort instead of a {
$a cmp $b } callback. Both are good for speed of ordered
dequeuing
It's filtering through CPAN now. I wouldn't recommend using dq-indexd
for anything serious just yet -- it's still experimental! -- but the
rest of those features are solid, and the fix for the "leftover control
files" bug is welcome. ;)
for what it's worth, here's some dq-indexd benchmarks from a mixed
ethernet/wireless (home) network, in case you all are curious ;) --
LOCAL TIMINGS:
85changing_indexd.t
real 0m53.525s user 0m5.228s sys 0m0.446s
real 0m53.452s user 0m5.113s sys 0m0.536s
real 0m53.437s user 0m5.411s sys 0m0.454s
85changing_ordered.t
real 0m52.359s user 0m0.350s sys 0m0.121s
real 0m52.432s user 0m0.352s sys 0m0.104s
real 0m51.588s user 0m0.256s sys 0m0.077s
85changing_basic.t
real 0m52.314s user 0m0.143s sys 0m0.043s
real 0m51.337s user 0m0.346s sys 0m0.106s
real 0m52.480s user 0m0.345s sys 0m0.122s
REMOTE TIMINGS:
85changing_indexd.t
real 3m07.718s user 0m3.191s sys 0m1.065s
real 3m06.452s user 0m3.881s sys 0m1.324s
real 3m09.563s user 0m3.532s sys 0m1.244s
85changing_ordered.t
real 3m21.705s user 0m0.646s sys 0m0.836s
real 3m31.031s user 0m0.630s sys 0m1.002s
real 3m26.674s user 0m0.645s sys 0m1.027s
85changing_basic.t
real 3m46.062s user 0m0.585s sys 0m0.764s
real 3m40.202s user 0m0.465s sys 0m0.609s
real 3m49.065s user 0m0.558s sys 0m0.854s
cheers,
- --j.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Exmh CVS
iD8DBQFDwx+rMJF5cimLx9ARAkphAJ4xSceOTjc/6q55vlrgvXCt0EKOrACfXYXk
inMnkoDQb2XRo7k7m6XrGfw=
=TGm3
-----END PGP SIGNATURE-----