====== Block reORGanization for Self-optimizing Storage Systems ====== ===== Authors ===== * [[http://www.cs.fiu.edu/~mbhad001/|Medha Bhadkamkar]] * [[http://www.cs.fiu.edu/~jguer022/|Jorge Guerra]] * [[http://www.cs.fiu.edu/~lusec001/|Luis Useche]] * Sam Burnett * Jason Liptak * [[http://www.cs.fiu.edu/~raju/|Raju Rangaswami]] * [[http://users.cs.fiu.edu/~vagelis/|Vagelis Hristidis]] ===== Abstract ===== This paper presents the design, implementation, and evaluation of BORG, a self-optimizing storage system that performs //automatic block reorganization// based on the observed I/O workload. BORG is motivated by three characteristics of I/O workloads: non-uniform access frequency distribution, temporal locality, and partial determinism in non-sequential accesses. To achieve its objective, BORG manages a small, dedicated partition on the disk drive, with the goal of servicing a majority of the I/O requests from within this partition with significantly reduced seek and rotational delays. BORG is transparent to the rest of the storage stack, including applications, file system(s), and I/O schedulers, thereby requiring no or minimal modification to storage stack implementations. We evaluated a Linux implementation of BORG using several real-world workloads, including individual user desktop environments, a web-server, a virtual machine monitor, and an SVN server. These experiments comprehensively demonstrate BORG's effectiveness in improving I/O performance and its incurred resource overhead. ===== Publications ===== * **BORG: Block-reORGanization for Self-optimizing Storage Systems** {{borg-fast09.pdf|pdf}} {{borg-fast09.ps|ps}}\\ Medha Bhadkamkar, Jorge Guerra, Luis Useche, Sam Burnett†, Jason Liptak, Raju Rangaswami, and Vagelis Hristidis\\ Proceedings of File and Storage Technologies (FAST), February, 2009. ===== Code ===== The code of BORG is not ready to be released. We hope to have a version ready some time soon. However, BORG has similarities to one of our previous projects -- [[..:exces:start|EXCES]]. Several details are the same in both projects and thus the EXCES code can be used as reference. ===== Traces ===== The traces we use to evaluate BORG are available at: [[resources:start#traces]]