diff --git a/tests/perftest-scripts/perftest-consistent-inserting-data.sh b/tests/perftest-scripts/perftest-consistent-inserting-data.sh new file mode 100755 index 0000000000..bfed398b96 --- /dev/null +++ b/tests/perftest-scripts/perftest-consistent-inserting-data.sh @@ -0,0 +1,43 @@ +#!/bin/bash +ulimit -c unlimited + +function buildTDengine { + cd /root/TDengine + + git remote update + REMOTE_COMMIT=`git rev-parse --short remotes/origin/develop` + LOCAL_COMMIT=`git rev-parse --short @` + + echo " LOCAL: $LOCAL_COMMIT" + echo "REMOTE: $REMOTE_COMMIT" + if [ "$LOCAL_COMMIT" == "$REMOTE_COMMIT" ]; then + echo "repo up-to-date" + else + echo "repo need to pull" + git pull + + LOCAL_COMMIT=`git rev-parse --short @` + cd debug + rm -rf * + cmake .. + make > /dev/null + make install + fi +} + +function restartTaosd { + systemctl stop taosd + pkill -KILL -x taosd + sleep 10 + + rm -rf /var/lib/taos/data/* + rm -rf /var/lib/taos/log/* + + taosd 2>&1 > /dev/null & + sleep 10 +} + +buildTDengine +restartTaosd +cd /root/TDengine/tests/pytest/insert +python3 writeDBNonStop.py \ No newline at end of file diff --git a/tests/pytest/insert/writeDBNonStop.py b/tests/pytest/insert/writeDBNonStop.py new file mode 100644 index 0000000000..c89853ffb6 --- /dev/null +++ b/tests/pytest/insert/writeDBNonStop.py @@ -0,0 +1,82 @@ +################################################################### +# Copyright (c) 2016 by TAOS Technologies, Inc. +# All rights reserved. +# +# This file is proprietary and confidential to TAOS Technologies. +# No part of this file may be reproduced, stored, transmitted, +# disclosed or used in any form or by any means other than as +# expressly provided by the written permission from Jianhui Tao +# +################################################################### + +# -*- coding: utf-8 -*- + +import sys +import taos +import time +from datetime import datetime +import csv + + +class DBWriteNonStop: + def __init__(self): + self.host = "127.0.0.1" + self.user = "root" + self.password = "taosdata" + self.config = "/etc/taos" + + def connectDB(self): + self.conn = taos.connect( + self.host, + self.user, + self.password, + self.config) + self.cursor = self.conn.cursor() + + def createTable(self): + self.cursor.execute("drop database if exists dbwrite") + self.cursor.execute("create database dbwrite") + self.cursor.execute("use dbwrite") + self.cursor.execute( + "create table if not exists st (ts timestamp, value nchar(50), speed int) tags(dev nchar(50))") + + def writeDataToCSVFile(self, data, duration): + csvFile = open('/root/csvFile.csv', 'a', newline='') + writer = csv.writer(csvFile) + writer.writerow([data[0][0], data[0][1], data[0][2], + data[0][3], data[0][4], data[0][5], duration]) + csvFile.close() + + def insertData(self): + print("===============inserting data===============") + i = 1 + startTime = datetime.now() + while True: + self.cursor.execute( + "insert into st1 using st tags('dev_001') values(now, 'taosdata%d', %d)" % + (i % + 10000, + i % + 100000)) + i += 1 + i = i % 32000000 + endTime = datetime.now() + if (endTime - startTime).seconds >= 3600 * 1: + startTime = endTime + start = datetime.now() + self.cursor.execute( + "select first(ts), last(ts), min(speed), max(speed), avg(speed), count(*) from st") + data = self.cursor.fetchall() + end = datetime.now() + self.writeDataToCSVFile(data, (end - start).seconds) + time.sleep(.001) + + def closeConn(self): + self.cursor.close() + self.conn.close() + +test = DBWriteNonStop() +test.connectDB() +test.createTable() +test.insertData() +test.closeConn() \ No newline at end of file