IoTDB official website:https://iotdb.apache.org/
Code library:https://github.com/apache/iotdb
Code library for go language: https://github.com/apache/iotdb-client-go
Library for resources (project's documents, compiler, etc): https://github.com/apache/iotdb-bin-resources
Get started quickly:http://iotdb.apache.org/UserGuide/Master/QuickStart/QuickStart.html
Jira Task Management:https://issues.apache.org/jira/projects/IOTDB/issues
Wiki Document Management:https://cwiki.apache.org/confluence/display/IOTDB/Home\
Mailing list: https://lists.apache.org/list.html?dev@iotdb.apache.org
Everyday build: https://ci-builds.apache.org/job/IoTDB/job/IoTDB-Pipe/job/master/
The mailing list is where the Apache project conducts technical discussions and communication with users. Follow the mailing list to receive mail.
Mailing list address:dev@iotdb.apache.org
Follow method: Send an email to dev-subscribe@iotdb.apache.org with the email you want to receive the email, the subject content is not limited, after receiving the reply, send a confirmation email to the confirmation address again (the confirmation address is longer, it is recommended gmail mailbox).
Other mailing list:
All features or bugs that you want IoTDB to do can be raised on Jira:https://issues.apache.org/jira/projects/IOTDB/issues
You can choose issue types: bug, improvement, new feature, etc. New issues will be automatically synchronized to the mailing list (notifications@), and subsequent discussions can be left on jira or on the mailing list. When the issue is resolved, close the issue.
Joining the mailing list for the first time can introduce youself briefly. (Hi, I'm xxx ...)
Before developing a new feature, you can send an e-mail to declare the task you want to do.(Hi,I'm working on issue IOTDB-XXX,My plan is ...)
The content of all IoTDB official websites is in the docs of the project root directory:
Correspondence between versions and branches on the official website:
Precautions:
We use the Spotless plugin together with google-java-format to format our Java code. You can configure your IDE to automatically apply formatting on saving with these steps(Take idea as an example):
.*\.java
. Otherwise you will get unintended reformatting in other files you edit.import org.apache.iotdb.* <blank line> import all other imports <blank line> import java.* <blank line> import static all other imports
mvn spotless:check
to check your codes manually, and use mvn spotless:apply
to format your codes.We use the maven-checkstyle-plugin to make Java codes obey a consistent ruleset defined in checkstyle.xml under the project root.
You can reference the code style rules in the file. After development, you can use mvn validate
to check whether your codes satisfy the style rules.
Besides, when you develop in an IDE, some default code style configurations may be conflict with those rules.
In IDEA, you can follow these steps to change those inconsistent style formatting rules:
You can go to jira to pick up the existing issue or create your own issue and get it. The comment says that I can do this issue.
mvn spotless:check
to check the code style and use mvn spotless:apply
to correct the code styleIt is recommended to use Intellij idea。mvn clean package -DskipTests
Mark antlr/target/generated-sources/antlr4
andthrift/target/generated-sources/thrift
as Source Root
。
If it is a version before eclipse 2019,users need to be executed in the root directory of IoTDB mvn eclipse:eclipse -DskipTests
。
import -> General -> Existing Projects into Workspace -> Select IoTDB root directory
If the version after eclipse 2019
import -> Maven -> Existing Maven Projects
Server main function:server/src/main/java/org/apache/iotdb/db/service/IoTDB
, can be started in debug mode.
Cli:cli/src/main/java/org/apache/iotdb/cli/
,Use Cli for linux and WinCli for windows, you can start directly with the parameter “-h 127.0.0.1 -p 6667 -u root -pw root
”
Server rpc implementation (mainly used for cli and server communication, generally start interruption point here):server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl
all jdbc statements:executeStatement(TSExecuteStatementReq req)
jdbc query:executeQueryStatement(TSExecuteStatementReq req)
native Write interface:insertRecord(TSInsertRecordReq req)
insertTablet(TSInsertTabletReq req)
Storage engineorg.apache.iotdb.db.engine.StorageEngine
Query engine org.apache.iotdb.db.qp.QueryProcessor
I could not download thrift-* tools, like Could not get content org.apache.maven.wagon.TransferFailedException: Transfer failed for https://github.com/apache/iotdb-bin-resources/blob/main/compile-tools/thrift-0.14-ubuntu
It is due to some network problems (especially in China), you can:
Download the file from the URL manually;
Put the file to thrift/target/tools/
Re-run maven command like mvn compile
The initial committer of IoTDB is using this Java profiler to debug. Welcome all IoTDB contributors to use it.