object cache: destroy lock for vdi deletion

Signed-off-by: Liu Yuan <tailai.ly@taobao.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
object cache: add a push work queue

This is a prepare patch for 'optimize push phase of dirty objects'.

- Prefix work queues of object cache as 'oc_'.

Signed-off-by: Liu Yuan <tailai.ly@taobao.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
object cache: clean up codes and introduce cache lock helpers

- refine {get,put}_cache_entry helpers
- clean up mis-aligned lines
- use stack for path operation for create_dir_for()

This is a prepare patch for 'optimize push phase of dirty objects'.

Signed-off-by: Liu Yuan <tailai.ly@taobao.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
object cache: optimize push phase of dirty objects

- Don't grab cache lock tight so we can serve RW requests while pushing.
  It is okay for allow subsequent RW after FLUSH because we only need to
  garantee the dirty objects before FLUSH to be pushed.
- Use threaded AIO to hugely boost push performance, such as fsync(2) from VM.

Some test results:
mkfs's time drop roughly by 33%
new OS installation time drop roughly by 36%

Signed-off-by: Liu Yuan <tailai.ly@taobao.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
sheep, collie: use snprintf instead of sprintf to avoid buffer overflow

Signed-off-by: Liu Yuan <tailai.ly@taobao.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
zookeeper: use MAX_NODE_STR_LEN macro for node path

Signed-off-by: Liu Yuan <tailai.ly@taobao.com>
Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>