Skip to content
This repository
tag: 1.0

Aug 18, 2010

  1. Add a section on tuning XFS for flashcache.

    authored August 18, 2010

Aug 17, 2010

  1. Move the ioctl code to a different file (flashcache_ioctl.c).

    authored August 17, 2010
  2. Replace a superflous if() in the write_merge code with an assertion.

    authored August 17, 2010
  3. Fix up some comments and whitespace.

    authored August 17, 2010
  4. Changes to the cache miss (readfill) path to send out longer (sorted)

    chains of writes to the ssd.
    authored August 17, 2010
  5. Fix an overflow bug in the computation of cache percent and dirty per…

    …cent.
    authored August 17, 2010
  6. Remove an unnecessary (and potentially confusing) #define.

    authored August 17, 2010

Aug 06, 2010

  1. Refactor flashcache_read/flashcache_write, moving some code into

    functions for better readability.
    authored August 06, 2010

Aug 03, 2010

  1. Add a flashcache release number, exported by /proc/flashcache_version…

    … (and
    
    /proc/flashcache_wt_version).
    authored August 03, 2010

Aug 02, 2010

  1. (Ported forth from the writeback version).

    Fix for a data corruption that can occur with non co-ordinated IOs for
    a block. The requirement for this bug to occur is for concurrent
    Writes and Reads *of the same block* to be sent down. Not likely to
    occur in production if we go through the pagecache (or with InnoDB
    doing O_DIRECT), because buffers undergoing IO will be locked.
    
    The bug occurs because concurrent IOs (at least one of which must be a
    Write, and at least one which which must be uncached in flashcache),
    can get re-ordered. The fix is to handle uncached IOs totally within
    flashcache and invalidate overlapping blocks on the completion of an
    uncached IO.
    
    Although this bug is unlikely to occur in production, it is a good
    idea to upgrade.
    
    Thanks to Paul Saab for finding this bug.
    authored August 02, 2010
  2. Fix for a data corruption that can occur with non co-ordinated IOs for

    a block. The requirement for this bug to occur is for concurrent
    Writes and Reads *of the same block* to be sent down. Not likely to
    occur in production if we go through the pagecache (or with InnoDB
    doing O_DIRECT), because buffers undergoing IO will be locked.
    
    The bug occurs because concurrent IOs (at least one of which must be a
    Write, and at least one which which must be uncached in flashcache),
    can get re-ordered. The fix is to handle uncached IOs totally within
    flashcache and invalidate overlapping blocks on the completion of an
    uncached IO.
    
    Although this bug is unlikely to occur in production, it is a good
    idea to upgrade. (The fastest way to upgrade is to do a "fast"
    shutdown, followed by a reload of the module and device load).
    
    Thanks to Paul Saab for finding this bug.
    authored August 02, 2010

Jul 21, 2010

  1. Add some more stats. Add one more /proc node for exporting io size

    histograms via /proc. Part of the effort to get the open source repo
    in sync with the internal facebook repo.
    authored July 21, 2010
  2. Completely re-designed cache controls. The new design is documented

    in the SA Guide.
    authored July 21, 2010

Jul 20, 2010

  1. Refactor some code, introducing a new function and moving code into it.

    authored July 20, 2010
  2. Remove a unnecessary check in the dirty block cleaning path for the

    LRU reclaim policy.
    authored July 20, 2010
  3. At flashcache load/create/remove, do larger metadata IOs (256KB IOs i…

    …nstead
    
    of 1 sector). This speeds up load, create and (fast) removal significantly
    by factors of 19x, 12x and 8x respectively. Bring them down to <= 10s for a
    152GB cache (Intel SSD).
    authored July 20, 2010

Jul 19, 2010

  1. Make the default flashcache blocksize 4KB.

    authored July 19, 2010
  2. When stop_sync is set, don't stop any dirty-threshold driven cleanings.

    Only stop explicit syncs.
    authored July 19, 2010
  3. On a dmsetup remove, loop around the sync until all dirty blocks are

    cleaned. dmsetup table dumps out the ssd and disk dev names.
    authored July 19, 2010

Jun 10, 2010

  1. Remove references to using a 16KB blocksize. And document that the

    4KB blocksize is the right choice.
    authored June 09, 2010

Jun 01, 2010

  1. DKM conf files added.

    Contributed by Graeme Humphries <graeme at sudo dot ca>.
    authored June 01, 2010
  2. Add a LICENSE file. Update the README with a line that says Flashcache

    is GPLv2.
    authored June 01, 2010

May 28, 2010

  1. Port flashcache_wt to later Linux releases (2.6.27 - 2.6.32).

    Eliminate compile warnings.
    authored May 28, 2010
  2. Fix outdated comments and very minor cleanups.

    authored May 27, 2010
  3. Commit a "write through" variant of flashcache. Changes to the top level

    README to document that and a change to the flashcache sa-guide.
    authored May 27, 2010

May 26, 2010

  1. Add instructions on building Flashcache for CentOS5.4.

    Author : Vadim Tkachenko of Percona.
    authored May 26, 2010
  2. Add checks to flashcache_destroy for DIRTY blocks. Abort a destroy

    if dirty blocks are present in the cache. Add a -f option to
    flascache_destroy to proceed destroying the cache even if dirty
    blocks are present.
    authored May 26, 2010

May 20, 2010

  1. Flashcache port to newer Linux releases (2.6.20-2.6.32).

    Port done by Vadim Tkachenko (Percona) with help from Mohan.
    authored May 20, 2010

May 19, 2010

  1. Fix a bug in the sync path, where a do_sync sometimes wouldn't reliably

    sync all dirty blocks to disk. Add a "stop_sync" sysctl that stops a sync
    that is in progress.
    authored May 19, 2010
  2. Document flashcache_create -f

    authored May 19, 2010

Apr 21, 2010

  1. Initial import of flashcache.

    A write back block cache Linux kernel module.
    authored April 21, 2010
Something went wrong with that request. Please try again.