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

Test Method

This section describes performance testing of GeminiDB DynamoDB 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 1 KB.
  • Average CPU load in the pressure 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 performance of databases. In this test, YCSB 0.17.0 is used. For details about the load balancing policy, see the provided 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 values for fields readproportion, insertproportion, updateproportion, scanproportion, and readmodifywriteproportion in the file by referring to Table 2.

    Set a value for field recordcount in the file by referring to 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 Test models

    Test Model No.

    Test Model

    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.

    For details about the preset data volumes, see the following table.

    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