On 11/05/2012 03:22 PM, MORITA Kazutaka wrote: > I'd like to have an option to enable O_DIRECT for backend I/Os even if > journaling is enabled. We want to save memory to run as many VMs as > possible. > I haven't test this scenario, I'd expect a performance degradation due to extra journal write if we use external mode (around 20~40% I guess). For internal mode, it would be even worse. I am not sure for this scene, if journaling is really worth of it. But it is okay for us to provide an option for it. >> > ====================================================================== >> > Work remains: >> > Besides the code, I want to hear more comment on how the interface should be >> > programmed. >> > >> > I think of following interface: >> > -j internal,size=256 # which enables journaling and log updates on the same disk >> > with the log device size 256M bytes >> > -j external=/path/to/directory # which enables journaling and log updates on >> > external device with the default size 512M >> > -j external=/path/to/directory,skip # like above but skip journal recovery at startup > I have a patch in my queue to refine sheep command option handling > like collie. With the patch, sheep option syntax is as follows: > > -<ch> <name>[:<key>=<value>,<key>=<value>,....] > > Key and value pairs are optional. E.g. > > -p 7001 > -c zookeeper:servers=xx.xx.xx.xx,yy.yy.yy.yy > -w object:size=100M,nopagecache=true > > Can we use this syntax for journal options too? > > -j internal:size=256M > -j external:file=/path/to/directory > -j external:file=/path/to/directory,skip=true > With a second thought, 'internal' and 'external' can be omitted. -j {dir=..., skip, size=...} is sufficient. >> > >> > I am not sure if we should enable journaling as default because this journaling run >> > almost the same perf even as internal journal device. > I think we should add this feature as an optional one at first. I'd > like to see how it works on my and other's environment before enabling > it by default. Looks okay to me. Thanks, Yuan |