[sheepdog] [PATCH v4 0/5] add support to non-aglined read/write/create

MORITA Kazutaka morita.kazutaka at lab.ntt.co.jp
Thu May 23 05:49:46 CEST 2013


At Thu, 23 May 2013 11:38:07 +0800,
Liu Yuan wrote:
> 
> On 05/23/2013 11:27 AM, Liu Yuan wrote:
> > v4:
> >  - do_aligned_write before journaling to avoid double journaling
> > 
> > v3:
> >  - only read first and last sector for write
> >  - inline flags_direct
> >  - use & algo for aligned_sector
> >  - remove constraint for sheepfs
> >  - refine test
> > 
> > Liu Yuan (5):
> >   util: add a helper round_down
> >   plain store: add support to non-aglined read/write
> >   collie: don't round_up vdi size & read/write
> >   tests: add a tests/063 to test unaligned read/write/create
> >   sheepfs: remove the align constraint
> > 
> >  collie/vdi.c        |   12 +------
> >  include/util.h      |    3 +-
> >  sheep/journal.c     |    6 ++--
> >  sheep/plain_store.c |  100 +++++++++++++++++++++++++++++++++++++++++++++++----
> >  sheepfs/volume.c    |    5 ---
> >  tests/062           |   44 +++++++++++++++++++++++
> >  tests/062.out       |   10 ++++++
> >  tests/group         |    1 +
> >  8 files changed, 154 insertions(+), 27 deletions(-)
> >  create mode 100755 tests/062
> >  create mode 100644 tests/062.out
> > 
> 
> I'm wondering, if dropping O_DIRECT for unaligned read/write the
> simplest and more suitable method? This just sacrifice more memory but
> result a much simpler code to maintain.

Dropping O_DIRECT looks better to me.  If we don't want to use page
cache for the object, we can use posix_fadvise(POSIX_FADV_DONTNEED) to
drop the cache.

Thanks,

Kazutaka



More information about the sheepdog mailing list