You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2010/11/25 20:15:13 UTC

[jira] Created: (HBASE-3279) [rest] Filter for gzip/deflate content encoding that wraps both input and output side

[rest] Filter for gzip/deflate content encoding that wraps both input and output side
-------------------------------------------------------------------------------------

                 Key: HBASE-3279
                 URL: https://issues.apache.org/jira/browse/HBASE-3279
             Project: HBase
          Issue Type: Improvement
            Reporter: Andrew Purtell
            Assignee: Andrew Purtell
             Fix For: 0.20.7, 0.92.0


After HBASE-3275 the REST gateway will return gzip or deflate encoded content to the client if the client requested it using the appropriate Accept-Encoding header. However Jetty's GzipFilter only wraps output side processing. A client can submit gzip or deflate encoded requests (i.e. Content-Encoding: gzip ; Content-Type: ...) but the data is not decoded, it is simply passed through. 

Implement a filter that also wraps input side processing, so clients can submit compressed PUT or POST bodies. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HBASE-3279) [rest] Filter for gzip/deflate content encoding that wraps both input and output side

Posted by "Andrew Purtell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-3279?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Purtell updated HBASE-3279:
----------------------------------

    Attachment: HBASE-3279.patch

> [rest] Filter for gzip/deflate content encoding that wraps both input and output side
> -------------------------------------------------------------------------------------
>
>                 Key: HBASE-3279
>                 URL: https://issues.apache.org/jira/browse/HBASE-3279
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>             Fix For: 0.20.7, 0.90.0
>
>         Attachments: HBASE-3279.patch
>
>
> After HBASE-3275 the REST gateway will return gzip or deflate encoded content to the client if the client requested it using the appropriate Accept-Encoding header. However Jetty's GzipFilter only wraps output side processing. A client can submit gzip or deflate encoded requests (i.e. Content-Encoding: gzip ; Content-Type: ...) but the data is not decoded, it is simply passed through. 
> Implement a filter that also wraps input side processing, so clients can submit compressed PUT or POST bodies. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HBASE-3279) [rest] Filter for gzip/deflate content encoding that wraps both input and output side

Posted by "Andrew Purtell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-3279?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Purtell updated HBASE-3279:
----------------------------------

    Fix Version/s:     (was: 0.92.0)
                   0.90.0

Moving into 0.90. Can take out if someone has an objection. Rationale for HBASE-3275 was lack of compression support was a bug. This is an incremental improvement on top of that to handle requests also.

> [rest] Filter for gzip/deflate content encoding that wraps both input and output side
> -------------------------------------------------------------------------------------
>
>                 Key: HBASE-3279
>                 URL: https://issues.apache.org/jira/browse/HBASE-3279
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>             Fix For: 0.20.7, 0.90.0
>
>
> After HBASE-3275 the REST gateway will return gzip or deflate encoded content to the client if the client requested it using the appropriate Accept-Encoding header. However Jetty's GzipFilter only wraps output side processing. A client can submit gzip or deflate encoded requests (i.e. Content-Encoding: gzip ; Content-Type: ...) but the data is not decoded, it is simply passed through. 
> Implement a filter that also wraps input side processing, so clients can submit compressed PUT or POST bodies. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-3279) [rest] Filter for gzip/deflate content encoding that wraps both input and output side

Posted by "HBase Review Board (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12936015#action_12936015 ] 

HBase Review Board commented on HBASE-3279:
-------------------------------------------

Message from: "Lars George" <la...@apache.org>

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://review.cloudera.org/r/1254/#review1981
-----------------------------------------------------------

Ship it!


Looks great! RB did show some white spaces added unnecessarily, I assume you could remove those on commit.

- Lars





> [rest] Filter for gzip/deflate content encoding that wraps both input and output side
> -------------------------------------------------------------------------------------
>
>                 Key: HBASE-3279
>                 URL: https://issues.apache.org/jira/browse/HBASE-3279
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>             Fix For: 0.20.7, 0.90.0
>
>
> After HBASE-3275 the REST gateway will return gzip or deflate encoded content to the client if the client requested it using the appropriate Accept-Encoding header. However Jetty's GzipFilter only wraps output side processing. A client can submit gzip or deflate encoded requests (i.e. Content-Encoding: gzip ; Content-Type: ...) but the data is not decoded, it is simply passed through. 
> Implement a filter that also wraps input side processing, so clients can submit compressed PUT or POST bodies. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HBASE-3279) [rest] Filter for gzip/deflate content encoding that wraps both input and output side

Posted by "HBase Review Board (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-3279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12935965#action_12935965 ] 

HBase Review Board commented on HBASE-3279:
-------------------------------------------

Message from: "Andrew Purtell" <ap...@apache.org>

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://review.cloudera.org/r/1254/
-----------------------------------------------------------

Review request for hbase.


Summary
-------

After HBASE-3275 the REST gateway uses Jetty's GzipFilter to will return gzip or deflate encoded content to the client if the client requested it using the appropriate Accept-Encoding header. However Jetty's GzipFilter only wraps output side processing.

This patch implements a filter that also wraps input side processing, so clients can submit compressed PUT or POST bodies.


This addresses bug HBASE-3279.
    http://issues.apache.org/jira/browse/HBASE-3279


Diffs
-----

  src/main/java/org/apache/hadoop/hbase/rest/Main.java 54866b6 
  src/main/java/org/apache/hadoop/hbase/rest/filter/GZIPRequestStream.java PRE-CREATION 
  src/main/java/org/apache/hadoop/hbase/rest/filter/GZIPRequestWrapper.java PRE-CREATION 
  src/main/java/org/apache/hadoop/hbase/rest/filter/GZIPResponseStream.java PRE-CREATION 
  src/main/java/org/apache/hadoop/hbase/rest/filter/GZIPResponseWrapper.java PRE-CREATION 
  src/main/java/org/apache/hadoop/hbase/rest/filter/GzipFilter.java PRE-CREATION 
  src/test/java/org/apache/hadoop/hbase/rest/HBaseRESTTestingUtility.java 5e943ec 
  src/test/java/org/apache/hadoop/hbase/rest/TestGzipFilter.java PRE-CREATION 

Diff: http://review.cloudera.org/r/1254/diff


Testing
-------

New unit test, passes.


Thanks,

Andrew




> [rest] Filter for gzip/deflate content encoding that wraps both input and output side
> -------------------------------------------------------------------------------------
>
>                 Key: HBASE-3279
>                 URL: https://issues.apache.org/jira/browse/HBASE-3279
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>             Fix For: 0.20.7, 0.90.0
>
>
> After HBASE-3275 the REST gateway will return gzip or deflate encoded content to the client if the client requested it using the appropriate Accept-Encoding header. However Jetty's GzipFilter only wraps output side processing. A client can submit gzip or deflate encoded requests (i.e. Content-Encoding: gzip ; Content-Type: ...) but the data is not decoded, it is simply passed through. 
> Implement a filter that also wraps input side processing, so clients can submit compressed PUT or POST bodies. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (HBASE-3279) [rest] Filter for gzip/deflate content encoding that wraps both input and output side

Posted by "Andrew Purtell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-3279?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Purtell resolved HBASE-3279.
-----------------------------------

      Resolution: Fixed
    Hadoop Flags: [Reviewed]

Committed to trunk, 0.90 branch, and 0.20 branch. Removed extra whitespace before commit. Thanks for the review Lars!

> [rest] Filter for gzip/deflate content encoding that wraps both input and output side
> -------------------------------------------------------------------------------------
>
>                 Key: HBASE-3279
>                 URL: https://issues.apache.org/jira/browse/HBASE-3279
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>             Fix For: 0.20.7, 0.90.0
>
>         Attachments: HBASE-3279.patch
>
>
> After HBASE-3275 the REST gateway will return gzip or deflate encoded content to the client if the client requested it using the appropriate Accept-Encoding header. However Jetty's GzipFilter only wraps output side processing. A client can submit gzip or deflate encoded requests (i.e. Content-Encoding: gzip ; Content-Type: ...) but the data is not decoded, it is simply passed through. 
> Implement a filter that also wraps input side processing, so clients can submit compressed PUT or POST bodies. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.