hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-1316) ZooKeeper: use native threads to avoid GC stalls (JNI integration)
Date Wed, 25 May 2011 05:01:47 GMT

    [ https://issues.apache.org/jira/browse/HBASE-1316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13038959#comment-13038959

stack commented on HBASE-1316:

bq. We could also build the native libraries as a separate maven module that HBase could depend
on, that way the assembly could include all versions that we've built.

We can work this out later, np.

bq. We could turn off the automatic activation entirely and require that you turn on the profile
using mvn -Pnative

We could but I think the way you have it is the way to go, at least on first version (We can
add 'off' button later).

bq. ...ce you'll want to tune the two separately, I put it in as a separate config....

Ok.  Makes sense.

bq. . This can be done pretty easily by just connecting to zk with the same session id and
password and then closing the session.  This way anyone watching ephemeral nodes created by
the Java session would get equally fast failure notifications.

Yes.  This seems right.  There are issues around RS death, making it 'clean'-er than it is
but thats out of scope for this issue (at same time a call to 'exit' the RS, to make it do
a sudden death, might be a nice-to-have).

Good stuff Joey.

> ZooKeeper: use native threads to avoid GC stalls (JNI integration)
> ------------------------------------------------------------------
>                 Key: HBASE-1316
>                 URL: https://issues.apache.org/jira/browse/HBASE-1316
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.20.0
>            Reporter: Andrew Purtell
>            Assignee: Berk D. Demir
>         Attachments: HBASE-1316-1.patch, zk_wrapper.tar.gz, zookeeper-native-Linux-amd64-64.tgz,
> From Joey Echeverria up on hbase-users@:
> We've used zookeeper in a write-heavy project we've been working on and experienced issues
similar to what you described. After several days of debugging, we discovered that our issue
was garbage collection. There was no way to guarantee we wouldn't have long pauses especially
since our environment was the worst case for garbage collection, millions of tiny, short lived
objects. I suspect HBase sees similar work loads frequently, if it's not constantly. With
anything shorter than a 30 second session time out, we got session expiration events extremely
frequently. We needed to use 60 seconds for any real confidence that an ephemeral node disappearing
meant something was unavailable.
> We really wanted quick recovery so we ended up writing a light-weight wrapper around
the C API and used swig to auto-generate a JNI interface. It's not perfect, but since we switched
to this method we've never seen a session expiration event and ephemeral nodes only disappear
when there are network issues or a machine/process goes down.
> I don't know if it's worth doing the same kind of thing for HBase as it adds some "unnecessary"
native code, but it's a solution that I found works.

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message