ABSTRACT
The performance of non-volatile memories (NVM) has grown by a factor of 100 during the last several years: Flash devices today are capable of over 1 million I/Os per second. Unfortunately, this incredible growth has put strain on software storage systems looking to extract their full potential.
To address this increasing software-I/O gap, we propose using vector interfaces in high-performance networked systems. Vector interfaces organize requests and computation in a distributed system into collections of similar but independent units of work, thereby providing opportunities to amortize and eliminate the redundant work common in many high-performance systems. By integrating vector interfaces into storage and RPC components, we demonstrate that a single key-value storage server can provide 1.6 million requests per second with a median latency below one millisecond, over fourteen times greater than the same software absent the use of vector interfaces. We show that pervasively applying vector interfaces is necessary to achieve this potential and describe how to compose these interfaces together to ensure that vectors of work are propagated throughout a distributed system.
- FAWN-KV: A distributed key-value store for FAWN. http://github.com/vrv/FAWN-KV.Google Scholar
- Apache Thrift. https://thrift.apache.org/, 2011.Google Scholar
- A. Akel, A. M. Caulfield, T. I. Mollov, R. K. Gupta, and S. Swanson. Onyx: A prototype phase change memory storage array. In Proc. HotStorage, Portland, OR, June 2011. Google ScholarDigital Library
- A. Anand, C. Muthukrishnan, S. Kappes, A. Akella, and S. Nath. Cheap and large CAMs for high performance data-intensive networked systems. In Proc. 7th USENIX NSDI, San Jose, CA, Apr. 2010. Google ScholarDigital Library
- D. G. Andersen, J. Franklin, M. Kaminsky, A. Phanishayee, L. Tan, and V. Vasudevan. FAWN: A fast array of wimpy nodes. In Proc. 22nd ACM Symposium on Operating Systems Principles (SOSP), Big Sky, MT, Oct. 2009. Google ScholarDigital Library
- A. M. Caulfield, A. De, J. Coburn, T. Mollov, R. Gupta, and S. Swanson. Moneta: A high-performance storage array architecture for next-generation, non-volatile memories. In IEEE Micro, Dec. 2010. Google ScholarDigital Library
- B. Debnath, S. Sengupta, and J. Li. FlashStore: high throughput persistent key-value store. Proc. VLDB Endow., 3: 1414--1425, Sept. 2010. Google ScholarDigital Library
- B. Debnath, S. Sengupta, and J. Li. SkimpyStash: RAM space skimpy key-value store on flash. In Proc. ACM SIGMOD, Athens, Greece, June 2011. Google ScholarDigital Library
- M. Dobrescu, N. Egi, K. Argyraki, B.-G. Chun, K. Fall, G. Iannaccone, A. Knies, M. Manesh, and S. Ratnasamy. Route-Bricks: Exploiting parallelism to scale software routers. In Proc. 22nd ACM Symposium on Operating Systems Principles (SOSP), Big Sky, MT, Oct. 2009. Google ScholarDigital Library
- R. Freitas, J. Slember, W. Sawdon, and L. Chiu. GPFS scans 10 billion files in 43 minutes. IBM Whitepaper, http://www.almaden.ibm.com/storagesystems/resources/GPFS-Violin-white-paper.pdf, 2011.Google Scholar
- fusion-io. Fusion-IO. http://www.fusionio.com.Google Scholar
- M. Garland and D. B. Kirk. Understanding throughput-oriented architectures. Communications of the ACM, 53(11): 58--66, Nov. 2010. Google ScholarDigital Library
- J. Hamilton. Scaling at MySpace. http://perspectives.mvdirona.com/2010/02/15/ScalingAtMySpace.aspx, 2010.Google Scholar
- S. Han, K. Jang, K. Park, and S. Moon. PacketShader: a GPU-accelerated software router. In Proc. ACM SIGCOMM, New Delhi, India, Aug. 2010. Google ScholarDigital Library
- R. Johnson, S. Harizopoulos, N. Hardavellas, K. Sabirli, I. Pandis, A. Ailamaki, N. G. Mancheril, and B. Falsafi. To share or not to share? In Proc. VLDB, Vienna, Austria, Sept. 2007. Google ScholarDigital Library
- M. Krohn, E. Kohler, and M. F. Kaashoek. Events can make sense. In Proc. USENIX Annual Technical Conference, Santa Clara, CA, June 2007. Google ScholarDigital Library
- J. R. Larus and M. Parkes. Using cohort scheduling to enhance server performance. In Proc. USENIX Annual Technical Conference, Berkeley, CA, June 2002. Google ScholarDigital Library
- H. Lim, B. Fan, D. G. Andersen, and M. Kaminsky. SILT: A memory-efficient, high-performance key-value store. In Proc. 23rd ACM Symposium on Operating Systems Principles (SOSP), Cascais, Portugal, Oct. 2011. Google ScholarDigital Library
- T. Marian. Operating Systems Abstractions for Software Packet Processing in Datacenters. PhD thesis, Cornell University, Jan. 2011. Google ScholarDigital Library
- J. C. McCullough, J. Dunagan, A. Wolman, and A. C. Snoeren. Stout: An adaptive interface to scalable cloud storage. In Proc. USENIX Annual Technical Conference, Boston, MA, June 2010. Google ScholarDigital Library
- G. Memik, M. T. Kandemir, W. Liao, and A. Choudhary. Multicollective i/o: A technique for exploiting inter-file access patterns. volume 2, Aug. 2006. Google ScholarDigital Library
- J. Ousterhout, P. Agrawal, D. Erickson, C. Kozyrakis, J. Leverich, D. Mazières, S. Mitra, A. Narayanan, G. Parulkar, M. Rosenblum, S. M. Rumble, E. Stratmann, and R. Stutsman. The case for RAMClouds: Scalable high-performance storage entirely in DRAM. In Operating Systems Review, volume 43, pages 92--105, Jan. 2010. Google ScholarDigital Library
- M. Polte, J. Simsa, and G. Gibson. Enabling enterprise solid state disks performance. In Proc. Workshop on Integrating Solid-state Memory into the Storage Hierarchy, Washington, DC, Mar. 2009.Google Scholar
- N. Provos. libevent. http://monkey.org/~provos/libevent/.Google Scholar
- J. M. Pujol, V. Erramilli, G. Siganos, X. Yang, N. Laoutaris, P. Chhabra, and P. Rodriguez. The little engine(s) that could: Scaling online social networks. In Proc. ACM SIGCOMM, New Delhi, India, Aug. 2010. Google ScholarDigital Library
- A. Purohit, C. P. Wright, J. Spadavecchia, and E. Zadok. Cosy: Develop in user-land, run in kernel-mode. In Proc. HotOS IX, Lihue, Hawaii, May 2003. Google ScholarDigital Library
- M. Rajagopalan, S. K. Debray, M. A. Hiltunen, and R. D. Schlicting. Cassyopia: Compiler assisted system optimization. In Proc. HotOS IX, Lihue, Hawaii, May 2003. Google ScholarDigital Library
- E. Seppanen, M. T. O'Keefe, and D. J. Lilja. High performance solid state storage under linux. In 26th IEEE Symposium on Massive Storage Systems and Technologies, May 2010. Google ScholarDigital Library
- L. Soares and M. Stumm. FlexSC: Flexible system call scheduling with exception-less system calls. In Proc. 9th USENIX OSDI, Vancouver, Canada, Oct. 2010. Google ScholarDigital Library
- J. Sugerman, K. Fatahalian, S. Boulos, K. Akeley, and P. Hanrahan. GRAMPS: A programming model for graphics pipelines. In ACM Transactions on Graphics, Jan. 2009. Google ScholarDigital Library
- V. Vasudevan, D. G. Andersen, M. Kaminsky, L. Tan, J. Franklin, and I. Moraru. Energy-efficient cluster computing with FAWN: Workloads and implications. In Proc. e-Energy 2010, Passau, Germany, Apr. 2010. (invited paper). Google ScholarDigital Library
- V. Vasudevan, D. G. Andersen, and M. Kaminsky. The case for VOS: The vector operating system. In Proc. HotOS XIII, Napa, CA, May 2011. Google ScholarDigital Library
- S. Venkataraman, N. Tolia, P. Ranganathan, and R. Campbell. Consistent and Durable Data Structures for Non-Volatile Byte-Addressable Memory. In Proceedings of the 9th USENIX Conference on File and Storage Technologies (FAST '11), San Jose, CA, Feb. 2011. Google ScholarDigital Library
- M. Welsh, D. Culler, and E. Brewer. SEDA: An architecture for well-conditioned, scalable Internet services. In Proc. 18th ACM Symposium on Operating Systems Principles (SOSP), Banff, Canada, Oct. 2001. Google ScholarDigital Library
Index Terms
- Using vector interfaces to deliver millions of IOPS from a networked key-value storage server
Recommendations
SILT: a memory-efficient, high-performance key-value store
SOSP '11: Proceedings of the Twenty-Third ACM Symposium on Operating Systems PrinciplesSILT (Small Index Large Table) is a memory-efficient, high-performance key-value store system based on flash storage that scales to serve billions of key-value items on a single node. It requires only 0.7 bytes of DRAM per entry and retrieves key/value ...
A server bypass architecture for hopscotch hashing key–value store on DRAM-NVM memories
AbstractNon-volatile memories (NVMs), along with DRAMs, provide key–value (KV) stores with strong support in persisting data and storing it in memories. The remote direct memory access (RDMA) technology has been employed to boost remote data ...
A unified framework for designing high performance in-memory and hybrid memory file systems
The emerging non-volatile memory technologies provide a new choice for storing persistent data in memory. Therefore, file system structure needs re-studying and re-designing. Our goal is to design a framework that gives high-performance in-memory file ...
Comments