You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@iotdb.apache.org by GitBox <gi...@apache.org> on 2021/09/22 13:03:30 UTC

[GitHub] [iotdb] MrQuansy opened a new issue #4014: Cluster is stuck using benchmark insertRecords interface

MrQuansy opened a new issue #4014:
URL: https://github.com/apache/iotdb/issues/4014


   When using benchmark to insert records into IoTDB cluster, the cluster will be stuck, and schema of time series can't be automatically created.
   
   version:master, 0.12
   
   The configuration of benchmark is as followed.
   
   #JDBC HOST and PORT
   #Database and Default PORT:
   #IoTDB: 6667
   #TimescaleDB: 5432
   #TaosDB: 6030
   HOST=127.0.0.1
   PORT=6667
   USE_CLUSTER_DB=true
   CLUSTER_HOSTS=127.0.0.1:6667,127.0.0.1:6669,127.0.0.1:6671
   ###################
   # for double IOTDB
   ENABLE_DOUBLE_INSERT=false
   ANOTHER_HOST=127.0.0.1
   ANOTHER_PORT=6668
   KAFKA_LOCATION=127.0.0.1:9092
   ZOOKEEPER_LOCATION=127.0.0.1:2181
   TOPIC_NAME=test-topic
   ####################
   #RESTful URL
   #INFLUX_URL=http://127.0.0.1:8086
   #OPENTSDB_URL=http://127.0.0.1:4242
   #CTSDB_URL=http://10.104.27.14:9200
   #KairosDB_URL=http://127.0.0.1:8080
   #DB_URL=http://172.16.48.7:10691
   ############################
   #Thrift compression mode config
   ENABLE_THRIFT_COMPRESSION=false
   ############################
   #Currently support databases:
   #IoTDB
   #InfluxDB
   #OpenTSDB
   #CTSDB
   #KairosDB
   #TimescaleDB
   #FakeDB
   #TaosDB
   DB_SWITCH=IoTDB-012-SESSION_BY_RECORDS
   #Database name, only required for InfluxDB and TimescaleDB(DB_NAME需要与手动创建的数据库同名)
   DB_NAME=test
   ### benchmark work mode ###
   #目前支持多种运行模式,分别为:
   #testWithDefaultPath--常规测试模式,支持多种读和写操作的混合负载
   #writeWithRealDataSet--写入真实数据集模式,需要配置 FILE_PATH 以及 DATA_SET
   #queryWithRealDataSet--查询真实数据集模式,需要配置REAL_QUERY_START_TIME, REAL_QUERY_STOP_TIME, DATA_SET 以及 testWithDefaultPath模式下查询有关参数
   #serverMODE--服务器资源使用监控模式(该模式下运行通过ser-benchmark.sh脚本启动,无需手动配置该参数)
   #importDataFromCSV--从CSV文件中读取数据模式
   BENCHMARK_WORK_MODE=testWithDefaultPath
   #各操作的比例,按照顺序 写入:Q1:Q2:Q3:Q4:Q5:Q6:Q7:Q8, 请注意使用英文冒号。比例中的每一项是整数。
   #Qi表示的查询如下:
   #Q1--精确点查询 select v1... from data where time = ? and device in ?
   #Q2--范围查询(只限制起止时间)select v1... from data where time > ? and time < ? and device in ?
   #Q3--带值过滤的范围查询 select v1... from data where time > ? and time < ? and v1 > ? and device in ?
   #Q4--带时间过滤的聚合查询 select func(v1)... from data where device in ? and time > ? and time < ?
   #Q5--带值过滤的聚合查询 select func(v1)... from data where device in ? and value > ?
   #Q6--带值过滤和时间过滤的聚合查询 select func(v1)... from data where device in ? and value > ? and time > ? and time < ?
   #Q7--分组聚合查询(GROUP BY)(暂时只能生成有一个时间区间的语句)
   #Q8--最近点查询 select time, v1... where device = ? and time = max(time)
   #Q9--倒序范围查询(只限制起止时间)select v1... from data where time > ? and time < ? and device in ? order by time desc
   #Q10--倒序带值过滤的范围查询 select v1... from data where time > ? and time < ? and v1 > ? and device in ? order by time desc
   OPERATION_PROPORTION=72:1:1:1:1:1:1:1:1:1:1
   #OPERATION_PROPORTION=1:1:2:1:1:0:0:1:1:1:1
   #启动测试前是否清除旧数据(是否执行cleanup) 对IoTDB除外 因为IoTDB不支持删除Storage Group
   IS_DELETE_DATA=true
   #写入数据起始时间
   START_TIME=2018-9-20T00:00:00+08:00
   #对本次实验的备注,作为表名的一部分存入mysql中,注意不要有.等特殊字符
   REMARK=
   #选择IoTDB数据库的版本#
   VERSION=0.12.0
   ### client mode ###
   ### 写入测试相关参数
   #写入测试模式:
   #IoTDB:jdbc,sessionByRecord,sessionByRecords,sessionByTablet,session,session_pool
   INSERT_MODE=sessionByRecords
   #session_pool中核心线程数
   POOL_SIZE=50
   #客户端和设备是否绑定,若为false则客户端数可以大于设备数
   IS_CLIENT_BIND=true
   #客户端并发数,若客户端和设备绑定,则必须小于等于设备数
   CLIENT_NUMBER=20
   #存储组数,必须小于等于设备数
   GROUP_NUMBER=20
   #存储组前缀,如果GROUP_NUMBER=3,则默认生成3个如下存储组:root.group_0、root.group_1、root.group_2
   GROUP_NAME_PREFIX=group_
   #总设备数
   DEVICE_NUMBER=80000
   #每个设备的传感器数,总时间序列条数=DEVICE_NUMBER*SENSOR_NUMBER
   SENSOR_NUMBER=100
   #各sensor时间戳是否对齐
   IS_SENSOR_TS_ALIGNMENT=true
   #批写入数据行数,每行是某个设备所有传感器在某一时间戳的数据,每个batch写入数据点数=SENSOR_NUMBER*BATCH_SIZE
   BATCH_SIZE=1
   #Total number of operations that each client process
   LOOP=1000
   #实际进行写入的设备数占全部设备的比例, 取值范围(0, 1]
   REAL_INSERT_RATE=1.0
   # ratio of real writes into mysql
   MYSQL_REAL_INSERT_RATE=1.0
   #插入时个数据类型的比例,类似操作比例,注意使用英文冒号。
   #数据类型 KairosDB does not support float as data type
   #T1:T2:T3:T4:T5:T6
   #T1--BOOLEAN
   #T2--INT32
   #T3--INT64
   #T4--FLOAT
   #T5--DOUBLE
   #T6--TEXT
   INSERT_DATATYPE_PROPORTION=1:1:1:1:1:0
   #Supported encoding type for different types of data (only works for IoTDB):
   #BOOLEAN: PLAIN/RLE
   ENCODING_BOOLEAN=PLAIN
   #INT32: PLAIN/RLE/TS_2DIFF/REGULAR
   ENCODING_INT32=PLAIN
   #INT64: PLAIN/RLE/TS_2DIFF/REGULAR
   ENCODING_INT64=PLAIN
   #FLOAT: PLAIN/RLE/TS_2DIFF/GORILLA
   ENCODING_FLOAT=PLAIN
   #DOUBLE: PLAIN/RLE/TS_2DIFF/GORILLA
   ENCODING_DOUBLE=PLAIN
   #TEXT: PLAIN
   ENCODING_TEXT=PLAIN
   #device对应storage group的分配策略
   # hash 表示device通过hash的方式分配到存储组中
   # mod 表示device通过对存储组数取模的方式平均分配到存储组中(相邻编号device分散在不同存储组中)
   # div 表示device通过对存储组数取商的方式分配到存储组中(相邻编号device集中在相同存储组中)
   SG_STRATEGY=mod
   #时间戳精度(包含ms和us(微秒)两种,主要应用于时间戳,暂时只对IoTDB和InfluxDB有效)
   TIMESTAMP_PRECISION=ms
   #时间戳间隔(非真实速率)
   POINT_STEP=5000
   #编码方式 PLAIN GORILLA
   ENCODING=PLAIN
   #生成数据的小数位数
   NUMBER_OF_DECIMAL_DIGIT=2
   #压缩方式 UNCOMPRESSOR | SNAPPY (仅对IoTDB有效)
   COMPRESSOR=SNAPPY
   #是否写入前先创建schema
   CREATE_SCHEMA=false
   #数据库初始化等待时间ms
   INIT_WAIT_TIME=1000
   #IoTDB数据盘所在目录,可以是多目录,多目录间用逗号分割
   IOTDB_DATA_DIR=/data8/jh/iotdb-server-0.12.2/data/data
   #IoTDB写前日志所在目录
   IOTDB_WAL_DIR=/data8/jh/iotdb-server-0.12.2/data/wal
   #IoTDB的system文件夹所在目录
   #/var/lib/influxdb
   IOTDB_SYSTEM_DIR=/home/iotdb/data/system
   #相邻操作的执行间隔, 若当前操作耗时大于该间隔则马上执行下一个操作,否则等待 (OP_INTERVAL-实际执行时间) ms
   OP_INTERVAL=0
   #Benchmark自身是否使用集群模式(多Benchmark)
   USE_CLUSTER=false
   #当使用集群模式时起效,设定FIRST_INDEX后,device的起始为FIRST_INDEX*DEVICE_NUMBER
   FIRST_INDEX=0
   #批写入中是否写多个设备,需满足批写入语句条数和客户端数的乘积可以被设备数整除
   MUL_DEV_BATCH=false
   #是否为乱序插入模式
   IS_OVERFLOW=false
   #支持多种乱序模式:
   #0--按泊松分布的乱序模式
   #1--批插入乱序模式
   OVERFLOW_MODE=0
   #批插入乱序比例,该参数取值范围(0,1)
   OVERFLOW_RATIO=0.5
   #Poisson Distribution Related in overflow mode 0
   #the expectation and variance of Poisson Distribution based on basic model
   LAMBDA=2200.0
   #the max K of Poisson random variable based on basic model
   MAX_K=170000
   #是否在顺序数据中使用随机时间间隔,若这一参数为true时需要IS_OVERFLOW=false
   IS_RANDOM_TIMESTAMP_INTERVAL=false
   DATA_SEED=666
   LINE_RATIO=1
   SIN_RATIO=1
   SQUARE_RATIO=1
   RANDOM_RATIO=1
   CONSTANT_RATIO=1
   # workload buffer size
   WORKLOAD_BUFFER_SIZE=100
   # print test progress log interval in second
   LOG_PRINT_INTERVAL=5
   # quiet mode will mute some log output and computations
   IS_QUIET_MODE=true
   #######################################################
   ################### 查询测试相关参数######################
   #######################################################
   #每条查询语句中查询涉及的传感器数量
   QUERY_SENSOR_NUM=1
   #每条查询语句中查询涉及的设备数量
   QUERY_DEVICE_NUM=1
   #查询随机种子
   QUERY_SEED=151658
   #当聚合查询时,其中的聚合函数通过QUERY_AGGREGATE_FUN参数设置
   QUERY_AGGREGATE_FUN=count
   #时间过滤条件的时间起点变化步长, 若设为0则每个查询的时间过滤条件是一样的
   STEP_SIZE=1
   #带起止时间的查询中开始时间与结束时间之间的时间间隔,以及groupBy中的时间间隔(单位按照精度决定)
   QUERY_INTERVAL=250000
   #整个写操作的超时时间,即如果整个写操作在指定时间内没有返回,则终止此操作,单位毫秒
   WRITE_OPERATION_TIMEOUT_MS=120000
   #整个读操作的超时时间,即如果整个读操作在指定时间内没有返回,则终止此操作,单位毫秒
   READ_OPERATION_TIMEOUT_MS=300000
   #条件查询的参数
   QUERY_LOWER_LIMIT=-5
   #精确点查询中查询结果是否为空
   IS_EMPTY_PRECISE_POINT_QUERY=false
   #做groupBy查询中查询的分组大小,(单位为ms)
   TIME_UNIT=20000
   #查询语句中limit子句的模式
   #0--无limit子句
   #1--limit子句仅包含limit
   #2--limit子句仅包含slimit
   #3--limit子句含limit和slimit
   LIMIT_CLAUSE_MODE=0
   #带limit的条件查询中的最大输出条数
   QUERY_LIMIT_N=5
   #带limit的条件查询中的偏移量
   QUERY_LIMIT_OFFSET=5
   #最大输出序列数
   QUERY_SLIMIT_N=5
   #序列的偏移量
   QUERY_SLIMIT_OFFSET=5
   ################################################################
   ############### test data storage configurations ###############
   ################################################################
   # Use what to store test data, currently support:
   # None
   # IoTDB
   # MySQL
   # CSV
   TEST_DATA_PERSISTENCE=None
   # Whether output the result to an CSV file located in data folder.
   CSV_OUTPUT=true
   # MAX CSV FILE LINE IN ONE FILE
   CSV_MAX_LINE=10000000
   # Whether csv file is split
   CSV_FILE_SPLIT=true
   # DB所在服务器中data文件和log_stop_flag所在路径, log_stop_flag是一个文件,用于停止benchmark的监控模式
   DB_DATA_PATH=/home/iotdb-benchmark
   TEST_DATA_STORE_IP=127.0.0.1
   TEST_DATA_STORE_PORT=6667
   TEST_DATA_STORE_DB=test
   TEST_DATA_STORE_USER=root
   TEST_DATA_STORE_PW=root
   ###### import data from CSV file ######
   IMPORT_DATA_FILE_PATH=
   METADATA_FILE_PATH=
   BATCH_EXECUTE_COUNT=5000
   ###server mode###
   #系统性能检测网卡设备名
   NET_DEVICE=e
   #INTERVAL=n表示系统信息记录间隔为n+2秒
   INTERVAL=0
   ###generate sample data###
   #存储组名,必须包含根路径root
   STORAGE_GROUP_NAME=root.sgcc
   #设备及传感器名,与存储组名组成一个完整的路径
   TIMESERIES_NAME=wf03.wt01.temperature
   #时序类型
   TIMESERIES_TYPE=INT32
   #时序数据取值范围,用逗号隔开
   TIMESERIES_VALUE_SCOPE=13,16
   
   ###read file mode
   FILE_PATH=data/redd
   ### REDD, TDRIVE, GEOLIFE, NOAA
   DATA_SET=REDD
   REAL_QUERY_START_TIME=1303132929000
   REAL_QUERY_STOP_TIME=1303132946000
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [iotdb] HTHou closed issue #4014: [IoTDB-1724] Cluster is stuck using benchmark insertRecords interface

Posted by GitBox <gi...@apache.org>.
HTHou closed issue #4014:
URL: https://github.com/apache/iotdb/issues/4014


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [iotdb] github-actions[bot] commented on issue #4014: Cluster is stuck using benchmark insertRecords interface

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on issue #4014:
URL: https://github.com/apache/iotdb/issues/4014#issuecomment-924909489


   Hi, this is your first issue in IoTDB project. Thanks for your report. Welcome to join the community!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org