[
https://issues.apache.org/jira/browse/HBASE-5228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13189220#comment-13189220
]
Ben West commented on HBASE-5228:
---------------------------------
Thanks Andrew for this patch.
For others who might run into this: running a jstack on our REST server
revealed that virtually every thread was hung waiting on a table descriptor:
{code}
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:885)
- locked <0x000000070218e7d0> (a
org.apache.hadoop.hbase.ipc.HBaseClient$Call)
at
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:150)
at $Proxy61.getHTableDescriptors(Unknown Source)
at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHTableDescriptor(HConnectionManager.java:1871)
at
org.apache.hadoop.hbase.client.HTable.getTableDescriptor(HTable.java:404)
at
org.apache.hadoop.hbase.client.HTablePool$PooledHTable.getTableDescriptor(HTablePool.java:344)
at
org.apache.hadoop.hbase.rest.RowResultGenerator.<init>(RowResultGenerator.java:64)
at
org.apache.hadoop.hbase.rest.ResultGenerator.fromRowSpec(ResultGenerator.java:35)
at org.apache.hadoop.hbase.rest.RowResource.get(RowResource.java:86)
{code}
So if your REST server is running slowly on an affected version, I guess try
running a jstack and see if you see this behavior.
> [REST] Rip out "transform" feature
> ----------------------------------
>
> Key: HBASE-5228
> URL: https://issues.apache.org/jira/browse/HBASE-5228
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.92.0, 0.94.0, 0.90.5
> Reporter: Andrew Purtell
> Assignee: Andrew Purtell
> Fix For: 0.94.0, 0.92.1, 0.90.6
>
> Attachments: HBASE-5228-0.92.patch, HBASE-5228-trunk.patch
>
>
> The 'transform' feature, where REST can be instructed, via a table attribute,
> to apply a transformation (e.g. base64 encoding or decoding) to a (sub)set of
> column values before serving them up to a client or storing them into HBase,
> was added some time ago at the request of Jack Levin. I have since come to
> regret it, it was not a well thought out feature:
> - This is really an application concern.
> - It adds significant overhead to request processing: Periodically a
> HBaseAdmin is used to retrieve the table descriptor, in order to scan through
> table attributes for transformation directives.
> I think it is best to rip it out, its a real problem area, and REST should be
> no more concerned about data formats than the Java API.
> I doubt anyone uses this, not even Jack. Will need to follow up with him to
> confirm.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira