I have a cluster Hbase set-up. In that I have 3 Region Servers. There is a table which has 27 Regions equally distributed among 3 Region servers--9 regions per region server.
Region server 1 has ---region 1-9 Region server 2 has ---region 10-18 Region server 3 has ---region 19-27
Now when I start a program which inserts rows in region 1 and region 5 (both under Region Server-1) alternatively and on continuous basis, I see that the insert time for each row is not constant or consistent---there is a lot of variance or say standard deviation of insert time is quite large. Some times it takes 2 ms to insert a row, sometimes 3 ms,sometimes 1000 ms and sometimes even > 3000 ms.Even though data size in rows is equal.
I understand that due to flushing and compaction of Regions the writes are blocked---but then it should not be blocked for larger span of time and the blockage time should be consistent for every flush/compaction (minor compaction).
All in all every time flush and compaction occurs it should take nearly same time for each compaction and flush.
For our application we need a consistent quality of service and if not perfect atleast we need a well visible boundary lines--like for each row insert it will take some 0 to 10 ms and not more than 10 ms(just an example) that even though minor compaction or flush occurs.
Is there any setting/configuration which I should try?
Any ideas of how to achieve it in Hbase.
Any help would be really appreciated.
Thanks in advance!!