[ 
https://issues.apache.org/jira/browse/IOTDB-1730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bo Zhang reassigned IOTDB-1730:
-------------------------------

    Assignee: Bo Zhang

> client-cpp, enhance session::insertTablet()  etc's performance
> --------------------------------------------------------------
>
>                 Key: IOTDB-1730
>                 URL: https://issues.apache.org/jira/browse/IOTDB-1730
>             Project: Apache IoTDB
>          Issue Type: Improvement
>          Components: Client/Others
>            Reporter: Bo Zhang
>            Assignee: Bo Zhang
>            Priority: Major
>             Fix For: 0.13.0
>
>
> 1) session::insertTablet() and session::insertTablets() are main API  used by 
> customer.
> 2)  custeomer's client oftern inserts 5000~50000 rows per 1 tablet, 
> 3)  *Call stack example:* session::insertTablet()  => Session::sortTablet() 
> => Session::*sortIndexByTimestamp*()
> so these functions' efficiency is sensitive.  But current 
> *sortIndexByTimestamp*() use insert sort Algorithm, which causes 100~3000 
> times efficiency lossing.
>  
> On the other hande,  Session::insertTablets() has another useless code that 
> reduces performance.
> {color:#de350b}void Session::insertTablets(map<string, Tablet *> &tablets, 
> bool sorted) {{color}
> {color:#de350b} TSInsertTabletsReq request;{color}
> {color:#de350b} request.__set_sessionId(sessionId);{color}
> {color:#de350b}for (const auto &item: tablets) {{color}
> {color:#de350b} if (sorted) {{color}
> {color:#de350b} if (!checkSorted(*(item.second))) {{color}
> {color:#de350b} throw BatchExecutionException("Times in Tablet are not in 
> ascending order");{color}
> {color:#de350b} }{color}
> {color:#de350b} } else {{color}
>  {color:#de350b}sortTablet(*(item.second)); {color}   {color:#4c9aff}//here, 
> it is wastful to let map search again.{color}
>  {color:#de350b}}{color}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to