我要评分
获取效率
正确性
完整性
易理解

OmniHBaseGSI

HBase is efficient when querying by rowkey. However, for non-rowkey queries, it has to scan the entire table, which is time- and resource-consuming. In some actual scenarios, a user's Internet access logs can be queried through phone numbers, website addresses, or IP addresses. In such a scenario, the query using non-rowkey columns (web page addresses) needs to traverse the entire table, resulting in poor query performance. To address this issue, global secondary indexes are used.

OmniHBaseGSI, the HBase global secondary index feature, creates global secondary indexes for non-rowkey columns, greatly accelerating queries on non-rowkey columns. Specifically, during a non-rowkey query, OmniHBaseGSI queries the secondary index table to obtain the rowkey of the original table, and then uses the rowkey to query the original table. In this way, the query speed is greatly accelerated and the performance is multiplied. If there is no secondary index, the entire table needs to be scanned. If there is a secondary index, only two rounds of rowkey query are required.

OmniHBaseGSI performance data

The performance of OmniHBaseGSI is tested when there are 20, 50, and 100 concurrent connections, each connection with 50,000 concurrent requests. The following figure shows the average latency and P99 latency of non-rowkey queries after OmniHBaseGSI is used.

Figure 1 OmniHBaseGSI performance