func PutData()

in lib/load.go [33:70]


func PutData(allReq *uint32, successReq *uint32, errorReq *uint32, maxRequest int, dataSize int,
	tableName string, awsRegion string, testData []item, threadStartIndex int, threadCount int) (putConsumedCapacity float64) {
	fmt.Printf("PUT start child execute : time:%v,Counter:%v,MaxRequets:%v\n",
		time.Now(), atomic.LoadUint32(allReq), maxRequest)

	sess, err := session.NewSession(&aws.Config{Region: aws.String(awsRegion)})

	if err != nil {
		fmt.Println("PUT Got session error:", err.Error())
		os.Exit(1)
	}
	svc := dynamodb.New(sess, aws.NewConfig().WithMaxRetries(0))

	var grCount int

	fmt.Println("PUT This goroutine  threadStartIndex:", threadStartIndex, "threadCount:", threadCount)
	for i := threadStartIndex; i < threadStartIndex+threadCount; i++ {
		item := testData[i]
		putData := makePutTestData(tableName, item.Pk, item.Sk, makeTestData(dataSize))
		result, err := svc.PutItem(putData)

		if result != nil {
			putConsumedCapacity = putConsumedCapacity + *result.ConsumedCapacity.CapacityUnits
		}
		if err != nil {
			fmt.Printf("putItem error: %v\n", err.Error())
			atomic.AddUint32(errorReq, 1)
		} else {
			atomic.AddUint32(successReq, 1)
		}
		atomic.AddUint32(allReq, 1)
		grCount = grCount + 1
	}

	fmt.Printf("PUT end child execute:time:%v,Counter:%v,consumed capacity:%v\n", time.Now(), grCount, putConsumedCapacity)

	return putConsumedCapacity
}