[
https://issues.apache.org/jira/browse/HBASE-7247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13509789#comment-13509789
]
nkeywal edited comment on HBASE-7247 at 12/4/12 3:27 PM:
---------------------------------------------------------
bq. Do we not have this currently? If someone else changes the znode, we don't
notice? We only notice when we go to update the znode?
I haven't found where where we do it. The result of tickleOpening is actually
often ignored as well, or at least ignored for a long time.
for example, in OpenRegionHandler#updateMeta(final HRegion r), we have
{code}
tickleOpening = true(
while (/* condition, but not on tickleOpening */){
// do something
tickleOpening = tickleOpening();
}
return something && tickleOpening;
{code}
In theory, we should break the loop when tickleOpening becomes false.
While the way it's written, it seems that we can have a failure once, then a
success.
Basically, it seems that tickleOpening is not always used as a check.
was (Author: nkeywal):
bq. Do we not have this currently? If someone else changes the znode, we
don't notice? We only notice when we go to update the znode?
I haven't found where where we do it. The result of tickleOpening is actually
often ignored as well, or at least ignored for a long time.
for example, in OpenRegionHandler#updateMeta(final HRegion r), we have
{code}
tickleOpening = true(
while (/* condition, but not on tickleOpening */){
// do something
tickleOpening = tickleOpening();
}
return something && tickleOpening;
{code}
In theory, we should break the loop when tickleOpening becomes false.
While the way it's written, it seems that we can have a failure once, then a
success.
Basically, it s eems that tickleOpening is not always used as a check.
There is about the same code in OpenRegionHandler#process (i.e. an error in
tickleOpening does not interrupt the process).
> Assignment performances decreased by 50% because of
> regionserver.OpenRegionHandler#tickleOpening
> ------------------------------------------------------------------------------------------------
>
> Key: HBASE-7247
> URL: https://issues.apache.org/jira/browse/HBASE-7247
> Project: HBase
> Issue Type: Improvement
> Components: master, Region Assignment, regionserver
> Affects Versions: 0.96.0
> Reporter: nkeywal
> Assignee: nkeywal
> Priority: Critical
>
> The regionserver.OpenRegionHandler#tickleOpening updates the region znode as
> "Do this so master doesn't timeout this region-in-transition.".
> However, on the usual test, this makes the assignment time of 1500 regions
> goes from 70s to 100s, that is, we're 50% slower because of this.
> More generally, ZooKeper commits to disk all the data update, and this takes
> time. Using it to provide a keep alive seems overkill. At the very list, it
> could be made asynchronous.
> I'm not sure how necessary these updates are required (I need to go deeper in
> the internal, feedback welcome), but it seems very important to optimize
> this... The trival fix would be to make this optional.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira