I have created an issue IOTDB-122 <https://issues.apache.org/jira/browse/IOTDB-122>, you may find it on https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-122?filter=allopenissues <https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-122?filter=allopenissues>.
> 在 2019年6月25日,下午9:17,江天 <[email protected]> 写道: > > Follow the preceding mail, > > People of interest are welcomed to join this thread, discuss about this new > feature and give advice. If no one has opposite opinion, I would like to set > off to develop this feature. > > Best regards, > > Tian Jiang > >> 在 2019年6月25日,下午8:41,江天 <[email protected]> 写道: >> >> Hi, >> >> As some have mentioned, sql parser(antlr) may consume about 40% of time in >> ingestion, especially when small sqls executed sent frequently. Luckily, >> IoTDB insertion sqls are currently all alike and simple, there are 4 most >> meaningful parts of such sqls: deviceId, measurements, values and time. For >> such a simple structure, using tools like antlr may be just too heavy. >> >> Intuitively, PreparedStatement in Standard JDBC interface can be just used >> for reliving parsing overhead when sqls are similar. I will describe how >> PreparedStatement works as follow (this is still left to be implemented): >> >> 1. The user wants to create a prepared insert statement and called >> `connection.prepareStatement(“Insert”)`; >> 2. The connection matches the parameter string with some templates, finds >> out it is an insertion and returns an IoTDBPreparedInsertStatement pStmt. >> 3. The user calls `pStmt.setDevice(“root.device1”); pStmt.setTime(100); >> pStmt.setMeasurements(measurementArray); pStmt.setValues(valueArray);` to >> set parameters for next insertion. >> 4. The user calls `pStmt.execute()` to execute an insertion. >> 5. The PreparedInsertStatement creates a TSInsertionReq, puts deviceId, >> measurements, values and time into this request and sends this request to >> the server. >> 6. The server receives the request, extracts parameters from the request and >> executes an insertion directly through database engine and return a >> TSInsertionResp to the user. >
