Skip to content

zhenyu-aws-lab/Ddbtest

Repository files navigation

基于不同并发测试Global Table延时

Prerequsite

  • An AWS account
  • An EC2 Instance with DDBWriteAccess
  • Install git on EC2
  • Install node on EC2

1.Git clone this repository

[ec2-user@**** ~]$ git clone https://github.com/zhenyu-aws-lab/Ddbtest.git

进入项目目录 & 安装本node程序相关的依赖包
[root@*** ec2-user]# cd Ddbtest/
[root@*** Ddbtest]# npm install
npm WARN saveError ENOENT: no such file or directory, open '/home/ec2-user/Ddbtest/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/home/ec2-user/Ddbtest/package.json'
npm WARN Ddbtest No description
npm WARN Ddbtest No repository field.
npm WARN Ddbtest No README data
npm WARN Ddbtest No license field.

up to date in 0.235s

2.Create Table

设定实验Region

本实验默认在Oregan进行,如果需要修改,请修改MoviesCreateTable.js & loadDataConcurrent.js 下述部分中的region

AWS.config.update({
  region: "us-west-2"
});
在项目目录执行以下命令,得到输出
root@ip-172-31-17-57 Ddbtest]# node MoviesCreateTable.js
Created table. Table description JSON: {
  "TableDescription": {
    "AttributeDefinitions": [
      {
        "AttributeName": "title",
        "AttributeType": "S"
      },
      {
        "AttributeName": "year",
        "AttributeType": "N"
      }
    ],
    "TableName": "Movies",
    "KeySchema": [
      {
        "AttributeName": "year",
        "KeyType": "HASH"
      },
      {
        "AttributeName": "title",
        "KeyType": "RANGE"
      }
    ],
    "TableStatus": "CREATING",
    "CreationDateTime": "2018-07-14T07:02:05.556Z",
    "ProvisionedThroughput": {
      "NumberOfDecreasesToday": 0,
      "ReadCapacityUnits": 10,
      "WriteCapacityUnits": 10
    },
    "TableSizeBytes": 0,
    "ItemCount": 0,
    "TableArn": "arn:aws:dynamodb:us-west-2:269562551342:table/Movies",
    "TableId": "0f52c126-9400-4b71-a4ea-5c67894be424"
  }
}

3.创建Global Table

创建Ireland的Global Table

DDB Gloabl Table的实现是基于DDB Stream实现的,所以如需要建立DDB Global Table我们需要满足如下条件:
  • Empty Table
  • Enable DDB Stream
如下图所示

image

创建Ireland region的Global Table

image

等待一定时间后,点击界面的刷新按钮,可以看到Global Table已经生成

image

调整Global Table的WCU & RCU,此处设置为1000

image

4.Test with different setting

执行以下应用程序,输入并发数和执行的时间

[root@ip-172-31-17-57 Ddbtest]# node loadDataConcurrent.js
Importing movies into DynamoDB. Please wait.
? please input desired test concurrency : 1000
? please input desired test time by Seconds : (50000) 1000000

执行过程中看到的耗时为每指定数量个并发的耗时,可以看到均为1s以内,通过在程序中设定执行的时间为1s一次即可以测试指定并发,指定WCU&RCU下的情况

测试结果如下图所示

image

About

This is used for ddb test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published