[
https://issues.apache.org/jira/browse/HBASE-20000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16364693#comment-16364693
]
Appy commented on HBASE-20000:
------------------------------
Just an idea to discuss (other comments in Review board)
We have different impl of isAvailable() for each queue which are more or large
the same.
But as we get more types, it'll become increasingly hard to reason about system
if the queue types grow different from each other.
Luckily in this case, it doesn't have to be this way.
ServerQueue uses Queue class' impl since there are no server procedures which
spawn child procedure which try to take lock on same server. So the simple
check is sufficient. But it can also do with same impl has peerqueue.
Can we make our lifes easier by making a simple invariant in procedure
framework -
"Any exclusive lock held by a parent proc P will not block it's child procedure
trying to get the same lock"
That makes it easy to reason about the framework. Implementation wise, it's
just one common implementation of isAvailable().
TableQueue can do
pubilc boolean isAvailable() {
if (namespaceLockStat.hasExclusiveLock()) {
return false;
} else {
return super.isAvailable();
}
}
> Remove the quantum logic in FairQueue, always put high priority queue in front
> ------------------------------------------------------------------------------
>
> Key: HBASE-20000
> URL: https://issues.apache.org/jira/browse/HBASE-20000
> Project: HBase
> Issue Type: Sub-task
> Components: proc-v2
> Reporter: Duo Zhang
> Assignee: Duo Zhang
> Priority: Major
> Fix For: 2.0.0-beta-2
>
> Attachments: HBASE-20000.patch
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)