phoenix-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sumit Nigam <>
Subject Re: Salting and pre-splitting
Date Wed, 07 Oct 2015 09:03:38 GMT
I did some homework and got some answers. Now open questions that remain:
1. Is number of buckets = number of task splits that Phoenix InputFormat uses?2. Salting uses
the first byte of stable hash of rowkey and it is this byte that is prefixed. Is this correct?
Answers, I could get:
1. Pre-splitting is not needed with salting. Salting anyway, pre-splits at salt byte boundary. 2.
SALT_BUCKETS can be set to a higher value than region servers for future.3. Adding a new region
server does not matter to existing records as the mod is with SALT_BUCKETS and not region
servers4. Default value of phoenix.query.rowKeyOrderSaltedTable is true and that ensure that
LIMIT clause returns data in rowkey order
      From: Sumit Nigam <>
 To: Users Mail List Phoenix <> 
 Sent: Wednesday, October 7, 2015 12:41 PM
 Subject: Salting and pre-splitting
I am somewhat confused by salting and pre-splitting. Would be grateful if any of you can clarify
the following:
1. Do I need to use pre-splitting along with salting to take advantage of performance? Or
I can still have single region server hot-spotting until I have enough regions to split into
2?2. Is it true that SALT_BUCKETS should be set to (number of region servers) * (number of
cores per region server) ?3. I cannot modify salt buckets after table is created. If so, what
happens when I add a new region server to the mix?4. Is number of buckets = number of task
splits that Phoenix InputFormat uses?5. Does salting create a hex rowkey as is recommended?6.
With salting, can I still perform range scans with LIMIT clause?

View raw message