Updated on 2024-08-08 GMT+08:00

Test Method

This section describes performance testing of GeminiDB HBase instances, including the test environment, procedure, and results.

Test Environment

  • Region: CN North-Beijing4
  • AZ: AZ1
  • Elastic Cloud Server (ECS): h3.4xlarge.2 with 16 vCPUs, 32 GB of memory, and CentOS 7.5 64-bit image
  • Pressure test data model: The size of each line is 20 bytes.
  • Instance specifications: All specifications described in Table 1.
    Table 1 Specifications

    No.

    Specifications

    cluster1

    16U64GB

Test Tool

In this test, the YCSB 0.17.0 test tool provided by the open-source community is used to connect to the GeminiDB HBase-compatible instance and fix issues in high concurrency scenarios.

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 values for fields readproportion, insertproportion, updateproportion, scanproportion, and readmodifywriteproportion in the file by referring to 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 Model

  • Workload model
    Table 2 Test Model

    Test Model No.

    Test Model

    workload-read (single-line read)

    100% read

    workload-insert (single-line write)

    100% insert

    workload-range-read (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.