[ https://issues.apache.org/jira/browse/HADOOP-6297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kevin J. Price updated HADOOP-6297: ----------------------------------- Affects Version/s: (was: 0.21.0) site Status: Patch Available (was: Open) Exposes the ability to pass a flush level through to the zlib deflate function call. This is achieved by: * Creating a FlushLevel enumeration that mirrors the zlib values. * Adding a 'flushLevel' parameter to the compress function that takes a value in this enumeration, and sets a local private variable to the integer corresponding to this enumeration. (If the finish boolean is true, then FINISH is used in place of the flushLevel parameter, which matches current behavior. * Create a new compress function that matches the old signature that just calls the new compress with NO_FLUSH for the flush level, which should maintain existing behavior. * Make the native code wrapper check for the private flushLevel variable and pass that along to the underlying deflate call. Also added a TestZlib unit test that tests the three possible flush levels. > Hadoop's support for zlib library lacks support to perform flushes > (Z_SYNC_FLUSH and Z_FULL_FLUSH) > -------------------------------------------------------------------------------------------------- > > Key: HADOOP-6297 > URL: https://issues.apache.org/jira/browse/HADOOP-6297 > Project: Hadoop Common > Issue Type: Improvement > Components: io > Affects Versions: site > Reporter: Kevin J. Price > Priority: Minor > > The zlib library supports the ability to perform two types of flushes when > deflating data. It can perform both a Z_SYNC_FLUSH, which forces all input to > be written as output and byte-aligned and resets the Huffman coding, and it > also supports a Z_FULL_FLUSH, which does the same thing but additionally > resets the compression dictionary. The Hadoop wrapper for the zlib library > does not support either of these two methods. > Adding support should be fairly trivial. An additional deflate method that > takes a fourth "flush" parameter, and a modification to the native c code to > accept this fourth parameter and pass it along to the zlib library. I can > submit a patch for this if desired. > It should be noted that the native SUN Java API is likewise missing this > functionality, as has been noted for over a decade here: > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4206909 -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.