New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[IOTDB-23] Restart state monitor module #1725
Conversation
…nto state_monitor
…nto state_monitor
…nto state_monitor
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think some logic should refined:
We need to consider the case that the status of enableMonitor
can be switched while IoTDB instance does not restart.
So, the recovery()
and init()
(create timeseries) should be called by StatMonitor itself.
server/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/apache/iotdb/db/engine/flush/FlushManager.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think a more clear user guide is necessary for this module.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I pulled this pr and tried to use the monitor module on my local machine.
Looks good.
Plz fix the conflict. |
Fixed. |
Data MonitoringThis module is for providing some statistics info about the writing operations:
Enable/disable the moduleUsers can choose to enable or disable the feature of data statistics monitoring (set the Statistics Data StoringBy default, the statistics data is only saved in memory and can be accessed using Jconsole. The data can also be written as some time series on disk. To enable it, set
Writing Data MonitorAt present, the monitor system can be divided into two modules: The system sets the collection granularity of the monitoring module to update the statistical information once one data file is flushed into the disk, so the data accuracy may be different from the actual situation. To obtain accurate information, Please call the |
Kudos, SonarCloud Quality Gate passed! 0 Bugs No Coverage information |
You can find the detail in [1].
[1] https://lists.apache.org/list.html?dev@iotdb.apache.org:lte=1M:Restart
Currently, the status monitor module of iotdb is abandoned and not maintained now. It's time for us to restart this module.
Before, it was designed including two child modules: 1. the writing data status monitor and 2. the file size monitor.
Actually, many parts of origin design are redundant and not meaningful for users. Therefore, I want to just keep TOTAL_POINTS here and remove others. And i did not come up with some good ideas about what needs to be added to this monitor while writing data. Welcome to any ideas here!
I want to just remove it from iotdb.
I used the benchmark to do the performance test, using the default IoTDB configuration while 8G machine memoery , the benchmark configuration is:
----------------------Main Configurations----------------------
DB_SWITCH: IoTDB
OPERATION_PROPORTION: 1:0:0:0:0:0:0:0:0
ENABLE_THRIFT_COMPRESSION: false
INSERT_DATATYPE_PROPORTION: 1:1:1:1:1:1
ENCODING(BOOLEAN/INT32/INT64/FLOAT/DOUBLE/TEXT): PLAIN/PLAIN/PLAIN/PLAIN/PLAIN/PLAIN
IS_CLIENT_BIND: true
CLIENT_NUMBER: 20
GROUP_NUMBER: 10
DEVICE_NUMBER: 10
SENSOR_NUMBER: 100
BATCH_SIZE: 100
LOOP: 100000
POINT_STEP: 5000
QUERY_INTERVAL: 250000
IS_OVERFLOW: false
OVERFLOW_MODE: 0
OVERFLOW_RATIO: 0.5
The result is:
| Close monitor | Open monitor without writing timeseries | Open Monitor with writing time series |
| 1048.83 ms | 1049.40ms | 1064.90ms |
| | - 0.05% | -3% |