Updated on 2025-08-05 GMT+08:00

Performance Test Methods

This section describes performance tests of GeminiDB HBase instances, including environment, procedure, and model tests.

Test Environment

  • Region: CN North-Beijing4
  • AZ: AZ 1
  • Elastic Cloud Server (ECS): h3.4xlarge.2 with 16 vCPUs, 32 GB of memory, and CentOS 7.5 64-bit image
  • Stress test data model: 20 columns in a single row and 20 bytes in each column
  • Instance specifications: all specifications described in Table 1
    Table 1 Instance specifications

    No.

    Specifications

    Cluster 1

    16 vCPUs | 64 GB

Test Tool

YCSB is an open-source tool for testing database performance. In this test, YCSB 0.17.0 is used.

For details on how to use this tool, see YCSB.

Test Metrics

Operations per Second (OPS): operations executed by a database per second

Test Procedure

  1. Configure the workload file.

    Set readproportion, insertproportion, updateproportion, scanproportion, and readmodifywriteproportion in the workload file based on Table 2.

  2. Use workload-insert-mostly as an example. Run the following command to prepare test data:
    nohup ./bin/ycsb load hbase -s -P workloads/workload-insert-mostly -P hbase.properties -p operationcount=400000000 -p recordcount=400000000 -threads ${thread} -p maxexecutiontime=${maxexecutiontime} -s 1> data_load.log 2>&1 &
  3. Use workload-insert-mostly as an example. Run the following command to test performance:
    nohup ./bin/ycsb run hbase -s -P workloads/workload-insert-mostly -P hbase.properties -p operationcount=9000000 -p recordcount=9000000 -threads ${thread} -s 1> workload-insert-mostly_run.log 2>&1 &

Test Models

  • Workload model
    Table 2 Workload models

    Workload Model

    Test Models

    workload-read (single-row read)

    100% read

    workload-insert (single-row write)

    100% insert

    workload-range-read (range read)

    100% range read

  • Preset data volume

    In this performance test, 2 billion data records are preset for instances of each specification. Each data record contains 20 fields, and the size of each field is 20 bytes.