[
https://issues.apache.org/jira/browse/CASSANDRA-12671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15721721#comment-15721721
]
Aleksey Yeschenko commented on CASSANDRA-12671:
-----------------------------------------------
Sorry, but I don't think this particular implementation will do.
1. {{getHintedHandoffThrottleBytesPerNode()}} does not belong to
{{DatabaseDescriptor}}. That class should be kept as close to a dumb wrapper
over {{Config}} as possible.
2. That calculation is not cheap, and as such should not be performed on *every
hint read*. Hint:
{code}
public Set<InetAddress> getAllEndpoints()
{
lock.readLock().lock();
try
{
return ImmutableSet.copyOf(endpointToHostIdMap.keySet());
}
finally
{
lock.readLock().unlock();
}
}
{code}
Generally I would recommend reading the source code of every method you call,
to know what each of them does under the hood. Can't always move code from one
place to another: what's acceptable as a one-off call might not be acceptable
on a hot path.
3. How are you even updating {{conf.hinted_handoff_throttle_in_kb}} live? Am I
missing something? Are you using a custom configuration provider?
4. Either way, this change, I assume, is not a frequent event. As such changes
to the rate limit should be push-based, not pull-based.
> Support changing hinted handoff throttle in real time
> ------------------------------------------------------
>
> Key: CASSANDRA-12671
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12671
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Dikang Gu
> Assignee: Dikang Gu
> Priority: Minor
> Fix For: 3.x
>
>
> Problem: currently the sethintedhandoffthrottlekb takes effect when current
> hints handoff tasks finish, and then applies to next task, which could take
> hours for big node.
> I think it would be great to change the hinted handoff throttle in real time,
> which means it takes effect immediately.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)