[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/2685048.2685055acmotherconferencesArticle/Chapter ViewAbstractPublication PagesosdiConference Proceedingsconference-collections
Article

Willow: a user-programmable SSD

Published: 06 October 2014 Publication History

Abstract

We explore the potential of making programmability a central feature of the SSD interface. Our prototype system, called Willow, allows programmers to augment and extend the semantics of an SSD with application-specific features without compromising file system protections. The SSD Apps running on Willow give applications low-latency, high-bandwidth access to the SSD's contents while reducing the load that IO processing places on the host processor. The programming model for SSD Apps provides great flexibility, supports the concurrent execution of multiple SSD Apps in Willow, and supports the execution of trusted code in Willow.
We demonstrate the effectiveness and flexibility of Willow by implementing six SSD Apps and measuring their performance. We find that defining SSD semantics in software is easy and beneficial, and that Willow makes it feasible for a wide range of IO-intensive applications to benefit from a customized SSD interface.

References

[1]
A. Acharya, M. Uysal, and J. Saltz. Active disks: Programming model, algorithms and evaluation. In Proceedings of the Eighth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS VIII, pages 81-91, New York, NY, USA, 1998. ACM.
[2]
L. A. Adamic and B. A. Huberman. Zipf's law and the Internet. Glottometrics, 3:143-150, 2002.
[3]
Bcache. http://bcache.evilpiepirate.org/.
[4]
http://www.beecube.com/platform.html.
[5]
M. S. Bhaskaran, J. Xu, and S. Swanson. BankShot: Caching slow storage in fast non-volatile memory. In First Workshop on Interactions of NVM/Flash with Operating Systems and Workloads, INFLOW '13, 2013.
[6]
S. Boboila, Y. Kim, S. Vazhkudai, P. Desnoyers, and G. Shipman. Active flash: Out-of-core data analytics on flash storage. In Mass Storage Systems and Technologies (MSST), 2012 IEEE 28th Symposium on, pages 1-12, 2012.
[7]
A. M. Caulfield, A. De, J. Coburn, T. I. Mollov, R. K. Gupta, and S. Swanson. Moneta: A high-performance storage array architecture for next-generation, nonvolatile memories. In Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO '43, pages 385-395, Washington, DC, USA, 2010. IEEE Computer Society.
[8]
A. M. Caulfield, T. I. Mollov, L. Eisner, A. De, J. Coburn, and S. Swanson. Providing safe, user space access to fast, solid state disks. In Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems, New York, NY, USA, March 2012. ACM.
[9]
S. Chu. Memcachedb. http://memcachedb.org/.
[10]
J. Coburn, T. Bunker, M. Shwarz, R. K. Gupta, and S. Swanson. From ARIES to MARS: Transaction support for next-generation solid-state drives. In Proceedings of the 24th International Symposium on Operating Systems Principles (SOSP), 2013.
[11]
G. P. Copeland, Jr., G. J. Lipovski, and S. Y. Su. The architecture of CASSM: A cellular system for nonnumeric processing. In Proceedings of the First Annual Symposium on Computer Architecture, ISCA '73, pages 121-128, New York, NY, USA, 1973. ACM.
[12]
J. Dean and S. Ghemawat. MapReduce: Simplified data processing on large clusters. In OSDI '04: Proceedings of the 6th Conference on Symposium on Operating Systems Design and Implementation, pages 10-10, Berkeley, CA, USA, 2004. USENIX Association.
[13]
J. Do, Y.-S. Kee, J. M. Patel, C. Park, K. Park, and D. J. DeWitt. Query processing on smart SSDs: Opportunities and challenges. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, SIGMOD '13, pages 1221-1230, New York, NY, USA, 2013. ACM.
[14]
Flexible I/O Tester. http://freecode.com/projects/fio.
[15]
M. E. Fiuczynski, R. P. Martin, T. Owa, and B. N. Bershad. Spine: A safe programmable and integrated network environment. In Proceedings of the 8th ACM SIGOPS European Workshop on Support for Composing Distributed Applications, EW 8, pages 7-12, New York, NY, USA, 1998. ACM.
[16]
W. K. Josephson, L. A. Bongo, K. Li, and D. Flynn. DFS: A file system for virtualized flash storage. Trans. Storage, 6(3):14:1-14:25, Sept. 2010.
[17]
Y. Kang, Y. Kee, E. Miller, and C. Park. Enabling cost-effective data processing with smart SSD. In Mass Storage Systems and Technologies (MSST), 2013 IEEE 29th Symposium on, pages 1-12, 2013.
[18]
K. Kannan. The design of a mass memory for a database computer. In Proceedings of the 5th Annual Symposium on Computer Architecture, ISCA '78, pages 44-51, New York, NY, USA, 1978. ACM.
[19]
K. Keeton, D. A. Patterson, and J. M. Hellerstein. A case for intelligent disks (IDISKs). SIGMOD Rec., 27(3):42-52, Sept. 1998.
[20]
S. Kim, H. Oh, C. Park, S. Cho, and S.-W. Lee. Fast, energy efficient scan inside flash memory SSDs. In Proceedings of ADMS 2011, 2011.
[21]
A. Lakshman and P. Malik. Cassandra: A decentralized structured storage system. SIGOPS Oper. Syst. Rev., 44(2):35-40, Apr. 2010.
[22]
H.-O. Leilich, G. Stiege, and H. C. Zeidler. A search processor for data base management systems. In Proceedings of the Fourth International Conference on Very Large Data Bases - Volume 4, VLDB '78, pages 280-287. VLDB Endowment, 1978.
[23]
H. M. Levy. Capability-Based Computer Systems. Butterworth-Heinemann, Newton, MA, USA, 1984.
[24]
C. S. Lin, D. C. P. Smith, and J. M. Smith. The design of a rotating associative memory for relational database applications. ACM Trans. Database Syst., 1(1):53-65, Mar. 1976.
[25]
A. Maccabe, W. Zhu, J. Otto, and R. Riesen. Experience in offloading protocol processing to a programmable NIC. In Cluster Computing, 2002. Proceedings. 2002 IEEE International Conference on, pages 67-74, 2002.
[26]
http://memcached.org/.
[27]
C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh, and P. Schwarz. ARIES: A transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans. Database Syst., 17(1):94-162, 1992.
[28]
R. Mueller and J. Teubner. FPGA: What's in it for a database? In Proceedings of the 2009 ACM SIGMOD International Conference on Management of Data, SIGMOD'09, pages 999-1004, New York, NY, USA, 2009. ACM.
[29]
R. Mueller, J. Teubner, and G. Alonso. Data processing on FPGAs. Proc. VLDB Endow., 2(1):910-921, Aug. 2009.
[30]
NVMHCI Work Group. NVM Express. http://nvmexpress.org.
[31]
M. A. Olson, K. Bostic, and M. Seltzer. Berkeley DB.
[32]
X. Ouyang, D. Nellans, R. Wipfel, D. Flynn, and D. K. Panda. Beyond block I/O: Rethinking traditional storage primitives. In Proceedings of the 2011 IEEE 17th International Symposium on High Performance Computer Architecture, HPCA '11, pages 301-311, Washington, DC, USA, 2011. IEEE Computer Society.
[33]
E. A. Ozkarahan, S. A. Schuster, and K. C. Sevcik. Performance evaluation of a relational associative processor. ACM Trans. Database Syst., 2(2):175-195, June 1977.
[34]
E. Plugge, T. Hawkins, and P. Membrey. The Definitive Guide to MongoDB: The NoSQL Database for Cloud and Desktop Computing. Apress, Berkeley, CA, USA, 1st edition, 2010.
[35]
V. Prabhakaran, T. L. Rodeheffer, and L. Zhou. Transactional flash. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation, OSDI'08, pages 147-160, Berkeley, CA, USA, 2008. USENIX Association.
[36]
M. K. Qureshi, J. Karidis, M. Franceschini, V. Srinivasan, L. Lastras, and B. Abali. Enhancing lifetime and security of PCM-based main memory with start-gap wear leveling. In MICRO 42: Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture, pages 14-23, New York, NY, USA, 2009. ACM.
[37]
E. Riedel, C. Faloutsos, G. A. Gibson, and D. Nagle. Active disks for large-scale data processing. Computer, 34(6):68-74, June 2001.
[38]
M. Saxena, M. M. Swift, and Y. Zhang. FlashTier: A lightweight, consistent and durable storage cache. In Proceedings of the 7th ACM European Conference on Computer Systems, EuroSys '12, pages 267-280, New York, NY, USA, 2012. ACM.
[39]
S. Schuster, H. B. Nguyen, E. Ozkarahan, and K. Smith. RAP: An associative processor for databases and its applications. Computers, IEEE Transactions on, C-28(6):446-458, 1979.
[40]
Shore-MT. http://research.cs.wisc.edu/shore-mt/.
[41]
M. Srinivasan. FlashCache: A Write Back Block Cache for Linux. https://github.com/facebook/flashcache.
[42]
S. Y. W. Su and G. J. Lipovski. CASSM: A cellular system for very large data bases. In Proceedings of the 1st International Conference on Very Large Data Bases, VLDB'75, pages 456-472, New York, NY, USA, 1975. ACM.
[43]
D. Tiwari, S. S. Vazhkudai, Y. Kim, X. Ma, S. Boboila, and P. J. Desnoyers. Reducing data movement costs using energy efficient, active computation on SSD. In Proceedings of the 2012 USENIX conference on Power-Aware Computing and Systems, HotPower '12, pages 4-4, Berkeley, CA, USA, 2012. USENIX Association.
[44]
TPC-B. http://www.tpc.org/tpcb/.
[45]
P. Willmann, H. Kim, S. Rixner, and V. Pai. An efficient programmable 10 gigabit ethernet network interface card. In High-Performance Computer Architecture, 2005. HPCA-11. 11th International Symposium on, pages 96-107, Feb 2005.
[46]
XDD version 6.5. http://www.ioperformance.com/.
[47]
Y. Zhang, L. P. Arulraj, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau. De-indirection for flash-based SSDs with nameless writes. In Proceedings of the 10th USENIX Conference on File and Storage Technologies, FAST '12, pages 1-1, Berkeley, CA, USA, 2012. USENIX Association.

Cited By

View all
  • (2023)λ-IOProceedings of the 21st USENIX Conference on File and Storage Technologies10.5555/3585938.3585960(347-362)Online publication date: 21-Feb-2023
  • (2023)ISP Agent: A Generalized In-Storage-Processing Workload Offloading Framework by Providing Multiple Optimization OpportunitiesACM Transactions on Architecture and Code Optimization10.1145/3632951Online publication date: 14-Nov-2023
  • (2023)Learning to Drive Software-Defined Solid-State DrivesProceedings of the 56th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3613424.3614281(1289-1304)Online publication date: 28-Oct-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
OSDI'14: Proceedings of the 11th USENIX conference on Operating Systems Design and Implementation
October 2014
676 pages
ISBN:9781931971164

Sponsors

  • USENIX Assoc: USENIX Assoc

In-Cooperation

Publisher

USENIX Association

United States

Publication History

Published: 06 October 2014

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)λ-IOProceedings of the 21st USENIX Conference on File and Storage Technologies10.5555/3585938.3585960(347-362)Online publication date: 21-Feb-2023
  • (2023)ISP Agent: A Generalized In-Storage-Processing Workload Offloading Framework by Providing Multiple Optimization OpportunitiesACM Transactions on Architecture and Code Optimization10.1145/3632951Online publication date: 14-Nov-2023
  • (2023)Learning to Drive Software-Defined Solid-State DrivesProceedings of the 56th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3613424.3614281(1289-1304)Online publication date: 28-Oct-2023
  • (2022)Store-n-Learn: Classification and Clustering with Hyperdimensional Computing across Flash HierarchyACM Transactions on Embedded Computing Systems10.1145/350354121:3(1-25)Online publication date: 13-Jul-2022
  • (2022)Serverless computing on heterogeneous computersProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507732(797-813)Online publication date: 28-Feb-2022
  • (2021)NDS: N-Dimensional StorageMICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3466752.3480122(28-45)Online publication date: 18-Oct-2021
  • (2021)IceClave: A Trusted Execution Environment for In-Storage ComputingMICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3466752.3480109(199-211)Online publication date: 18-Oct-2021
  • (2021)BPF for storageProceedings of the Workshop on Hot Topics in Operating Systems10.1145/3458336.3465290(128-135)Online publication date: 1-Jun-2021
  • (2021)Design for computational storage simulation platformProceedings of the Workshop on Challenges and Opportunities of Efficient and Performant Storage Systems10.1145/3439839.3459085(1-8)Online publication date: 26-Apr-2021
  • (2021)NVOverlayProceedings of the 48th Annual International Symposium on Computer Architecture10.1109/ISCA52012.2021.00046(498-511)Online publication date: 14-Jun-2021
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media