btier-1.2.2 : Things that have changed

Introduction:

It has been a while since I updated this blog about btier development. At a slow but steady pace I am however still fixing bugs and adding features. This article will explain what has changed as well as what is going to change in the future.

btier-1.2.x:

Btier-1.2.x is the new development branch of btier. For some time to come I will keep solving bugs in btier-1.x, however no new features will be implemented in the 1.2 branch.

Recently support to do direct io to underlying devices without using VFS was added for underlying devices that support it. When btier_setup is done with the new -B option writes to real underlying block devices will be done with submit_bio instead of vfs_write. Should a btier contain both devices and files then it will of course still use vfs_write to the underlying files. The benefit is not using vfs is the reduced overhead and therefore increased speed when the underlying devices are flash or ram based. In this case btier will now support speeds up to 170K IOPS.

Another new feature is that btier will now detect zero filled blocks coming in. When possible it will avoid writing them which will easily boost the speed up to more then 1GB/sec even when the underlying disk is a slow USB drive. What happens is that when a zero filled block comes in that a check is done to see if there is metadata for this block. When no existing metadata is present then btier will directly return success without doing anything else. We can do this since reads for blocks without metadata will be returned zero filled anyway.

Things to come:

In the near future more data awareness will be added. When btier starts to migrate a block from one tier to another it will detect a zero filled block. And instead of migrating this block it will  remove the metadata and issue a discard to the underlying device.Snapshots and native asynchronous replication will be next.

This entry was posted in Uncategorized. Bookmark the permalink.

2 Responses to btier-1.2.2 : Things that have changed

  1. Hi Mark,
    I still follow your great project and with this upcoming feature is very promising solution!
    Thanks for your work!
    Regards,

  2. Yi-Chun Lin says:

    Hello,

    I compiled with kernel linux-3.2 and got errors as follow:
    make error:「BIO_RW_BARRIER」 undeclared

    The code is in “LINUX_VERSION_CODE <= KERNEL_VERSION(3,10,1)"
    but I found BIO_RW_BARRIER no longer exist after linux-2.6.36.

    Any suggestion?
    Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>