[
https://issues.apache.org/jira/browse/HBASE-3904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13036687#comment-13036687
]
Vidhyashankar Venkataraman commented on HBASE-3904:
---------------------------------------------------
That's exactly what I did with my table existence check! And getRegionsInfo
works accurately.
I think we have kind of misunderstood what is actually happening: Or I am
wrong this time :)
From what I read in the isTableAvailable function, the Metascanvisitor ensures
that if there is at least one region not assigned, then the function will
return false. This isn't enough since the createTable function in master
assigns one region after another. (Refer to HMAster.createTable(final
HRegionInfo [] newRegions, boolean sync)) Hence there might be a case when all
regions are indeed fully assigned in META but it is just that the master is yet
to populate META with the rest of the regions. I believe that's the reason why
I got those inconsistent responses from isTableAvailable.
Therefor for isTableAvailable to work correctly with createTable(splitkeys),
the master will have to populate all the regions in meta first before assigning
them. I think that will do the trick.
> HConnection.isTableAvailable returns true even with not all regions available.
> ------------------------------------------------------------------------------
>
> Key: HBASE-3904
> URL: https://issues.apache.org/jira/browse/HBASE-3904
> Project: HBase
> Issue Type: Bug
> Components: client
> Reporter: Vidhyashankar Venkataraman
> Priority: Minor
>
> This function as per the java doc is supposed to return true iff "all the
> regions in the table are available". But if the table is still being created
> this function may return inconsistent results (For example, when a table with
> a large number of split keys is created).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira