Updated on 2025-07-03 GMT+08:00

Performance Test Methods

This section describes performance tests of GeminiDB DynamoDB-Compatible 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: 1 KB per row
  • Average CPU load during the stress test: 50
  • Instance specifications: all specifications described in Table 1
    Table 1 Instance specifications

    No.

    Specifications

    Cluster 1

    4 vCPUs | 16 GB

    Cluster 2

    8 vCPUs | 32 GB

    Cluster 3

    16 vCPUs | 64 GB

    Cluster 4

    32 vCPUs | 128 GB

Test Tool

YCSB is an open-source tool for testing database performance. In this test, YCSB 0.17.0 is used. For details about the load balancing policy, see the load balancing plug-in.

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.

    Set recordcount in the workload file based on Table 3.

  2. Use workload-insert-mostly as an example. Run the following command to prepare test data:
    nohup ./bin/ycsb load dynamodb -s -P workloads/workload-insert-mostly -P dynamodb.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 dynamodb -s -P workloads/workload-insert-mostly -P dynamodb.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-mostly

    100% read

    workload-write-mostly

    100% insert

    workload-read-write-combination

    50% update, 50% read

  • Data model

    fieldlength = 100, fieldcount = 10

  • Preset data volume

    Different preset data volumes were used to test performance of instances of each type of specifications.

    The following table describes the preset data volumes.

    Table 3 Preset data volumes

    No.

    Specifications

    Preset Data Volume

    Cluster 1

    4 vCPUs | 16 GB

    200 GB

    Cluster 2

    8 vCPUs | 32 GB

    500 GB

    Cluster 3

    16 vCPUs | 64 GB

    1,000 GB

    Cluster 4

    32 vCPUs | 128 GB

    2,000 GB