tsd.storage.salt.width=1,
tsd.storage.salt.buckets=20) with the standard 3 byte metric UID using random assigment, what should the start and end keys values for the region split script be?After testing this, it appears I was mistaken. A clean install on a fresh cluster verified that the original assumption (\x00\x00\x00\x00 and end key: \x14\xFF\xFF\xFF) was correct.
On Thursday, 18 August 2016 15:35:04 UTC+2, Izak Marais wrote:Specifically:
- Should/can one use both random metric assignment and salting? (Are they orthogonal features?) It seems like they accomplish similar goals: both increase region server write distribution. From the documentation it seems that salting is better at achieving this goal.
- We want to pre-split HBase regions, but we don't know the metric names beforehand. Therefore we should use random metric assignment ensure we evenly divide our keyspace. Or does salting sufficiently take care of this as well?
- Assuming we must combine a 1 byte salt prefix (
tsd.storage.salt.width=1,
tsd.storage.salt.buckets=20) with the standard 3 byte metric UID using random assigment, what should the start and end keys values for the region split script be?I will try to answer #3 above:
- Since we have 20 buckets in the first salt byte, we have possible values \x00 to \x14 for the first byte. If we use random UID assignment for metrics across the entire 3 byte metric space, we have \x00\x00\x00 to \xFF\xFF\xFF for the metrics. Concatenating the salt bytes and metric bytes we have the start key: \x00\x00\x00\x00 and end key: \x14\xFF\xFF\xFF. Does this look correct?
I have a small cluster with 5 region servers. Without salting most of the data is writing to one hbase region server which is causing very bad read performance when issuing multiple queries at the same time.Could you please advise if salting will help in this case. If yes then what should be the bucket size as i have only 5 region servers.Im using multiple tags (5) in the metrics format.