The Design, Implementation, and Deployment of a System to Transparently Compress Hundreds of Petabytes of Image Files for a File-Storage Service

Total Page:16

File Type:pdf, Size:1020Kb

The Design, Implementation, and Deployment of a System to Transparently Compress Hundreds of Petabytes of Image Files for a File-Storage Service The Design, Implementation, and Deployment of a System to Transparently Compress Hundreds of Petabytes of Image Files For a File-Storage Service Daniel Reiter Horn Ken Elkabany Chris Lesniewski-Laas Keith Winstein Dropbox Dropbox Dropbox Stanford University Abstract 200 150 We report the design, implementation, and deployment JPEGrescan (progressive) Lepton of Lepton, a fault-tolerant system that losslessly com- (this work) presses JPEG images to 77% of their original size on av- 100 erage. Lepton replaces the lowest layer of baseline JPEG compression—a Huffman code—with a parallelized arith- MozJPEG metic code, so that the exact bytes of the original JPEG 50 (arithmetic) file can be recovered quickly. Lepton matches the com- 40 pression efficiency of the best prior work, while decoding 30 more than nine times faster and in a streaming manner. Decompression speed (Mbits/s) Better Lepton has been released as open-source software and 20 packjpg has been deployed for a year on the Dropbox file-storage backend. As of February 2017, it had compressed more 15 6 7 8 9 10 15 20 25 than 203 PiB of user JPEG files, saving more than 46 PiB. Compression savings (percent) Figure 1: Compression savings and decompression speed (time- 1 Introduction to-last-byte) of four lossless JPEG compression tools. Diamonds In the last decade, centrally hosted network filesystems show 25th, 50th, and 75th percentiles across 200,000 JPEGs have grown to serve hundreds of millions of users. These between 100 KiB and 4 MiB (x 4). services include Amazon Cloud Drive, Box, Dropbox, compresses an average JPEG image by about 23%. This Google Drive, Microsoft OneDrive, and SugarSync. is expected to save Dropbox more than 8% of its overall Commercially, these systems typically offer users a backend file storage. Lepton introduces new techniques storage quota in exchange for a flat monthly fee, or no that allow it to match the compression savings of prior fee at all. Meanwhile, the cost to operate such a system work (PackJPG) while decoding more than nine times increases with the amount of data actually stored. There- faster and in a streaming manner (Figure 1). fore, operators benefit from anything that reduces the net amount of data they store. Some of the challenges in building Lepton included: These filesystems have become gargantuan. After less • Round-trip transparency. Lepton needs to deter- than ten years in operation, the Dropbox system contains ministically recover the exact bytes of the original roughly one exabyte (± 50%) of data, even after applying file, even for intentionally malformed files, and even techniques such as deduplication and zlib compression. after updates to the Lepton software since the file arXiv:1704.06192v1 [cs.MM] 26 Mar 2017 We report on our experience with a different technique: was originally compressed. format-specific transparent file compression, based on a • Distribution across independent chunks. The statistical model tuned to perform well on a large corpus. Dropbox back-end stores files in independent 4-MiB In operating Dropbox, we observed that JPEG im- chunks across many servers. Lepton must be able ages [10] make up roughly 35% of the bytes stored. We to decompress any substring of a JPEG file, without suspected that most of these images were compressed in- access to other substrings. efficiently, either because they were limited to “baseline” • Low latency and streaming. Because users are methods that were royalty-free in the 1990s, or because sensitive to file download latency, we must opti- they were encoded by fixed-function compression chips. mize decompression—from Lepton’s format back In response, we built a compression tool, called Lepton, into Huffman-coded JPEG output—for both time-to- that replaces the lowest layer of baseline JPEG images— first-byte and time-to-last-byte. To achieve this, the the lossless Huffman coding—with a custom statistical Lepton format includes “Huffman handover words” model that we tuned to perform well across a broad corpus that enable the decoder to be multithreaded and to of JPEG images stored in Dropbox. Lepton losslessly start transmitting bytes soon after a request. 1 • Security. Before reading input data, Lepton enters a efficient compression without affecting the decoded restricted environment where the only allowed sys- image. These tools include JPEGrescan [13] and tem calls are read, write, exit, and sigreturn. MozJPEG [2], both based on the jpegtran tool written Lepton must pre-spawn threads and allocate all mem- by the Independent JPEG Group [9]. The tools employ ory before it sees any input. two key techniques: replacing Huffman coding with arith- • Memory. To preserve server resources, Lepton must metic coding (which is more efficient but was patent- work row-by-row on a JPEG file, instead of decoding encumbered when JPEG was formalized and is not part the entire file into RAM. of the baseline JPEG standard), and rewriting the file We deployed Lepton in April 2016 on the production in “progressive” order, which can group similar values Dropbox service. Compression is applied immediately together and result in more efficient coding. Xu et al. de- to all uploads of new JPEG files. We are gradually com- veloped a related algorithm which uses a large number of pressing files in existing storage and have ramped up to context-dependent Huffman tables to encode JPEG im- a rate of roughly a petabyte per day of input, consuming ages, reporting average compression savings of 15% in about 300 kilowatts continuously. As of February 2017, 30-50ms [22]. These tools preserve the exact pixels of Lepton had been run on more than 150 billion user files, the decoded image, but do not allow bit-exact round-trip accounting for more than 203 PiB of input. It reduced recovery of the original file. their size by a total of more than 46 PiB. We have released Format-aware, file-preserving recompression. A fi- Lepton as open-source software [1]. nal set of tools can re-compress a JPEG file with round- We report here on Lepton’s design (x 3), evaluation trip recovery of the exact bytes of the original file. These (x 4), and production deployment (x 5), and share a num- include PackJPG [17, 11] and PAQ8PX [12]. These tools ber of case studies and anomalies (x 6) encountered in use different techniques, but in our evaluations, achieved operating the system at a large scale. roughly the same compression savings (23%) on average. 2 Related Work These tools use techniques unavailable in a real-time setting. For example, one of PackJPG’s compression tech- In network filesystems and storage services, four general niques requires re-arranging all of the compressed pixel categories of approaches are used to compress user files. values in the file in a globally sorted order. This means Generic entropy compression. Many filesystems com- that decompression is single-threaded, requires access to press files using generic techniques, such as the Deflate the entire file, and requires decoding the image into RAM algorithm [6], which combines LZ77 compression [23] before any byte can be output. The time-to-first-byte and and Huffman coding [8] and is used by software such as time-to-last-byte are too high to satisfy the service goals zlib, pkzip, and gzip. More recent algorithms such as for the Dropbox service. PAQ8PX is considerably slower. LZMA [15], Brotli [3], and Zstandard [5] achieve a range Lepton was inspired by PackJPG and the algorithms of tradeoffs of compression savings and speed. developed by Lakhani [11], and Lepton uses the same In practice, none of these algorithms achieve much JPEG-parsing routines that PackJPG uses (uncmpjpg). compression on “already compressed” files, including However, unlike PackJPG, Lepton only utilizes compres- JPEGs. In our evaluation on 200,000 randomly selected sion techniques that can be implemented without “global” user JPEG images, each of these algorithms achieved operations, so that decoding can be distributed across in- savings of 1% or less (x 4). dependent chunks and multithreaded within each chunk. Lossy image compression. A second category of ap- 3 Lepton: Design and Implementation proach involves decoding user images and re-compressing At its core, Lepton is a stand-alone tool that performs them into a more-efficient format, at the cost of some vi- round-trip compression and decompression of baseline sual fidelity. The “more-efficient format” may simply JPEG files. We have released Lepton as open-source soft- be a lower-resolution or lower-quality JPEG. The JPEG ware [1]; it builds and runs on Linux, MacOS, Windows, files produced by fixed-function hardware encoders in iOS, Android, and Emscripten (JavaScript). cellular-phone cameras can typically be reduced in size In its current deployment at Dropbox, Lepton is exe- by 70% before users see a perceptual difference [19]. The cuted directly by a back-end file server or, when a file re-compression may also use more sophisticated tech- server is under high load, execution is “outsourced” from niques such as WebP or single-frame H.265. With this the file server to a cluster of machines dedicated to Lep- approach, storage savings for the provider can be as high ton only (x 5.5). Thus, compression and decompression as users are willing to tolerate. However, Dropbox does is currently transparent to client software and does not not modify user files, precluding these approaches. reduce network utilization. In the future, we may include Format-aware pixel-exact recompression. Several Lepton in the client software, in order to save network tools let users re-compress JPEG files to achieve more- bandwidth and distribute the computation load. 2 In contrast to related work (x 2), Lepton was designed the probability model that determines which coefficient to meet constraints specific to real-time compression and values will be considered more or less probable.
Recommended publications
  • Package 'Brotli'
    Package ‘brotli’ May 13, 2018 Type Package Title A Compression Format Optimized for the Web Version 1.2 Description A lossless compressed data format that uses a combination of the LZ77 algorithm and Huffman coding. Brotli is similar in speed to deflate (gzip) but offers more dense compression. License MIT + file LICENSE URL https://tools.ietf.org/html/rfc7932 (spec) https://github.com/google/brotli#readme (upstream) http://github.com/jeroen/brotli#read (devel) BugReports http://github.com/jeroen/brotli/issues VignetteBuilder knitr, R.rsp Suggests spelling, knitr, R.rsp, microbenchmark, rmarkdown, ggplot2 RoxygenNote 6.0.1 Language en-US NeedsCompilation yes Author Jeroen Ooms [aut, cre] (<https://orcid.org/0000-0002-4035-0289>), Google, Inc [aut, cph] (Brotli C++ library) Maintainer Jeroen Ooms <[email protected]> Repository CRAN Date/Publication 2018-05-13 20:31:43 UTC R topics documented: brotli . .2 Index 4 1 2 brotli brotli Brotli Compression Description Brotli is a compression algorithm optimized for the web, in particular small text documents. Usage brotli_compress(buf, quality = 11, window = 22) brotli_decompress(buf) Arguments buf raw vector with data to compress/decompress quality value between 0 and 11 window log of window size Details Brotli decompression is at least as fast as for gzip while significantly improving the compression ratio. The price we pay is that compression is much slower than gzip. Brotli is therefore most effective for serving static content such as fonts and html pages. For binary (non-text) data, the compression ratio of Brotli usually does not beat bz2 or xz (lzma), however decompression for these algorithms is too slow for browsers in e.g.
    [Show full text]
  • A Novel Coding Architecture for Multi-Line Lidar Point Clouds
    This article has been accepted for inclusion in a future issue of this journal. Content is final as presented, with the exception of pagination. IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS 1 A Novel Coding Architecture for Multi-Line LiDAR Point Clouds Based on Clustering and Convolutional LSTM Network Xuebin Sun , Sukai Wang , Graduate Student Member, IEEE, and Ming Liu , Senior Member, IEEE Abstract— Light detection and ranging (LiDAR) plays an preservation of historical relics, 3D sensing for smart city, indispensable role in autonomous driving technologies, such as well as autonomous driving. Especially for autonomous as localization, map building, navigation and object avoidance. driving systems, LiDAR sensors play an indispensable role However, due to the vast amount of data, transmission and storage could become an important bottleneck. In this article, in a large number of key techniques, such as simultaneous we propose a novel compression architecture for multi-line localization and mapping (SLAM) [1], path planning [2], LiDAR point cloud sequences based on clustering and convolu- obstacle avoidance [3], and navigation. A point cloud consists tional long short-term memory (LSTM) networks. LiDAR point of a set of individual 3D points, in accordance with one or clouds are structured, which provides an opportunity to convert more attributes (color, reflectance, surface normal, etc). For the 3D data to 2D array, represented as range images. Thus, we cast the 3D point clouds compression as a range image instance, the Velodyne HDL-64E LiDAR sensor generates a sequence compression problem. Inspired by the high efficiency point cloud of up to 2.2 billion points per second, with a video coding (HEVC) algorithm, we design a novel compression range of up to 120 m.
    [Show full text]
  • Compresso: Efficient Compression of Segmentation Data for Connectomics
    Compresso: Efficient Compression of Segmentation Data For Connectomics Brian Matejek, Daniel Haehn, Fritz Lekschas, Michael Mitzenmacher, Hanspeter Pfister Harvard University, Cambridge, MA 02138, USA bmatejek,haehn,lekschas,michaelm,[email protected] Abstract. Recent advances in segmentation methods for connectomics and biomedical imaging produce very large datasets with labels that assign object classes to image pixels. The resulting label volumes are bigger than the raw image data and need compression for efficient stor- age and transfer. General-purpose compression methods are less effective because the label data consists of large low-frequency regions with struc- tured boundaries unlike natural image data. We present Compresso, a new compression scheme for label data that outperforms existing ap- proaches by using a sliding window to exploit redundancy across border regions in 2D and 3D. We compare our method to existing compression schemes and provide a detailed evaluation on eleven biomedical and im- age segmentation datasets. Our method provides a factor of 600-2200x compression for label volumes, with running times suitable for practice. Keywords: compression, encoding, segmentation, connectomics 1 Introduction Connectomics|reconstructing the wiring diagram of a mammalian brain at nanometer resolution|results in datasets at the scale of petabytes [21,8]. Ma- chine learning methods find cell membranes and create cell body labelings for every neuron [18,12,14] (Fig. 1). These segmentations are stored as label volumes that are typically encoded in 32 bits or 64 bits per voxel to support labeling of millions of different nerve cells (neurons). Storing such data is expensive and transferring the data is slow. To cut costs and delays, we need compression methods to reduce data sizes.
    [Show full text]
  • Data Latency and Compression
    Data Latency and Compression Joseph M. Steim1, Edelvays N. Spassov2 1Quanterra Inc., 2Kinemetrics, Inc. Abstract DIscussion More Compression Because of interest in the capability of digital seismic data systems to provide low-latency data for “Early Compression and Latency related to Origin Queuing[5] Lossless Lempel-Ziv (LZ) compression methods (e.g. gzip, 7zip, and more recently “brotli” introduced by Warning” applications, we have examined the effect of data compression on the ability of systems to Plausible data compression methods reduce the volume (number of bits) required to represent each data Google for web-page compression) are often used for lossless compression of binary and text files. How deliver data with low latency, and on the efficiency of data storage and telemetry systems. Quanterra Q330 sample. Compression of data therefore always reduces the minimum required bandwidth (bits/sec) for does the best example of modern LZ methods compare with FDSN Level 1 and 2 for waveform data? systems are widely used in telemetered networks, and are considered in particular. transmission compared with transmission of uncompressed data. The volume required to transmit Segments of data representing up to one month of various levels of compressibility were compressed using compressed data is variable, depending on characteristics of the data. Higher levels of compression require Levels 1,2 and 3, and brotli using “quality” 1 and 6. The compression ratio (relative to the original 32 bits) Q330 data acquisition systems transmit data compressed in Steim2-format packets. Some studies have less minimum bandwidth and volume, and maximize the available unused (“free”) bandwidth for shows that in all cases the compression using L1,L2, or L3 is significantly greater than brotli.
    [Show full text]
  • Parquet Data Format Performance
    Parquet data format performance Jim Pivarski Princeton University { DIANA-HEP February 21, 2018 1 / 22 What is Parquet? 1974 HBOOK tabular rowwise FORTRAN first ntuples in HEP 1983 ZEBRA hierarchical rowwise FORTRAN event records in HEP 1989 PAW CWN tabular columnar FORTRAN faster ntuples in HEP 1995 ROOT hierarchical columnar C++ object persistence in HEP 2001 ProtoBuf hierarchical rowwise many Google's RPC protocol 2002 MonetDB tabular columnar database “first” columnar database 2005 C-Store tabular columnar database also early, became HP's Vertica 2007 Thrift hierarchical rowwise many Facebook's RPC protocol 2009 Avro hierarchical rowwise many Hadoop's object permanance and interchange format 2010 Dremel hierarchical columnar C++, Java Google's nested-object database (closed source), became BigQuery 2013 Parquet hierarchical columnar many open source object persistence, based on Google's Dremel paper 2016 Arrow hierarchical columnar many shared-memory object exchange 2 / 22 What is Parquet? 1974 HBOOK tabular rowwise FORTRAN first ntuples in HEP 1983 ZEBRA hierarchical rowwise FORTRAN event records in HEP 1989 PAW CWN tabular columnar FORTRAN faster ntuples in HEP 1995 ROOT hierarchical columnar C++ object persistence in HEP 2001 ProtoBuf hierarchical rowwise many Google's RPC protocol 2002 MonetDB tabular columnar database “first” columnar database 2005 C-Store tabular columnar database also early, became HP's Vertica 2007 Thrift hierarchical rowwise many Facebook's RPC protocol 2009 Avro hierarchical rowwise many Hadoop's object permanance and interchange format 2010 Dremel hierarchical columnar C++, Java Google's nested-object database (closed source), became BigQuery 2013 Parquet hierarchical columnar many open source object persistence, based on Google's Dremel paper 2016 Arrow hierarchical columnar many shared-memory object exchange 2 / 22 Developed independently to do the same thing Google Dremel authors claimed to be unaware of any precedents, so this is an example of convergent evolution.
    [Show full text]
  • The Deep Learning Solutions on Lossless Compression Methods for Alleviating Data Load on Iot Nodes in Smart Cities
    sensors Article The Deep Learning Solutions on Lossless Compression Methods for Alleviating Data Load on IoT Nodes in Smart Cities Ammar Nasif *, Zulaiha Ali Othman and Nor Samsiah Sani Center for Artificial Intelligence Technology (CAIT), Faculty of Information Science & Technology, University Kebangsaan Malaysia, Bangi 43600, Malaysia; [email protected] (Z.A.O.); [email protected] (N.S.S.) * Correspondence: [email protected] Abstract: Networking is crucial for smart city projects nowadays, as it offers an environment where people and things are connected. This paper presents a chronology of factors on the development of smart cities, including IoT technologies as network infrastructure. Increasing IoT nodes leads to increasing data flow, which is a potential source of failure for IoT networks. The biggest challenge of IoT networks is that the IoT may have insufficient memory to handle all transaction data within the IoT network. We aim in this paper to propose a potential compression method for reducing IoT network data traffic. Therefore, we investigate various lossless compression algorithms, such as entropy or dictionary-based algorithms, and general compression methods to determine which algorithm or method adheres to the IoT specifications. Furthermore, this study conducts compression experiments using entropy (Huffman, Adaptive Huffman) and Dictionary (LZ77, LZ78) as well as five different types of datasets of the IoT data traffic. Though the above algorithms can alleviate the IoT data traffic, adaptive Huffman gave the best compression algorithm. Therefore, in this paper, Citation: Nasif, A.; Othman, Z.A.; we aim to propose a conceptual compression method for IoT data traffic by improving an adaptive Sani, N.S.
    [Show full text]
  • Key-Based Self-Driven Compression in Columnar Binary JSON
    Otto von Guericke University of Magdeburg Department of Computer Science Master's Thesis Key-Based Self-Driven Compression in Columnar Binary JSON Author: Oskar Kirmis November 4, 2019 Advisors: Prof. Dr. rer. nat. habil. Gunter Saake M. Sc. Marcus Pinnecke Institute for Technical and Business Information Systems / Database Research Group Kirmis, Oskar: Key-Based Self-Driven Compression in Columnar Binary JSON Master's Thesis, Otto von Guericke University of Magdeburg, 2019 Abstract A large part of the data that is available today in organizations or publicly is provided in semi-structured form. To perform analytical tasks on these { mostly read-only { semi-structured datasets, Carbon archives were developed as a column-oriented storage format. Its main focus is to allow cache-efficient access to fields across records. As many semi-structured datasets mainly consist of string data and the denormalization introduces redundancy, a lot of storage space is required. However, in Carbon archives { besides a deduplication of strings { there is currently no compression implemented. The goal of this thesis is to discuss, implement and evaluate suitable compression tech- niques to reduce the amount of storage required and to speed up analytical queries on Carbon archives. Therefore, a compressor is implemented that can be configured to apply a combination of up to three different compression algorithms to the string data of Carbon archives. This compressor can be applied with a different configuration per column (per JSON object key). To find suitable combinations of compression algo- rithms for each column, one manual and two self-driven approaches are implemented and evaluated. On a set of ten publicly available semi-structured datasets of different kinds and sizes, the string data can be compressed down to about 53% on average, reducing the whole datasets' size by 20%.
    [Show full text]
  • Session Overhead Reduction in Adaptive Streaming
    Session Overhead Reduction in Adaptive Streaming A Technical Paper prepared for SCTE•ISBE by Alexander Giladi Fellow Comcast 1899 Wynkoop St., Denver CO +1 (215) 581-7118 [email protected] © 2020 SCTE•ISBE and NCTA. All rights reserved. 1 Table of Contents Title Page Number 1. Introduction .......................................................................................................................................... 3 2. Session overhead and HTTP compression ........................................................................................ 4 3. Reducing traffic overhead ................................................................................................................... 5 3.1. MPD patch .............................................................................................................................. 6 3.2. Segment Gap Signaling ......................................................................................................... 7 3.3. Efficient multi-DRM signaling ................................................................................................. 8 4. Reducing the number of HTTP requests ............................................................................................ 9 4.1. Asynchronous MPD updates.................................................................................................. 9 4.2. Predictive templates ............................................................................................................. 10 4.3. Timeline extension ..............................................................................................................
    [Show full text]
  • Context-Aware Encoding & Delivery in The
    Context-Aware Encoding & Delivery in the Web ICWE 2020 Benjamin Wollmer, Wolfram Wingerath, Norbert Ritter Universität Hamburg 9 - 12 June, 2020 Business Impact of Page Speed Business Uplift Speed Speed Downlift Uplift Business Downlift Felix Gessert: Mobile Site Speed and the Impact on E-Commerce, CodeTalks 2019 So Far On Compression… GZip SDCH Deflate Delta Brotli Encoding GZIP/Deflate – The De Facto Standard in the Web Encoding Size None 200 kB Gzip ~36 kB This example text is used to show how LZ77 finds repeating elements in the example[70;14] text ~81.9% saved data J. Alakuijala, E. Kliuchnikov, Z. Szabadka, L. Vandevenne: Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms, 2015 Delta Encoding – Updating Stale Content Encoding Size None 200 kB Gzip ~36 kB Delta Encoding ~34 kB 83% saved data J. C. Mogul, F. Douglis, A. Feldmann, B. Krishnamurthy: Potential Benefits of Delta Encoding and Data Compression for HTTP, 1997 SDCH – Reusing Dictionaries Encoding Size This is an example None 200 kB Gzip ~36 kB Another example Delta Encoding ~34 kB SDCH ~7 kB Up to 81% better results (compared to gzip) O. Shapira: Shared Dictionary Compression for HTTP at LinkedIn, 2015 Brotli – SDCH for Everyone Encoding Size None 200 kB Gzip ~36 kB Delta Encoding ~34 kB SDCH ~7 kB Brotli ~29 kB ~85.6% saved data J. Alakuijala, E. Kliuchnikov, Z. Szabadka, L. Vandevenne: Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms, 2015 So Far On Compression… Theory vs. Reality GZip (~80%) SDCH Deflate
    [Show full text]
  • Compression: Putting the Squeeze on Storage
    Compression: Putting the Squeeze on Storage Live Webcast September 2, 2020 11:00 am PT 1 | ©2020 Storage Networking Industry Association. All Rights Reserved. Today’s Presenters Ilker Cebeli John Kim Brian Will Moderator Chair, SNIA Networking Storage Forum Intel® QuickAssist Technology Samsung NVIDIA Software Architect Intel 2 | ©2020 Storage Networking Industry Association. All Rights Reserved. SNIA-At-A-Glance 3 3 | ©2020 Storage Networking Industry Association. All Rights Reserved. NSF Technologies 4 4 | ©2020 Storage Networking Industry Association. All Rights Reserved. SNIA Legal Notice § The material contained in this presentation is copyrighted by the SNIA unless otherwise noted. § Member companies and individual members may use this material in presentations and literature under the following conditions: § Any slide or slides used must be reproduced in their entirety without modification § The SNIA must be acknowledged as the source of any material used in the body of any document containing material from these presentations. § This presentation is a project of the SNIA. § Neither the author nor the presenter is an attorney and nothing in this presentation is intended to be, or should be construed as legal advice or an opinion of counsel. If you need legal advice or a legal opinion please contact your attorney. § The information presented herein represents the author's personal opinion and current understanding of the relevant issues involved. The author, the presenter, and the SNIA do not assume any responsibility or liability for damages arising out of any reliance on or use of this information. NO WARRANTIES, EXPRESS OR IMPLIED. USE AT YOUR OWN RISK. 5 | ©2020 Storage Networking Industry Association.
    [Show full text]
  • An Inter-Data Encoding Technique That Exploits Synchronized Data for Network Applications
    1 An Inter-data Encoding Technique that Exploits Synchronized Data for Network Applications Wooseung Nam, Student Member, IEEE, Joohyun Lee, Member, IEEE, Ness B. Shroff, Fellow, IEEE, and Kyunghan Lee, Member, IEEE Abstract—In a variety of network applications, there exists significant amount of shared data between two end hosts. Examples include data synchronization services that replicate data from one node to another. Given that shared data may have high correlation with new data to transmit, we question how such shared data can be best utilized to improve the efficiency of data transmission. To answer this, we develop an inter-data encoding technique, SyncCoding, that effectively replaces bit sequences of the data to be transmitted with the pointers to their matching bit sequences in the shared data so called references. By doing so, SyncCoding can reduce data traffic, speed up data transmission, and save energy consumption for transmission. Our evaluations of SyncCoding implemented in Linux show that it outperforms existing popular encoding techniques, Brotli, LZMA, Deflate, and Deduplication. The gains of SyncCoding over those techniques in the perspective of data size after compression in a cloud storage scenario are about 12.5%, 20.8%, 30.1%, and 66.1%, and are about 78.4%, 80.3%, 84.3%, and 94.3% in a web browsing scenario, respectively. Index Terms—Source coding; Data compression; Encoding; Data synchronization; Shared data; Reference selection F 1 INTRODUCTION are capable of exploiting previously stored or delivered URING the last decade, cloud-based data synchroniza- data for storing or transmitting new data. However, they D tion services for end-users such as Dropbox, OneDrive, mostly work at the level of files or chunks of a fixed and Google Drive have attracted a huge number of sub- size (e.g., 4MB in Dropbox, 8kB in Neptune [4]), which scribers.
    [Show full text]
  • I Came to Drop Bombs Auditing the Compression Algorithm Weapons Cache
    I Came to Drop Bombs Auditing the Compression Algorithm Weapons Cache Cara Marie NCC Group Blackhat USA 2016 About Me • NCC Group Senior Security Consultant Pentested numerous networks, web applications, mobile applications, etc. • Hackbright Graduate • Ticket scalper in a previous life • @bones_codes | [email protected] What is a Decompression Bomb? A decompression bomb is a file designed to crash or render useless the program or system reading it. Vulnerable Vectors • Chat clients • Image hosting • Web browsers • Web servers • Everyday web-services software • Everyday client software • Embedded devices (especially vulnerable due to weak hardware) • Embedded documents • Gzip’d log uploads A History Lesson early 90’s • ARC/LZH/ZIP/RAR bombs were used to DoS FidoNet systems 2002 • Paul L. Daniels publishes Arbomb (Archive “Bomb” detection utility) 2003 • Posting by Steve Wray on FullDisclosure about a bzip2 bomb antivirus software DoS 2004 • AERAsec Network Services and Security publishes research on the various reactions of antivirus software against decompression bombs, includes a comparison chart 2014 • Several CVEs for PIL are issued — first release July 2010 (CVE-2014-3589, CVE-2014-3598, CVE-2014-9601) 2015 • CVE for libpng — first release Aug 2004 (CVE-2015-8126) Why Are We Still Talking About This?!? Why Are We Still Talking About This?!? Compression is the New Hotness Who This Is For Who This Is For The Archives An archive bomb, a.k.a. zip bomb, is often employed to disable antivirus software, in order to create an opening for more traditional viruses • Singly compressed large file • Self-reproducing compressed files, i.e. Russ Cox’s Zips All The Way Down • Nested compressed files, i.e.
    [Show full text]