1. 12 10月, 2010 1 次提交
    • T
      ocfs2: Add a mount option "coherency=*" to handle cluster coherency for O_DIRECT writes. · 7bdb0d18
      Tristan Ye 提交于
      Currently, the default behavior of O_DIRECT writes was allowing
      concurrent writing among nodes to the same file, with no cluster
      coherency guaranteed (no EX lock held).  This can leave stale data in
      the cache for buffered reads on other nodes.
      
      The new mount option introduce a chance to choose two different
      behaviors for O_DIRECT writes:
      
          * coherency=full, as the default value, will disallow
                            concurrent O_DIRECT writes by taking
                            EX locks.
      
          * coherency=buffered, allow concurrent O_DIRECT writes
                                without EX lock among nodes, which
                                gains high performance at risk of
                                getting stale data on other nodes.
      Signed-off-by: NTristan Ye <tristan.ye@oracle.com>
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      7bdb0d18
  2. 06 5月, 2010 3 次提交
    • M
      ocfs2: Add dir_resv_level mount option · 83f92318
      Mark Fasheh 提交于
      The default behavior for directory reservations stays the same, but we add a
      mount option so people can tweak the size of directory reservations
      according to their workloads.
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      83f92318
    • M
      ocfs2: change default reservation window sizes · b07f8f24
      Mark Fasheh 提交于
      The default reservation size of 4 (32-bit windows) is a bit too ambitious.
      Scale it back to 16 bits (resv_level=2). I have been testing various sizes
      on a 4-node cluster which runs a mixed workload that is heavily threaded.
      With a 256MB local alloc, I get *roughly* the following levels of average file
      fragmentation:
      
      resv_level=0	70%
      resv_level=1	21%
      resv_level=2	23%
      resv_level=3	24%
      resv_level=4	60%
      resv_level=5	did not test
      resv_level=6	60%
      
      resv_level=2 seemed like a good compromise between not letting windows be
      too small, but not so big that heavier workloads will immediately suffer
      without tuning.
      
      This patch also change the behavior of directory reservations - they now
      track file reservations.  The previous compromise of giving directory
      windows only 8 bits wound up fragmenting more at some window sizes because
      file allocations had smaller unused windows to poach from.
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      b07f8f24
    • M
      ocfs2: allocation reservations · d02f00cc
      Mark Fasheh 提交于
      This patch improves Ocfs2 allocation policy by allowing an inode to
      reserve a portion of the local alloc bitmap for itself. The reserved
      portion (allocation window) is advisory in that other allocation
      windows might steal it if the local alloc bitmap becomes
      full. Otherwise, the reservations are honored and guaranteed to be
      free. When the local alloc window is moved to a different portion of
      the bitmap, existing reservations are discarded.
      
      Reservation windows are represented internally by a red-black
      tree. Within that tree, each node represents the reservation window of
      one inode. An LRU of active reservations is also maintained. When new
      data is written, we allocate it from the inodes window. When all bits
      in a window are exhausted, we allocate a new one as close to the
      previous one as possible. Should we not find free space, an existing
      reservation is pulled off the LRU and cannibalized.
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      d02f00cc
  3. 14 11月, 2009 1 次提交
  4. 06 1月, 2009 1 次提交
  5. 02 12月, 2008 1 次提交
  6. 14 10月, 2008 2 次提交
  7. 26 1月, 2008 4 次提交
  8. 12 9月, 2007 1 次提交
  9. 08 12月, 2006 1 次提交
  10. 30 11月, 2006 1 次提交
  11. 04 2月, 2006 1 次提交
  12. 04 1月, 2006 1 次提交