Abstract
Today’s in-memory column stores make heavy use of bit-packed data structures in order to reduce the required amount of main-memory and to improve the performance of memory-bound algorithms by trading more CPU cycles for less data that needs to be transferred over the memory-bus.
In this paper, we propose vertical bit-packing as a slightly modified alternative compared to classic bit-packing approaches, compressing an array of integer values with a known and finite value set so that each value is stored using the minimal required amount of bits. Vertical bit-packing aims to fully exploit the data parallelism provided by the existing on-chip vector processing units of modern x86-64 CPUs as they provide speedup potentials at no additional hardware cost.
In particular, we propose Vertical Bit-Packing and Aligned Vertical Bit-Packing as an alternative to the classic approach called Horizontal Bit-Packing. We show that the proposed techniques can save between one and two instructions per decompressed value block, outperforming the classic approach in some bit-cases with up to 12 %.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Abel, J., Balasubramanian, K., Bargeron, M., Craver, T., Phlipot, M.: Applications tuning for streaming SIMD extensions. Intel Technol. J. Q2, 1–13 (1999)
Browne, S., Dongarra, J., Garner, N., Ho, G., Mucci, P.: A portable programming interface for performance evaluation on modern processors. Int. J. High Perform. Comput. Appl. 14, 189–204 (2000)
Chhugani, J., Nguyen, A.D., Lee, V.W., Macy, W., Hagog, M., Chen, Y.-K., Baransi, A., Kumar, S., Dubey, P.: Efficient implementation of sorting on multi-core SIMD CPU architecture. In: VLDB (2008)
Färber, F., Cha, S.K., Primsch, J., Bornhövd, C., Sigg, S., Lehner, W.: SAP HANA database: data management for modern business applications. In: SIGMOD (2012)
Grund, M., Krüger, J., Plattner, H., Zeier, A., Cudre-Mauroux, P., Madden, S.: HYRISE: a main memory hybrid storage engine. In: VLDB (2010)
Krüger, J., Kim, C., Grund, M., Satish, N., Schwalb, D., Chhugani, J., Plattner, H., Dubey, P., Zeier, A.: Fast updates on read-optimized databases using multi-core CPUs. In: VLDB (2011)
Lemire, D., Boytsov, L.: Decoding billions of integers per second through vectorization. In: CoRR (2012)
Lemke, C., Sattler, K.-U., Faerber, F., Zeier, A.: Speeding up queries in column stores. In: Bach Pedersen, T., Mohania, M.K., Tjoa, A.M. (eds.) DAWAK 2010. LNCS, vol. 6263, pp. 117–129. Springer, Heidelberg (2010)
Li, Y., Patel, J.M.: BitWeaving: fast scans for main memory data processing. In: SIGMOD (2013)
Manegold, S., Boncz, P.A., Kersten, M.L.: Optimizing database architecture for the new bottleneck: memory access. In: VLDB (2000)
Plattner, H., Zeier, A.: In-Memory Data Management: An Inflection Point for Enterprise Applications. Springer, New York (2011)
Schlegel, B., Gemulla, R., Lehner, W.: Fast integer compression using SIMD instructions. In: Proceedings of the Sixth International Workshop on Data Management on New Hardware, pp. 34–40. ACM (2010)
Willhalm, T., Oukid, I., Mueller, I., Faerber, F.: Vectorizing database column scans with complex predicates. In: AMDS (2013)
Willhalm, T., Popovici, N., Boshmaf, Y., Plattner, H., Zeier, A., Schaffner, J.: SIMD-scan: ultra fast in-memory table scan using on-chip vector processing units. Proc. VLDB Endow. 2(1), 385–394 (2009)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Faust, M., Grund, M., Berning, T., Schwalb, D., Plattner, H. (2014). Vertical Bit-Packing: Optimizing Operations on Bit-Packed Vectors Leveraging SIMD Instructions. In: Han, WS., Lee, M., Muliantara, A., Sanjaya, N., Thalheim, B., Zhou, S. (eds) Database Systems for Advanced Applications. DASFAA 2014. Lecture Notes in Computer Science(), vol 8505. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-43984-5_10
Download citation
DOI: https://doi.org/10.1007/978-3-662-43984-5_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-43983-8
Online ISBN: 978-3-662-43984-5
eBook Packages: Computer ScienceComputer Science (R0)