[sheepdog-users] [ANNOUNCE] sheepdog stable release v0.9.5
menjo.takashi at lab.ntt.co.jp
Wed Mar 1 07:09:56 CET 2017
I released sheepdog stable release v0.9.5.
You can download source code from here:
## KNOWN ISSUES
### Distributed deadlock
Distributed deadlock tends to occur when many requests causing update
of reference count (eg: writing to the working VDI whose snapshot has
been taken; or deleting such a working VDI or its snapshot) come to
the Sheepdog cluster in parallel and the number of threads handling
such requests is too small. In such a case, alive as a process, the
sheep cannot handle some kind of requests at all, such as read, write
and remove objects.
Workaround: set the number of threads for *gateway* and *io*
workqueues large enough. It's recommended that you set it to larger
than twice of *N* for *gateway* and larger than *N* for *io*. Here,
*N* is the number of VDIs in the cluster copied-on-write or deleted
See #362 and #368 for more information.
- Unlimited workqueue is now removed and changed to dynamic one.
This is for sheep not to consume a huge amount of memory by
creating new threads infinitely under heavy load, and to avoid
being shot by OOM-killer.
- Ledger objects are now updated synchronously. This makes it easy
for us to estimate the necessary number of threads for avoiding
distributed deadlock, in exchange for performance of copy-on-write,
including deleting VDI.
- zk_control now can purge znodes within 24 hours. It purges znodes
created before the given threshold. This is useful if tens of
thousands of znodes are created in a day.
- Fixed workqueue: sets and limits the number of threads in a sheep
process. You can get stable performance with this if tuned properly.
SHEEP COMMAND INTERFACE:
- New option "-q" to set fixed workqueue (default: disabled i.e.
the number of threads increases and decreases automatically)
**(Note that this option will be changed to -w in version 1.0.1.)**
- New option "-x" to set the maximum number of threads for dynamic
workqueue. (default: decided by "max(#nodes,#cores,16)*2" formula)
ZK_CONTROL COMMAND INTERFACE:
- The "purge" subcommand can take a non-negative integer as a
threshold in seconds. (default: 86400 (24 hours))
- Print object IDs in 16-digit zero-padded hexadecimal to sheep.log.
Takashi Menjo <menjo.takashi at lab.ntt.co.jp>
More information about the sheepdog-users