[jira] [Created] (IOTDB-113) Use intern string to reduce memory usage

2019-06-06 Thread Jialin Qiao (JIRA)
Jialin Qiao created IOTDB-113:
-

 Summary: Use intern string to reduce memory usage
 Key: IOTDB-113
 URL: https://issues.apache.org/jira/browse/IOTDB-113
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


Each time series is represented by a device id and a measurement name, which 
are two strings. The memory usage may be large when there are too many time 
series.

One possible improvement is using String.intern(), which is designed for 
reducing memory usage and improve performance.

A blog about String.intern() is here (in Chinese)
https://blog.csdn.net/SEU_Calvin/article/details/52291082



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IOTDB-97) Try compression in RPC

2019-05-24 Thread Jialin Qiao (JIRA)
Jialin Qiao created IOTDB-97:


 Summary: Try compression in RPC
 Key: IOTDB-97
 URL: https://issues.apache.org/jira/browse/IOTDB-97
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


When executing a batch insertion in JDBC with many insert statements (e.g., 
>1000), the message to be transferred will be very large. The write throughput 
may be improved by compressing the message transferred between client and 
server.

Currently, thrift is used in RPC. The protocol we use is TBinaryProtocol which 
does not compact the data that transferred. There are two ways to improve:

(1) Use TCompactProtocol instead of TBinaryProtocol. There are two classes need 
to be modified: JDBCService and IoTDBConnection. This protocol will compress 
the data in each RPC, I'm not sure whether this protocol is better when the 
size of transferred data is small. 

(2) We can just compress the data in executeBatch when the batch_size reaches a 
threshold.  Add a compressed string that stores the SQLs in IoTDBStatement and 
use a flag to determine whether this field is used.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IOTDB-179) Add create matadata interfaces to Session

2019-08-26 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-179:
-

 Summary: Add create matadata interfaces to Session
 Key: IOTDB-179
 URL: https://issues.apache.org/jira/browse/IOTDB-179
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao


Only insertBatch() is supported in Session, we need more efficient interfaces. 

The first are "set storage group to XXX" and "create timeseries..."



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-181) Remove "first_value" and "last_value" in TsDigest

2019-08-26 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-181:
-

 Summary: Remove "first_value" and "last_value" in TsDigest
 Key: IOTDB-181
 URL: https://issues.apache.org/jira/browse/IOTDB-181
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


In TsDigest, we have five statistics: min_value, max_value, sum_value, 
first_value, last_value.

When filtering page or chunk, we use min_value and max_value for a filter like 
"s1>10" or "s1<20".

The sum value can be used in aggregation query "select sum(s1) from root...".

However, it is difficult for me to come up with a scenario that uses 
"first_value" and "last_value" to filter data, and they are never used at all...

So why not remove them?



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-180) Get rid of JSON format in "show timeseries"

2019-08-26 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-180:
-

 Summary: Get rid of JSON format in "show timeseries"
 Key: IOTDB-180
 URL: https://issues.apache.org/jira/browse/IOTDB-180
 Project: Apache IoTDB
  Issue Type: Wish
Reporter: Jialin Qiao
 Attachments: image-2019-08-27-09-56-20-654.png, 
image-2019-08-27-09-56-28-577.png

Currently, "show timeseries" prints result in JSON format, which is not 
friendly compared to "show timeseries root" in table format.

!image-2019-08-27-09-56-20-654.png|width=463,height=538!

!image-2019-08-27-09-56-28-577.png|width=694,height=458!

Intuitively, I would expect that "show timeseries" works as "show timeseries 
root".

Therefore, when users input a "show timeseries", I suggest that we treat it as 
"show timeseries root" and print results in table format.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-193) Create metadata automatically in the insertion

2019-09-02 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-193:
-

 Summary: Create metadata automatically in the insertion
 Key: IOTDB-193
 URL: https://issues.apache.org/jira/browse/IOTDB-193
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao


Setting storage group and creating time series can be troublesome when using 
IoTDB in applications.

Let's look at the typical scenes:

The devices send messages to Kafka. Each message includes: factoryId, deviceId, 
timestamp, s1_value, s2_value, s3_value. 

The consumer of Kafka needs to consume the messages and organize the data into 
an insert statement: "insert into root.factoryId.deviceId(time, s1, s2, s3) 
values(timestamp, s1_value, s2_value, s3_value)"

Before inserting the data into IoTDB, the consumer needs to judge whether the 
storage group and time series are created before, which is not convenient. 
Typically, there are 3 ways to do that:
 # Caching the storage group and timeseries created before in the consumer
 # Query from IoTDB whether a storage group and timeseries exists
 # Directly create metadata regardless of whether created before

Could IoTDB support creating metadata (at least time series) automatically when 
receiving an insertion?

 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-197) JXM connection failure

2019-09-03 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-197:
-

 Summary: JXM connection failure
 Key: IOTDB-197
 URL: https://issues.apache.org/jira/browse/IOTDB-197
 Project: Apache IoTDB
  Issue Type: Bug
Reporter: Jialin Qiao
 Attachments: image-2019-09-04-10-40-22-547.png

When I try to use jvisualvm to connect IoTDB, the connection cannot be 
established. 

A potential solution is to set the -Djava.rmi.server.hostname=ip. We can 
dynamically get the ip address and set it to IOTDB_JMX_OPTS in iotdb-env.sh.

!image-2019-09-04-10-40-22-547.png!



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-188) Delete Storage Group

2019-08-29 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-188:
-

 Summary: Delete Storage Group
 Key: IOTDB-188
 URL: https://issues.apache.org/jira/browse/IOTDB-188
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao


add “delete storage group xxx” interface, which delete all data and metadata of 
one storage group



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-173) Add rpc interface to insert data

2019-08-22 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-173:
-

 Summary: Add rpc interface to insert data
 Key: IOTDB-173
 URL: https://issues.apache.org/jira/browse/IOTDB-173
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao
 Attachments: image-2019-08-23-12-20-32-821.png

I used Jprofiler to profile the executBatch jdbc interface when inserting data, 
and found 70% of the time cost is parsing SQL by Antlr3. 

 !image-2019-08-23-12-20-32-821.png! 

To accelerate the insertion speed, a new interface that bypasses SQL is needed.
One way is to add an RPC interface for batch insert, and I am working on that.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Closed] (IOTDB-173) Add rpc interface to insert data

2019-08-26 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-173.
-

> Add rpc interface to insert data
> 
>
> Key: IOTDB-173
> URL: https://issues.apache.org/jira/browse/IOTDB-173
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
> Attachments: image-2019-08-23-12-20-32-821.png
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> I used Jprofiler to profile the executBatch jdbc interface when inserting 
> data, and found 70% of the time cost is parsing SQL by Antlr3. 
>  !image-2019-08-23-12-20-32-821.png! 
> To accelerate the insertion speed, a new interface that bypasses SQL is 
> needed.
> One way is to add an RPC interface for batch insert, and I am working on that.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-191) Enrich Session interfaces

2019-09-02 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-191:
-

 Summary: Enrich Session interfaces
 Key: IOTDB-191
 URL: https://issues.apache.org/jira/browse/IOTDB-191
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao


The module "Session" is an RPC interface for users, which is more efficient 
than JDBC.

Currently, it only has 3 interfaces: (1) ser storage group (2) create time 
series (3) insert batch. 

Other interfaces such as delete time series, the query could be added.

 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Closed] (IOTDB-179) Add create matadata interfaces to Session

2019-08-27 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-179.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Add create matadata interfaces to Session
> -
>
> Key: IOTDB-179
> URL: https://issues.apache.org/jira/browse/IOTDB-179
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Only insertBatch() is supported in Session, we need more efficient 
> interfaces. 
> The first are "set storage group to XXX" and "create timeseries..."



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-216) Release of 0.8.1

2019-09-16 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-216:
-

 Summary: Release of 0.8.1
 Key: IOTDB-216
 URL: https://issues.apache.org/jira/browse/IOTDB-216
 Project: Apache IoTDB
  Issue Type: Task
Reporter: Jialin Qiao


This is a bug-fix version of 0.8.0

 

 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-217) A new predicate of time

2019-09-16 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-217:
-

 Summary: A new predicate of time
 Key: IOTDB-217
 URL: https://issues.apache.org/jira/browse/IOTDB-217
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao


I have encountered an issue that our SQL cannot support well. 

The scenario is: I want to get the data between 9:00am to 12:00am in each day 
last week.

Could we add a new sql to do that? The sql maybe like this:

 

select s0 from root.d0 where time >= now()-1week and time <= now() groupby 
time(1d) innerInterval(9h, 12h)



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-218) Using exception instead of returning true/false

2019-09-17 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-218:
-

 Summary: Using exception instead of returning true/false
 Key: IOTDB-218
 URL: https://issues.apache.org/jira/browse/IOTDB-218
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


"boolean insert(InsertPlan insertPlan) throws ProcessorException;"

For example, this is the insert interface in IQueryProcessExecutor, we should 
use exception instead of returning true or false because exception could return 
a message to the client. Otherwise, the client only know an "Execute statement 
error", which is not friendly at all.

 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Closed] (IOTDB-97) Try compression in RPC

2019-09-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-97.

Fix Version/s: 0.9.0
   Resolution: Fixed

> Try compression in RPC
> --
>
> Key: IOTDB-97
> URL: https://issues.apache.org/jira/browse/IOTDB-97
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Minor
> Fix For: 0.9.0
>
>
> When executing a batch insertion in JDBC with many insert statements (e.g., 
> >1000), the message to be transferred will be very large. The write 
> throughput may be improved by compressing the message transferred between 
> client and server.
> Currently, thrift is used in RPC. The protocol we use is TBinaryProtocol 
> which does not compact the data that transferred. There are two ways to 
> improve:
> (1) Use TCompactProtocol instead of TBinaryProtocol. There are two classes 
> need to be modified: JDBCService and IoTDBConnection. This protocol will 
> compress the data in each RPC, I'm not sure whether this protocol is better 
> when the size of transferred data is small. 
> (2) We can just compress the data in executeBatch when the batch_size reaches 
> a threshold.  Add a compressed string that stores the SQLs in IoTDBStatement 
> and use a flag to determine whether this field is used.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-205) Support retention policy

2019-09-09 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-205:
-

 Summary: Support retention policy
 Key: IOTDB-205
 URL: https://issues.apache.org/jira/browse/IOTDB-205
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao


Many applications use TSDBs to just store recent data for a period of time. For 
example, 10 days, and older data will be deleted automatically. Influxdb also 
supports this function called retention policy.

It would be great that we also support this.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-203) A new result set format

2019-09-06 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-203:
-

 Summary: A new result set format
 Key: IOTDB-203
 URL: https://issues.apache.org/jira/browse/IOTDB-203
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao


When executing a SQL like "select d1.s1, d2.s1 from root.sg1", the default 
result set format in IoTDB is 

"time, root.sg1.d1.s1, root.sg1.d2.s1"

1 , 1, 1

2, 2, 2

However, some users want to get another format, The results could be grouped by 
device, then sorted by time.

"time, deviceId, s1".

1, root.sg1.d1, 1

2, root.sg1.d2, 2

 

This can be done in the client, but it would be better if we support this 
format in the server.

 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Created] (IOTDB-220) hot-load configuration file

2019-09-17 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-220:
-

 Summary: hot-load configuration file
 Key: IOTDB-220
 URL: https://issues.apache.org/jira/browse/IOTDB-220
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao


it's a practical function to hot-load the configuration file without restarting 
IoTDB.



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


[jira] [Created] (IOTDB-228) Catch RuntimeException in interting to memtable

2019-09-18 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-228:
-

 Summary: Catch RuntimeException in interting to memtable
 Key: IOTDB-228
 URL: https://issues.apache.org/jira/browse/IOTDB-228
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


When parsing data values into different types in the inserting process, 
RuntimeException often occurs and will terminate the connection. It's better to 
catch this and return message to users.



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


[jira] [Created] (IOTDB-233) Keep MetadataPlan clear

2019-09-21 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-233:
-

 Summary: Keep MetadataPlan clear
 Key: IOTDB-233
 URL: https://issues.apache.org/jira/browse/IOTDB-233
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


The metadata operator and metadataPlan have both a path and a deletePathList, 
which is confusing. It seems that they are used in different scenarios: 

 private Path path;  (for set storage group, create timeseries)
 private List deletePathList;  (for delete timeseries)

 

It's better to make it clear. Maybe by using more types of physical plans.



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


[jira] [Closed] (IOTDB-228) Catch RuntimeException in interting to memtable

2019-09-21 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-228.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Catch RuntimeException in interting to memtable
> ---
>
> Key: IOTDB-228
> URL: https://issues.apache.org/jira/browse/IOTDB-228
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
> Fix For: 0.9.0
>
>
> When parsing data values into different types in the inserting process, 
> RuntimeException often occurs and will terminate the connection. It's better 
> to catch this and return message to users.



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


[jira] [Created] (IOTDB-225) Support Druid connection pool

2019-09-18 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-225:
-

 Summary: Support Druid connection pool
 Key: IOTDB-225
 URL: https://issues.apache.org/jira/browse/IOTDB-225
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao






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


[jira] [Closed] (IOTDB-278) remove tsfile-format.properties

2019-10-30 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-278.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> remove tsfile-format.properties
> ---
>
> Key: IOTDB-278
> URL: https://issues.apache.org/jira/browse/IOTDB-278
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> # merge tsfile-format.properties to iotdb-engine.properties
>  # add configuration class for tsfile, let users set configurations through 
> API
>  



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


[jira] [Closed] (IOTDB-273) Parallel Recovery

2019-11-04 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-273.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Parallel Recovery
> -
>
> Key: IOTDB-273
> URL: https://issues.apache.org/jira/browse/IOTDB-273
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When restarting IoTDB, we recover each storage group one by one, which costs 
> 20min for 8GB WAL. 
> The restart can speed up by parallelly recovery storage groups.



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


[jira] [Created] (IOTDB-284) Do not write empty page

2019-10-30 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-284:
-

 Summary: Do not write empty page
 Key: IOTDB-284
 URL: https://issues.apache.org/jira/browse/IOTDB-284
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


SET STORAGE GROUP TO root.turbine;

CREATE TIMESERIES root.turbine.d2.s0 WITH DATATYPE=INT32, ENCODING=RLE;

insert into root.turbine.d2(timestamp,s0) values(2,25.3);

flush 

 

When receiving the insert statement, IoTDB will create a ChunkWriterImpl, but 
the value will not be inserted because of type error.

The empty ChunkWriterImpl will be written when meeting the 'flush' command. 
Then, the server will log an error:

 

19:33:24.667 [pool-6-IoTDB-Flush-SubTask-ServerServiceImpl-thread-2] ERROR 
org.apache.iotdb.tsfile.write.chunk.ChunkBuffer - Write page error, 
[s0,INT32,RLE,{},UNCOMPRESSED], minTime:-9223372036854775808, maxTime:0

 

We can check the data type before creating the ChunkWriterImpl to avoid write 
empty ChunkWriterImpl.



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


[jira] [Closed] (IOTDB-181) Remove "first_value" and "last_value" in TsDigest

2019-10-31 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-181.
-
Resolution: Later

> Remove "first_value" and "last_value" in TsDigest
> -
>
> Key: IOTDB-181
> URL: https://issues.apache.org/jira/browse/IOTDB-181
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Minor
>
> In TsDigest, we have five statistics: min_value, max_value, sum_value, 
> first_value, last_value.
> When filtering page or chunk, we use min_value and max_value for a filter 
> like "s1>10" or "s1<20".
> The sum value can be used in aggregation query "select sum(s1) from root...".
> However, it is difficult for me to come up with a scenario that uses 
> "first_value" and "last_value" to filter data, and they are never used at 
> all...
> So why not remove them?



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


[jira] [Closed] (IOTDB-113) Use intern string to reduce memory usage

2019-10-31 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-113.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Use intern string to reduce memory usage
> 
>
> Key: IOTDB-113
> URL: https://issues.apache.org/jira/browse/IOTDB-113
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Minor
> Fix For: 0.9.0
>
>
> Each time series is represented by a device id and a measurement name, which 
> are two strings. The memory usage may be large when there are too many time 
> series.
> One possible improvement is using String.intern(), which is designed for 
> reducing memory usage and improve performance.
> A blog about String.intern() is here (in Chinese)
> https://blog.csdn.net/SEU_Calvin/article/details/52291082



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


[jira] [Created] (IOTDB-303) Lost users information when upgrading 0.8.x to 0.9.0

2019-11-13 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-303:
-

 Summary: Lost users information when upgrading 0.8.x to 0.9.0
 Key: IOTDB-303
 URL: https://issues.apache.org/jira/browse/IOTDB-303
 Project: Apache IoTDB
  Issue Type: Bug
Reporter: Jialin Qiao


If creating other users in IoTDB, the upgrade from 0.8.x to 0.9.0 will lost 
users except "root".

 

In other words, the data/system/user/*.profile is not compatible between 0.8.x 
and 0.9.0. Currently, we remove all *.profile and create a new root user with 
password root. 



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


[jira] [Created] (IOTDB-298) Refactor the "last" and "first" aggregators

2019-11-08 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-298:
-

 Summary: Refactor the "last" and "first" aggregators
 Key: IOTDB-298
 URL: https://issues.apache.org/jira/browse/IOTDB-298
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


We have two aggregators:

last -> return the value of the last data point

max_time -> return the time of the last data point

However, we do not have an aggregator that returns the last time-value pair. 
This is very antihuman in a time-series database :(:(:(

I suggest changing the "last" aggregator to return the last time-value pair and 
removing the max_time aggregator.

Similar to the "first" aggregator.

 

One thing we need to pay attention:

for example,  select last(s1), last(s2) from root.sg1.d1  . If the two series 
have different last time, how we organize the ResultSet? Maybe each line 
represents a last point. List this:

time last(s1), last(s2)

1,    1,   null

2,   null,   1

 

Or we could forbid using the last aggregator on two series at the same time.



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


[jira] [Created] (IOTDB-299) Merge ChunkBuffer to ChunkWriterImpl

2019-11-10 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-299:
-

 Summary: Merge ChunkBuffer to ChunkWriterImpl
 Key: IOTDB-299
 URL: https://issues.apache.org/jira/browse/IOTDB-299
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


ChunkBuffer has many fields and functions, which makes it not like a buffer but 
like a writer.

Merge it into ChunkWriterImpl will make the write process clearer.



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


[jira] [Created] (IOTDB-342) Merge BytesUtils with ReadWriteIOUtils

2019-12-04 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-342:
-

 Summary: Merge BytesUtils with ReadWriteIOUtils
 Key: IOTDB-342
 URL: https://issues.apache.org/jira/browse/IOTDB-342
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


In the TsFile module, there are BytesUtils and ReadWriteIOUtils for serializing 
and deserializing objects. It's better to merge them and leave one. 



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


[jira] [Created] (IOTDB-334) Move limit parser to Server side

2019-12-02 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-334:
-

 Summary: Move limit parser to Server side
 Key: IOTDB-334
 URL: https://issues.apache.org/jira/browse/IOTDB-334
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


In our query process, SQL will be analyzed by Antlr in the server-side, then 
generated to a logical plan. 

However, query SQL is also parsed in the client (IoTDBQueryResultSet) by the 
following statement to get the value of slimit and limit.

String[] splited = sql.toUpperCase().split("\\s+");

This causes extra parsing for a query, which will slow down the query speed.

I recommend moving the limit parsing to the server-side.



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


[jira] [Closed] (IOTDB-338) Meet error when disconnecting with the server

2019-12-10 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-338.
-
Resolution: Fixed

[https://github.com/apache/incubator-iotdb/pull/637]

> Meet error when disconnecting with the server
> -
>
> Key: IOTDB-338
> URL: https://issues.apache.org/jira/browse/IOTDB-338
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: Jialin Qiao
>Priority: Major
>
> The client-thread in server meet error when the client disconnect with server:
>  
> {code:java}
> //代码占位符
> 09:09:42.140 [pool-2-IoTDB-JDBC-Client-thread-1] ERROR 
> org.apache.thrift.server.TThreadPoolServer - Thrift error occurred during 
> processing of message.09:09:42.140 [pool-2-IoTDB-JDBC-Client-thread-1] ERROR 
> org.apache.thrift.server.TThreadPoolServer - Thrift error occurred during 
> processing of message.org.apache.thrift.transport.TTransportException: null 
> at 
> org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
>  at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) at 
> org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:425) 
> at 
> org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:321) 
> at 
> org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225)
>  at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27) at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  at java.lang.Thread.run(Thread.java:745)
> {code}
>  



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


[jira] [Closed] (IOTDB-357) NullPointerException in ActiveTimeSeriesCounter

2019-12-10 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-357.
-
Resolution: Fixed

> NullPointerException in ActiveTimeSeriesCounter
> ---
>
> Key: IOTDB-357
> URL: https://issues.apache.org/jira/browse/IOTDB-357
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Start a empty IoTDB, execute 3 sql:
> {code:java}
> SET STORAGE GROUP TO root.turbine;
> CREATE TIMESERIES root.turbine.d2.s0 WITH DATATYPE=DOUBLE, ENCODING=GORILLA;
> insert into root.turbine.d2(timestamp,s0) values(2,25.3);{code}
> Kill the server and restart, then you will see:
> {code:java}
> 11:37:45.157 [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Storage group 
> root.turbine- registers active time series root.turbine.d2.s0 
> failed11:37:45.157 [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Storage group 
> root.turbine- registers active time series root.turbine.d2.s0 
> failedjava.lang.NullPointerException: null at 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter.offer(ActiveTimeSeriesCounter.java:65)
>  at 
> org.apache.iotdb.db.engine.flush.MemTableFlushTask.syncFlushMemTable(MemTableFlushTask.java:87)
>  at 
> org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.redoLogs(TsFileRecoverPerformer.java:213)
>  at 
> org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:143)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverSeqFiles(StorageGroupProcessor.java:294)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:223)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.(StorageGroupProcessor.java:210)
>  at 
> org.apache.iotdb.db.engine.StorageEngine.lambda$new$0(StorageEngine.java:119) 
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  at java.lang.Thread.run(Thread.java:745)11:37:45.158 
> [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Update 
> root.turbine- active ratio failedjava.lang.NullPointerException: null at 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter.updateActiveRatio(ActiveTimeSeriesCounter.java:79)
>  at 
> org.apache.iotdb.db.engine.flush.MemTableFlushTask.syncFlushMemTable(MemTableFlushTask.java:91)
>  at 
> org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.redoLogs(TsFileRecoverPerformer.java:213)
>  at 
> org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:143)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverSeqFiles(StorageGroupProcessor.java:294)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:223)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.(StorageGroupProcessor.java:210)
>  at 
> org.apache.iotdb.db.engine.StorageEngine.lambda$new$0(StorageEngine.java:119) 
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  at java.lang.Thread.run(Thread.java:745)
> {code}
>  
>  
>  
>  
>  
>  



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


[jira] [Created] (IOTDB-338) Meet error when disconnecting with the server

2019-12-03 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-338:
-

 Summary: Meet error when disconnecting with the server
 Key: IOTDB-338
 URL: https://issues.apache.org/jira/browse/IOTDB-338
 Project: Apache IoTDB
  Issue Type: Bug
Affects Versions: 0.9.0
Reporter: Jialin Qiao


The client-thread in server meet error when the client disconnect with server:

 
{code:java}
//代码占位符
09:09:42.140 [pool-2-IoTDB-JDBC-Client-thread-1] ERROR 
org.apache.thrift.server.TThreadPoolServer - Thrift error occurred during 
processing of message.09:09:42.140 [pool-2-IoTDB-JDBC-Client-thread-1] ERROR 
org.apache.thrift.server.TThreadPoolServer - Thrift error occurred during 
processing of message.org.apache.thrift.transport.TTransportException: null at 
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
 at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:425) at 
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:321) at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225)
 at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27) at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
 at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745)
{code}
 



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


[jira] [Closed] (IOTDB-218) Using exception instead of returning true/false

2019-12-09 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-218.
-
Resolution: Fixed

> Using exception instead of returning true/false
> ---
>
> Key: IOTDB-218
> URL: https://issues.apache.org/jira/browse/IOTDB-218
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: 0.8.0, pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> "boolean insert(InsertPlan insertPlan) throws ProcessorException;"
> For example, this is the insert interface in IQueryProcessExecutor, we should 
> use exception instead of returning true or false because exception could 
> return a message to the client. Otherwise, the client only know an "Execute 
> statement error", which is not friendly at all.
>  



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


[jira] [Closed] (IOTDB-220) hot-load configuration file

2019-12-09 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-220.
-
Resolution: Fixed

> hot-load configuration file
> ---
>
> Key: IOTDB-220
> URL: https://issues.apache.org/jira/browse/IOTDB-220
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Jialin Qiao
>Priority: Minor
>  Labels: easy-fix, pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> it's a practical function to hot-load the configuration file without 
> restarting IoTDB.



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


[jira] [Created] (IOTDB-274) Refactor MManager

2019-10-28 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-274:
-

 Summary: Refactor  MManager
 Key: IOTDB-274
 URL: https://issues.apache.org/jira/browse/IOTDB-274
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


The code of MManager needs to be refactored.



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


[jira] [Created] (IOTDB-275) Separate IoTDB JDK configuration with server

2019-10-28 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-275:
-

 Summary: Separate IoTDB JDK configuration with server
 Key: IOTDB-275
 URL: https://issues.apache.org/jira/browse/IOTDB-275
 Project: Apache IoTDB
  Issue Type: New Feature
Reporter: Jialin Qiao


We want to let IoTDB to use an independent JDK instead of that in system 
environment.



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


[jira] [Created] (IOTDB-261) Special characters in Session

2019-10-20 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-261:
-

 Summary: Special characters in Session
 Key: IOTDB-261
 URL: https://issues.apache.org/jira/browse/IOTDB-261
 Project: Apache IoTDB
  Issue Type: Bug
Affects Versions: 0.9.0-SNAPSHOT
Reporter: Jialin Qiao


 

When using Session to set storage group or create time series, special 
character in the path will cause an error in mlog.txt, which impacts the 
restart and recover of IoTDB.

 

session.setStorageGroup("root.tur_\n\t_bine");
session.createTimeseries("root.turbine.d1.s_\n\t_1", TSDataType.INT64, 
TSEncoding.RLE, CompressionType.SNAPPY);

 

It's better to reject these characters in the Session.



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


[jira] [Closed] (IOTDB-205) Support retention policy

2019-10-29 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-205.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Support retention policy
> 
>
> Key: IOTDB-205
> URL: https://issues.apache.org/jira/browse/IOTDB-205
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Many applications use TSDBs to just store recent data for a period of time. 
> For example, 10 days, and older data will be deleted automatically. Influxdb 
> also supports this function called retention policy.
> It would be great that we also support this.



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


[jira] [Closed] (IOTDB-233) Keep MetadataPlan clear

2019-10-29 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-233.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Keep MetadataPlan clear
> ---
>
> Key: IOTDB-233
> URL: https://issues.apache.org/jira/browse/IOTDB-233
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> The metadata operator and metadataPlan have both a path and a deletePathList, 
> which is confusing. It seems that they are used in different scenarios: 
>  private Path path;  (for set storage group, create timeseries)
>  private List deletePathList;  (for delete timeseries)
>  
> It's better to make it clear. Maybe by using more types of physical plans.



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


[jira] [Created] (IOTDB-278) remove tsfile-format.properties

2019-10-29 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-278:
-

 Summary: remove tsfile-format.properties
 Key: IOTDB-278
 URL: https://issues.apache.org/jira/browse/IOTDB-278
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


# merge tsfile-format.properties to iotdb-engine.properties
 # add configuration class for tsfile, let users set configurations through API

 



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


[jira] [Created] (IOTDB-279) Merge TsDigest into Statistics

2019-10-29 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-279:
-

 Summary: Merge TsDigest into Statistics
 Key: IOTDB-279
 URL: https://issues.apache.org/jira/browse/IOTDB-279
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


As I observe, TsDigest is only the ByteBuffer format of Statistics, so why not 
merge them, which could make the code clear.



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


[jira] [Created] (IOTDB-280) Remove ChunkBufferPool

2019-10-29 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-280:
-

 Summary: Remove ChunkBufferPool
 Key: IOTDB-280
 URL: https://issues.apache.org/jira/browse/IOTDB-280
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


ChunkBufferPool has no effect on improving performance, it can be removed for a 
clean constructor of ChunkWriterImpl.

ChunkWriterImpl could receive a MeasuremnetSchema and construct a ChunkBuffer 
inside.



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


[jira] [Created] (IOTDB-281) Add powered by on the website

2019-10-29 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-281:
-

 Summary: Add powered by on the website
 Key: IOTDB-281
 URL: https://issues.apache.org/jira/browse/IOTDB-281
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


We could add the logo of companies powered by IoTDB on the website.



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


[jira] [Closed] (IOTDB-188) Delete Storage Group in Session and SQL interface

2019-10-26 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-188.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Delete Storage Group in Session and SQL interface
> -
>
> Key: IOTDB-188
> URL: https://issues.apache.org/jira/browse/IOTDB-188
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> add “delete storage group xxx” interface, which delete all data and metadata 
> of one storage group



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


[jira] [Closed] (IOTDB-193) Create schema automatically in the insertion

2019-10-22 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-193.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Create schema automatically in the insertion
> 
>
> Key: IOTDB-193
> URL: https://issues.apache.org/jira/browse/IOTDB-193
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Jialin Qiao
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Setting storage group and creating time series can be troublesome when using 
> IoTDB in applications.
> Let's look at the typical scenes:
> The devices send messages to Kafka. Each message includes: factoryId, 
> deviceId, timestamp, s1_value, s2_value, s3_value. 
> The consumer of Kafka needs to consume the messages and organize the data 
> into an insert statement: "insert into root.factoryId.deviceId(time, s1, s2, 
> s3) values(timestamp, s1_value, s2_value, s3_value)"
> Before inserting the data into IoTDB, the consumer needs to judge whether the 
> storage group and time series are created before, which is not convenient. 
> Typically, there are 3 ways to do that:
>  # Caching the storage group and timeseries created before in the consumer
>  # Query from IoTDB whether a storage group and timeseries exists
>  # Directly create metadata regardless of whether created before
> Could IoTDB support creating metadata (at least time series) automatically 
> when receiving an insertion?
>  



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


[jira] [Closed] (IOTDB-203) A new result set format

2019-10-22 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-203.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> A new result set format
> ---
>
> Key: IOTDB-203
> URL: https://issues.apache.org/jira/browse/IOTDB-203
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Jialin Qiao
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When executing a SQL like "select d1.s1, d2.s1 from root.sg1", the default 
> result set format in IoTDB is 
> "time, root.sg1.d1.s1, root.sg1.d2.s1"
> 1 , 1, 1
> 2, 2, 2
> However, some users want to get another format, The results could be grouped 
> by device, then sorted by time.
> "time, deviceId, s1".
> 1, root.sg1.d1, 1
> 2, root.sg1.d2, 2
>  
> This can be done in the client, but it would be better if we support this 
> format in the server.
>  



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


[jira] [Created] (IOTDB-264) Lake checking datatype before writing WAL

2019-10-23 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-264:
-

 Summary: Lake checking datatype before writing WAL
 Key: IOTDB-264
 URL: https://issues.apache.org/jira/browse/IOTDB-264
 Project: Apache IoTDB
  Issue Type: Bug
Affects Versions: 0.8.0
Reporter: Jialin Qiao


When execute an InsertPlan, we first check whether the timeseries exists or 
not. Then we write the InsertPlan to WAL and insert it to memtable. However, if 
the data type mismatches the registered schema, WAL will still be written but 
inserting to memtable will fail. 

 

When restart IoTDB, the WAL cannot be replayed due to NumberFormatException and 
IoTDB will fail to restart.



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


[jira] [Closed] (IOTDB-251) Improve query data structure in RPC

2019-10-23 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-251.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Improve query data structure in RPC
> ---
>
> Key: IOTDB-251
> URL: https://issues.apache.org/jira/browse/IOTDB-251
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Similar to the RowBatch in the write interface, we could use primitive data 
> arrays in ResultSet in the RPC query, instead of constructing record each 
> line.



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


[jira] [Closed] (IOTDB-261) Special characters in Session

2019-10-23 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-261.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Special characters in Session
> -
>
> Key: IOTDB-261
> URL: https://issues.apache.org/jira/browse/IOTDB-261
> Project: Apache IoTDB
>  Issue Type: Bug
>Affects Versions: 0.9.0-SNAPSHOT
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
>  
> When using Session to set storage group or create time series, special 
> character in the path will cause an error in mlog.txt, which impacts the 
> restart and recover of IoTDB.
>  
> session.setStorageGroup("root.tur_\n\t_bine");
> session.createTimeseries("root.turbine.d1.s_\n\t_1", TSDataType.INT64, 
> TSEncoding.RLE, CompressionType.SNAPPY);
>  
> It's better to reject these characters in the Session.



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


[jira] [Closed] (IOTDB-264) Lake checking datatype before writing WAL

2019-10-23 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-264.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Lake checking datatype before writing WAL
> -
>
> Key: IOTDB-264
> URL: https://issues.apache.org/jira/browse/IOTDB-264
> Project: Apache IoTDB
>  Issue Type: Bug
>Affects Versions: 0.8.0
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When execute an InsertPlan, we first check whether the timeseries exists or 
> not. Then we write the InsertPlan to WAL and insert it to memtable. However, 
> if the data type mismatches the registered schema, WAL will still be written 
> but inserting to memtable will fail. 
>  
> When restart IoTDB, the WAL cannot be replayed due to NumberFormatException 
> and IoTDB will fail to restart.



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


[jira] [Closed] (IOTDB-299) Merge ChunkBuffer to ChunkWriterImpl

2019-11-20 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-299.
-
Resolution: Fixed

> Merge ChunkBuffer to ChunkWriterImpl
> 
>
> Key: IOTDB-299
> URL: https://issues.apache.org/jira/browse/IOTDB-299
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> ChunkBuffer has many fields and functions, which makes it not like a buffer 
> but like a writer.
> Merge it into ChunkWriterImpl will make the write process clearer.



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


[jira] [Created] (IOTDB-324) Inaccurate Statistics when write batch

2019-11-27 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-324:
-

 Summary: Inaccurate Statistics when write batch
 Key: IOTDB-324
 URL: https://issues.apache.org/jira/browse/IOTDB-324
 Project: Apache IoTDB
  Issue Type: Bug
Affects Versions: 0.9.0
Reporter: Jialin Qiao


When writing a batch in ChunkWriterImpl, the statistics are updated without 
considering the batchSize.

When writing a 100 size array, batch size is 90, the last 10 points is also 
calculated in the Statistics.

In ChunkWirterImpl:

```
public void write(long[] timestamps, double[] values, int batchSize) {
 this.maxTimestamp = timestamps[batchSize - 1];
 valueCountInOnePage += batchSize;
 if (minTimestamp == Long.MIN_VALUE) {
 minTimestamp = timestamps[0];
 }
 pageWriter.write(timestamps, values, batchSize);
 pageStatistics.updateStats(values);   ** this line is not 
correct
 checkPageSizeAndMayOpenANewPage();
}

```

 



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


[jira] [Created] (IOTDB-325) Refactor Statistics

2019-11-27 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-325:
-

 Summary: Refactor Statistics
 Key: IOTDB-325
 URL: https://issues.apache.org/jira/browse/IOTDB-325
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


There are Statistics and StatisticsForFilter in TsFile module, which is in 
chaos.

Also, the ByteBuffer[] in Statistics is useless, as the subclass could 
serialize and deserialize the fields independently. There is no need to 
construct a ByteBuffer[] in the parent class.



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


[jira] [Closed] (IOTDB-279) Merge TsDigest into Statistics

2019-11-27 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-279.
-
Resolution: Fixed

> Merge TsDigest into Statistics
> --
>
> Key: IOTDB-279
> URL: https://issues.apache.org/jira/browse/IOTDB-279
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> As I observe, TsDigest is only the ByteBuffer format of Statistics, so why 
> not merge them, which could make the code clear.



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


[jira] [Closed] (IOTDB-284) Do not write empty page

2019-11-01 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-284.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Do not write empty page
> ---
>
> Key: IOTDB-284
> URL: https://issues.apache.org/jira/browse/IOTDB-284
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
> Fix For: 0.9.0
>
>
> SET STORAGE GROUP TO root.turbine;
> CREATE TIMESERIES root.turbine.d2.s0 WITH DATATYPE=INT32, ENCODING=RLE;
> insert into root.turbine.d2(timestamp,s0) values(2,25.3);
> flush 
>  
> When receiving the insert statement, IoTDB will create a ChunkWriterImpl, but 
> the value will not be inserted because of type error.
> The empty ChunkWriterImpl will be written when meeting the 'flush' command. 
> Then, the server will log an error:
>  
> 19:33:24.667 [pool-6-IoTDB-Flush-SubTask-ServerServiceImpl-thread-2] ERROR 
> org.apache.iotdb.tsfile.write.chunk.ChunkBuffer - Write page error, 
> [s0,INT32,RLE,{},UNCOMPRESSED], minTime:-9223372036854775808, maxTime:0
>  
> We can check the data type before creating the ChunkWriterImpl to avoid write 
> empty ChunkWriterImpl.



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


[jira] [Closed] (IOTDB-280) Remove ChunkBufferPool

2019-11-01 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-280.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Remove ChunkBufferPool
> --
>
> Key: IOTDB-280
> URL: https://issues.apache.org/jira/browse/IOTDB-280
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
> Fix For: 0.9.0
>
>
> ChunkBufferPool has no effect on improving performance, it can be removed for 
> a clean constructor of ChunkWriterImpl.
> ChunkWriterImpl could receive a MeasuremnetSchema and construct a ChunkBuffer 
> inside.



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


[jira] [Created] (IOTDB-238) Remove TS_SessionHandle in TSExecuteStatementReq

2019-09-25 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-238:
-

 Summary: Remove TS_SessionHandle in TSExecuteStatementReq
 Key: IOTDB-238
 URL: https://issues.apache.org/jira/browse/IOTDB-238
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


When we execute a sql statement, the client sends a TSExecuteStatementReq to 
the server. The TSExecuteStatementReq includes a TS_SessionHandle and a sql in 
String. However, the TS_SessionHandle has never been used. We can remove this. 
Then, the TSExecuteStatementReq struct can be simplified to a string.



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


[jira] [Closed] (IOTDB-180) Get rid of JSON format in "show timeseries"

2019-10-07 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-180.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Get rid of JSON format in "show timeseries"
> ---
>
> Key: IOTDB-180
> URL: https://issues.apache.org/jira/browse/IOTDB-180
> Project: Apache IoTDB
>  Issue Type: Wish
>Reporter: Jialin Qiao
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 0.9.0
>
> Attachments: image-2019-08-27-09-56-20-654.png, 
> image-2019-08-27-09-56-28-577.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, "show timeseries" prints result in JSON format, which is not 
> friendly compared to "show timeseries root" in table format.
> !image-2019-08-27-09-56-20-654.png|width=463,height=538!
> !image-2019-08-27-09-56-28-577.png|width=694,height=458!
> Intuitively, I would expect that "show timeseries" works as "show timeseries 
> root".
> Therefore, when users input a "show timeseries", I suggest that we treat it 
> as "show timeseries root" and print results in table format.



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


[jira] [Closed] (IOTDB-98) Batch insertion in Server

2019-10-07 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-98.

Resolution: Done

> Batch insertion in Server
> -
>
> Key: IOTDB-98
> URL: https://issues.apache.org/jira/browse/IOTDB-98
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Minor
>
> Currently, when the client sends a batch of statements (insert/delete) to the 
> server, the server will get each statement from the batch and execute one by 
> one. For each statement, the corresponding FileNodeProcessor (for a storage 
> group) will get a write lock and then execute the statement, which causes 
> unnecessary lock contention. 
> It can be improved by getting a write lock once and executing a batch of 
> statements. We can first consider the scenario that the statements in a batch 
> are all insertions.
> The new process mainly contains 3 steps:
> (1) Group the insert statement by storage group while retaining the original 
> order in the batch.
> (2) For each storage group, get the write lock and execute all statements 
> belong to it.
> (3) Set the return code of each statement to the origin position in the batch.



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


[jira] [Closed] (IOTDB-191) Enrich Session interfaces

2019-10-07 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-191.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Enrich Session interfaces
> -
>
> Key: IOTDB-191
> URL: https://issues.apache.org/jira/browse/IOTDB-191
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Jialin Qiao
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> The module "Session" is an RPC interface for users, which is more efficient 
> than JDBC.
> Currently, it only has 3 interfaces: (1) ser storage group (2) create time 
> series (3) insert batch. 
> Other interfaces such as delete time series, the query could be added.
>  



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


[jira] [Created] (IOTDB-251) Improve query data structure in RPC

2019-10-12 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-251:
-

 Summary: Improve query data structure in RPC
 Key: IOTDB-251
 URL: https://issues.apache.org/jira/browse/IOTDB-251
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


Similar to the RowBatch in the write interface, we could use primitive data 
arrays in ResultSet in the RPC query, instead of constructing record each line.



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


[jira] [Closed] (IOTDB-320) [Travis] [WinOS] [ERROR] OS=Windows and the assembly descriptor contains a *nix-specific root-relative-reference (starting with slash) /

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-320.
-
Resolution: Fixed

> [Travis] [WinOS] [ERROR] OS=Windows and the assembly descriptor contains a 
> *nix-specific root-relative-reference (starting with slash) /
> 
>
> Key: IOTDB-320
> URL: https://issues.apache.org/jira/browse/IOTDB-320
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: xiangdong Huang
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Travis  for WinOS has the following error:
>  
>  
> [INFO] 
>  
> 1736[INFO] --- maven-assembly-plugin:3.0.0:single (server-assembly) @ 
> iotdb-server ---
>  
> 1737[INFO] Reading assembly descriptor: src/assembly/server.xml
>  
> 1738[ERROR] OS=Windows and the assembly descriptor contains a *nix-specific 
> root-relative-reference (starting with slash) /
>  
> 1739[INFO] Copying files to 
> C:\Users\travis\build\apache\incubator-iotdb\server\target\iotdb-server-0.9.1-SNAPSHOT
>  
> 1740[WARNING] Assembly file: 
> C:\Users\travis\build\apache\incubator-iotdb\server\target\iotdb-server-0.9.1-SNAPSHOT
>  is not a regular file (it may be a directory). It cannot be attached to the 
> project build for installation or deployment.
>  
> 1741[ERROR] OS=Windows and the assembly descriptor contains a *nix-specific 
> root-relative-reference (starting with slash) /
>  
> 1742[INFO] Building zip: 
> C:\Users\travis\build\apache\incubator-iotdb\server\target\iotdb-server-0.9.1-SNAPSHOT.zip
>  
> 1743[INFO] 
>  
> 1744[INFO] --- maven-failsafe-plugin:2.22.0:integration-test 
> (run-integration-tests) @ iotdb-server ---
>  
> 1745[INFO] 
>  
>  
> [https://travis-ci.org/apache/incubator-iotdb/jobs/615886573]
> It may because / is incorrect for Win users.
>  



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


[jira] [Closed] (IOTDB-375) Bug in parameter adapter

2019-12-19 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-375.
-
Fix Version/s: 0.10.0-SNAPSHOT
   Resolution: Fixed

> Bug in parameter adapter
> 
>
> Key: IOTDB-375
> URL: https://issues.apache.org/jira/browse/IOTDB-375
> Project: Apache IoTDB
>  Issue Type: Bug
>Affects Versions: 0.9.0, 0.10.0-SNAPSHOT
>Reporter: Jialin Qiao
>Assignee: Tianan Li
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.10.0-SNAPSHOT
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> I set enable_parameter_adapter to true and use the default memory setting.
>  
> After starting IoTDB, I set one storage group root.sg1 and create timeseries, 
> the service rejects the creating after 66777 is created. However, the log 
> only says that "IoTDB system load is too large to add timeseries". We could 
> hint more, such as increase memory or disable the enable_parameter_adapter in 
> iotdb-engine.properties.
>  
> Then, I execute delete storage group root.sg1 and redo the above operations.
>  
> This time, only 34988 was successfully created. (This is the bug, we should 
> be able to create 66777 timeseries again)
>  
> After restart IoTDB, it recalculates the timeseries one-by-one and prints a 
> lot of debug logs. I suggest accepting the register without checking 
> parameters because it is already checked before.



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


[jira] [Closed] (IOTDB-293) Variable naming convention

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-293.
-
Fix Version/s: (was: 0.8.0)
   Resolution: Fixed

> Variable naming convention
> --
>
> Key: IOTDB-293
> URL: https://issues.apache.org/jira/browse/IOTDB-293
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: francisdu
>Priority: Critical
>  Labels: pull-request-available, variable
> Fix For: 0.9.0
>
>   Original Estimate: 2h
>  Time Spent: 40m
>  Remaining Estimate: 1h 20m
>
> I think Scala should follow the variable naming convention in Java.PM should 
> do code review.[spark-iotdb-connector] : 
> [https://github.com/apache/incubator-iotdb/blob/bd2992438208a6c2379848cd4224ac04bdd475d1/spark-iotdb-connector/src/main/scala/org/apache/iotdb/spark/db/Transformer.scala#L95]



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


[jira] [Closed] (IOTDB-364) Add IoTDBDataDirViewer Tool

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-364.
-
Resolution: Fixed

> Add IoTDBDataDirViewer Tool
> ---
>
> Key: IOTDB-364
> URL: https://issues.apache.org/jira/browse/IOTDB-364
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Lei Rui
>Assignee: Lei Rui
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> To have a quick overview of the data distribution in the data directories



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


[jira] [Closed] (IOTDB-345) upgrade thrift from 0.12 to 0.13

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-345.
-
Fix Version/s: 0.10.0-SNAPSHOT
   Resolution: Fixed

> upgrade thrift from 0.12 to 0.13
> 
>
> Key: IOTDB-345
> URL: https://issues.apache.org/jira/browse/IOTDB-345
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: xiangdong Huang
>Assignee: xiangdong Huang
>Priority: Major
>  Labels: easy-fix, pull-request-available
> Fix For: 0.10.0-SNAPSHOT
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> It seems thrift 0.12 has a bug that when a connection is clsoed, an exception 
> is printed on the server side.
> And, if you install thrift dependency using `pip`, you can not find the 0.12 
> version. Only 0.13.0 exists.
>  
> So, it is  good to upgrade it to 0.13



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


[jira] [Closed] (IOTDB-370) v0.10.0 JDBC Concurrent Error

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-370.
-
Resolution: Fixed

> v0.10.0 JDBC Concurrent Error
> -
>
> Key: IOTDB-370
> URL: https://issues.apache.org/jira/browse/IOTDB-370
> Project: Apache IoTDB
>  Issue Type: Bug
>Affects Versions: 0.10.0-SNAPSHOT
>Reporter: Rui Liu
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When using iotdb-benchmark dev branch to test IoTDB v0.10.0-SNAPSHOT, using 
> the JDBC API including executeBatch() and execute() to do data ingestion. The 
> following error will occur:
> In the benchmark log:
> ```
> 2019-12-16 11:03:36,825 ERROR 
> cn.edu.tsinghua.iotdb.benchmark.tsdb.DBWrapper:73 - Insert batch failed 
> because 
> java.sql.SQLException: Fail to execute batch sqls after reconnecting. please 
> check server status
>  at org.apache.iotdb.jdbc.IoTDBStatement.executeBatch(IoTDBStatement.java:349)
>  at 
> cn.edu.tsinghua.iotdb.benchmark.tsdb.iotdb.IoTDB.insertOneBatch(IoTDB.java:141)
>  at 
> cn.edu.tsinghua.iotdb.benchmark.tsdb.DBWrapper.insertOneBatch(DBWrapper.java:54)
>  at 
> cn.edu.tsinghua.iotdb.benchmark.client.BaseClient.doTest(BaseClient.java:65)
>  at cn.edu.tsinghua.iotdb.benchmark.client.Client.run(Client.java:44)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.thrift.TApplicationException: Internal error processing 
> executeBatchStatement
>  at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:79)
>  at 
> org.apache.iotdb.service.rpc.thrift.TSIService$Client.recv_executeBatchStatement(TSIService.java:230)
>  at 
> org.apache.iotdb.service.rpc.thrift.TSIService$Client.executeBatchStatement(TSIService.java:217)
>  at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>  at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:498)
>  at 
> org.apache.iotdb.rpc.SynchronizedHandler.invoke(SynchronizedHandler.java:39)
>  at com.sun.proxy.$Proxy5.executeBatchStatement(Unknown Source)
>  at 
> org.apache.iotdb.jdbc.IoTDBStatement.executeBatchSQL(IoTDBStatement.java:363)
>  at org.apache.iotdb.jdbc.IoTDBStatement.executeBatch(IoTDBStatement.java:347)
>  ... 9 common frames omitted
> ```
>  
> In the IoTDB log:
> ```
> 2019-12-16 11:12:04,154 [pool-2-IoTDB-JDBC-Client-thread-22] ERROR 
> org.apache.thrift.ProcessFunction:47 - Internal error processing 
> executeBatchStatement 
> java.lang.NullPointerException: null
> at 
> org.apache.iotdb.db.qp.physical.crud.InsertPlan.getPaths(InsertPlan.java:98)
> at 
> org.apache.iotdb.db.service.TSServiceImpl.checkAuthority(TSServiceImpl.java:1347)
> at 
> org.apache.iotdb.db.service.TSServiceImpl.executeUpdateStatement(TSServiceImpl.java:960)
> at 
> org.apache.iotdb.db.service.TSServiceImpl.executeStatementInBatch(TSServiceImpl.java:506)
> at 
> org.apache.iotdb.db.service.TSServiceImpl.executeBatchStatement(TSServiceImpl.java:482)
> at 
> org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeBatchStatement.getResult(TSIService.java:1718)
> at 
> org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeBatchStatement.getResult(TSIService.java:1698)
> at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
> at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
> at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:313)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> ```
>  
>  



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


[jira] [Closed] (IOTDB-366) Concurrent Error when multiple JDBC client send queries

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-366.
-
Resolution: Fixed

> Concurrent Error when multiple JDBC client send queries
> ---
>
> Key: IOTDB-366
> URL: https://issues.apache.org/jira/browse/IOTDB-366
> Project: Apache IoTDB
>  Issue Type: Bug
>Affects Versions: 0.10.0-SNAPSHOT
>Reporter: Xiangdong Huang
>Priority: Major
>
> HI,
> After  the SQL parser is upgraded to Antlr4, seems a concurrent error is 
> introduce.
> The error can be reproduced by:
> In org.apache.iotdb.db.integration.IoTDBQueryDemoIT class, add a new test 
> function:
> {code:java}
> // code placeholder
> @Test
> public void testConcurrent() {
>   new Thread(new Runnable() {
> @Override
> public void run() {
>   try {
> selectTest();
>   } catch (Exception e) {
> e.printStackTrace();
>   }
> }
>   }).start();
>   new Thread(new Runnable() {
> @Override
> public void run() {
>   try {
> selectTest();
>   } catch (Exception e) {
> e.printStackTrace();
>   }
> }
>   }).start();
> }
> {code}
>  
> Notice, because it is a concurrent error, the issue is not reproduced every 
> time.
> And, the exceptions in the above  test function can not be caught by Junit, 
> so it is not a formal UT code. 
>  



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


[jira] [Closed] (IOTDB-283) Modify rules of datatype inference when creating schema automatically is enabled

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-283.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Modify rules of datatype inference when creating schema automatically is 
> enabled
> 
>
> Key: IOTDB-283
> URL: https://issues.apache.org/jira/browse/IOTDB-283
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: Yanzhe An
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Rules of datatype inference are unsuitable for batch insertions when creating 
> schema automatically is enabled, because _BatchInsertPlan_ has a member 
> variable named _dataTypes_ which indicates datatypes of each row.



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


[jira] [Closed] (IOTDB-217) A new predicate of time

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-217.
-
Fix Version/s: 0.10.0-SNAPSHOT
   Resolution: Fixed

> A new predicate of time
> ---
>
> Key: IOTDB-217
> URL: https://issues.apache.org/jira/browse/IOTDB-217
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: medium, pull-request-available
> Fix For: 0.10.0-SNAPSHOT
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> I have encountered an issue that our SQL cannot support well. 
> The scenario is: I want to get the data between 9:00am to 12:00am in each day 
> last week.
> Could we add a new sql to do that? The sql maybe like this:
>  
> select s0 from root.d0 where time >= now()-1week and time <= now() groupby 
> time(1d) innerInterval(9h, 12h)



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


[jira] [Closed] (IOTDB-343) Test method in session to help user to analyze time cost

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-343.
-
Resolution: Fixed

> Test method in session to help user to analyze time cost
> 
>
> Key: IOTDB-343
> URL: https://issues.apache.org/jira/browse/IOTDB-343
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Kaifeng Xue
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> In our users' scenery, them often preprocess raw data into insert request and 
> then insert to IOTDB. We should support them to analyze the preprocessing 
> time and our database's executing time. So we should add test method in 
> session. In these test method, server just return success without handling 
> requests.



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


[jira] [Closed] (IOTDB-282) require "show version" query

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-282.
-
Fix Version/s: (was: 0.8.0)
   0.9.0
   Resolution: Fixed

> require "show version" query
> 
>
> Key: IOTDB-282
> URL: https://issues.apache.org/jira/browse/IOTDB-282
> Project: Apache IoTDB
>  Issue Type: New Feature
>Reporter: Yingbo
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> in order to support different iotdb versions in different production 
> environment. the data access program needs a "show version" or "show 
> parameters" query. so as to use compatible query syntax accordingly. 



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


[jira] [Closed] (IOTDB-371) [TravisCI] Fix maven version on WinOS.

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-371.
-
Fix Version/s: 0.10.0-SNAPSHOT
   Resolution: Fixed

[https://github.com/apache/incubator-iotdb/pull/650]

> [TravisCI] Fix maven version on WinOS. 
> ---
>
> Key: IOTDB-371
> URL: https://issues.apache.org/jira/browse/IOTDB-371
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: Xiangdong Huang
>Assignee: Jialin Qiao
>Priority: Major
>  Labels: easy-fix, travis-ci
> Fix For: 0.10.0-SNAPSHOT
>
>
> Maven 3.6.2 has removed from 
> [https://www-eu.apache.org/dist/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.zip]
>  , which will lead to the travis ci failure for WinOS.
> Modify .travis.yml file and upgrade the download link to 3.6.3 can solve the 
> problem.
>  



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


[jira] [Closed] (IOTDB-346) StorageGroupProcessor.sequenceFileList is ordered by fileName rather than dataTime

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-346.
-
Fix Version/s: 0.10.0-SNAPSHOT
   Resolution: Fixed

> StorageGroupProcessor.sequenceFileList is ordered by fileName rather than 
> dataTime
> --
>
> Key: IOTDB-346
> URL: https://issues.apache.org/jira/browse/IOTDB-346
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: Lei Rui
>Assignee: Tianan Li
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.10.0-SNAPSHOT
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> `StorageGroupProcessor.sequenceFileList` is ordered by fileName rather than 
> by time of data, as reflected in the `StorageGroupProcessor.getAllFiles` 
> method code:
> {code:java}
> tsFiles.sort(this::compareFileName);
> {code}
> 
> I use the following examples to expose the bug when the order of fileName is 
> inconsistent with that of dataTime.
> First, for preparation, I created three tsfiles using the following sql:
> {code:java}
> SET STORAGE GROUP TO root.ln.wf01.wt01
> CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, 
> ENCODING=PLAIN
> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=DOUBLE, 
> ENCODING=PLAIN
> CREATE TIMESERIES root.ln.wf01.wt01.hardware WITH DATATYPE=INT32, 
> ENCODING=PLAIN
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(1, 1.1, false, 11)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(2, 2.2, true, 22)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(3, 3.3, false, 33)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(4, 4.4, false, 44)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(5, 5.5, false, 55)
> flush
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(100, 100.1, false, 110)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(150, 200.2, true, 220)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(200, 300.3, false, 330)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(250, 400.4, false, 440)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(300, 500.5, false, 550)
> flush
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(10, 10.1, false, 110)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(20, 20.2, true, 220)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(30, 30.3, false, 330)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(40, 40.4, false, 440)
> INSERT INTO root.ln.wf01.wt01(timestamp,temperature,status, hardware) 
> values(50, 50.5, false, 550)
> flush
> {code}
> The tsfiles created are organized in the following directory structure:
> {code:java}
> |data
> |--sequence
> |root.ln.wf01.wt01
> |--1575813520203-101-0.tsfile
> |--1575813520203-101-0.tsfile.resource
> |--1575813520669-103-0.tsfile
> |--1575813520669-103-0.tsfile.resource
> |--unsequence
> |root.ln.wf01.wt01
> |--1575813521063-105-0.tsfile
> |--1575813521063-105-0.tsfile.resource
> {code}
> ||File Name||Data Time||
> |(a) 1575813520203-101-0.tsfile|1-5|
> |(c) 1575813521063-105-0.tsfile|10-50|
> |(b) 1575813520669-103-0.tsfile|100-300|
> Note how the order of fileName is inconsistent with that of dataTime.
> By the way, if you look into the code, you will know how the file name is 
> generated:
> {code:java}
> System.currentTimeMillis() + IoTDBConstant.TSFILE_NAME_SEPARATOR + 
> versionController.nextVersion() + IoTDBConstant.TSFILE_NAME_SEPARATOR + "0" + 
> TSFILE_SUFFIX
> {code}
> 
> Then, I loaded the three tsfiles into another brand new IoTDB. I did two 
> experiments with different loading orders each.
> In the first experiment, the tsfiles were loaded in their data time order. 
> That is,
> {code:java}
> IoTDB> load 1575813520203-101-0.tsfile // tsfile (a), with data time 1-5
> IoTDB> load 1575813521063-105-0.tsfile // tsfile (c), with data time 10-50
> IoTDB> load 1575813520669-103-0.tsfile // tsfile (b), with data time 
> 100-300{code}
> After loading successfully, I did the following query in the same client 
> window and got the wrong result:
> {code:java}
> IoTDB> select * from root
> +---+-+-+-+
> |   Time|root.ln.wf01.wt01.temperature| 
> root.ln.wf01.wt01.status|   root.ln.wf01.wt01.hardware|
> 

[jira] [Closed] (IOTDB-14) Concurrent Error of HashMap in StatMonitor class

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-14.

Resolution: Cannot Reproduce

> Concurrent Error of HashMap in StatMonitor class
> 
>
> Key: IOTDB-14
> URL: https://issues.apache.org/jira/browse/IOTDB-14
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: xiangdong Huang
>Assignee: Rui Liu
>Priority: Major
>  Labels: need-to-check
>
> When running IoTDB UT, I found an exception:
> [INFO] Running org.apache.iotdb.db.monitor.MonitorTest
> WARN [2019-01-28 23:50:28,816] [main] 
> org.apache.iotdb.db.conf.IoTDBDescriptor:60 - Cannot find IOTDB_HOME or 
> IOTDB_CONF environment variable when loading config file 
> iotdb-engine.properties, use default configuration
> INFO [2019-01-28 23:50:28,822] [main] 
> org.apache.iotdb.db.conf.directories.Directories:66 - folder 
> data/data/settled in tsfileFolders doesn't exist, create it
> WARN [2019-01-28 23:50:28,823] [main] 
> org.apache.iotdb.tsfile.common.conf.TSFileDescriptor:88 - Failed to find 
> config file tsfile-format.properties at classpath, use default configuration
> INFO [2019-01-28 23:50:28,834] [main] 
> org.apache.iotdb.db.auth.user.BasicUserManager:76 - Admin initialized
> INFO [2019-01-28 23:50:28,836] [main] 
> org.apache.iotdb.db.auth.user.BasicUserManager:76 - Admin initialized
> INFO [2019-01-28 23:50:28,838] [main] 
> org.apache.iotdb.db.auth.authorizer.BasicAuthorizer:62 - Initialization of 
> Authorizer completes
> INFO [2019-01-28 23:50:28,840] [main] 
> org.apache.iotdb.db.auth.user.BasicUserManager:76 - Admin initialized
> INFO [2019-01-28 23:50:28,841] [main] 
> org.apache.iotdb.db.auth.authorizer.BasicAuthorizer:62 - Initialization of 
> Authorizer completes
> INFO [2019-01-28 23:50:28,844] [main] 
> org.apache.iotdb.db.engine.filenode.FileNodeManager:113 - data/system/info 
> dir home doesn't exist, create it
> INFO [2019-01-28 23:50:29,866] 
> [pool-1-IoTDB-StatMonitor-ServerServiceImpl-thread-1] 
> org.apache.iotdb.db.engine.filenode.FileNodeProcessor:221 - The data 
> directory of the filenode processor root.stats doesn't exist. Create new 
> directory data/system/info/root.stats
> INFO [2019-01-28 23:50:29,876] 
> [pool-1-IoTDB-StatMonitor-ServerServiceImpl-thread-1] 
> org.apache.iotdb.db.engine.filenode.FileNodeProcessor:498 - Allocate folder 
> data/data/settled for the new bufferwrite processor.
> ERROR [2019-01-28 23:50:33,855] 
> [pool-1-IoTDB-StatMonitor-ServerServiceImpl-thread-1] 
> org.apache.iotdb.db.monitor.StatMonitor$statBackLoop:376 - Error occurred in 
> Stat Monitor thread
> java.util.ConcurrentModificationException: null
>  at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)
>  at java.util.HashMap$EntryIterator.next(HashMap.java:1471)
>  at java.util.HashMap$EntryIterator.next(HashMap.java:1469)
>  at 
> org.apache.iotdb.db.monitor.StatMonitor.gatherStatistics(StatMonitor.java:264)
>  at 
> org.apache.iotdb.db.monitor.StatMonitor$statBackLoop.run(StatMonitor.java:372)
>  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>  at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at java.lang.Thread.run(Thread.java:748)
>  
> It is because when you traverse a HashMap, the elements changed, I think.
>  
> A strange thing is that org.apache.iotdb.db.monitor.MonitorTest passed... It 
> is what we must fix, otherwise UT is meaningless.
>  



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


[jira] [Closed] (IOTDB-307) Remove maxTombstoneTime in ChunkHeader

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-307.
-
Fix Version/s: 0.10.0-SNAPSHOT
   Resolution: Fixed

[https://github.com/apache/incubator-iotdb/pull/587]

> Remove maxTombstoneTime in ChunkHeader
> --
>
> Key: IOTDB-307
> URL: https://issues.apache.org/jira/browse/IOTDB-307
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: atoildw
>Priority: Major
> Fix For: 0.10.0-SNAPSHOT
>
>
> There is a global variable *maxTombstoneTime* in the ChunkHeader, but when I 
> check it, it seems like is no longer used anywhere and is always assigned to 
> 0 in TsFile. I feel the need to remove it to keep code clean.
> And need to update the document first。



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


[jira] [Closed] (IOTDB-336) Binary files incompatible between JDK8 and JDK11

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-336.
-
Fix Version/s: 0.10.0-SNAPSHOT
   Resolution: Fixed

> Binary files incompatible between JDK8 and JDK11
> 
>
> Key: IOTDB-336
> URL: https://issues.apache.org/jira/browse/IOTDB-336
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: xiangdong Huang
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.10.0-SNAPSHOT
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> I tried to use JDK11 to compile a binary file, you can get it at 
> [https://dist.apache.org/repos/dist/dev/incubator/iotdb/0.8.2/rc1].
> However, if a user uses JDK8 to run it, an exception will occur:
> java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer;
>  
> It is because before JDK9, ByteBuffer.clear() returns  Buffer, while from 
> JDK9 on, the method return ByteBuffer.
>  
> According to [https://github.com/apache/curator/pull/312], add a parameter 
> `–release 8` can solve the problem. 
> In maven, we can add a property called 
> ```
> 8
> ```
> I am verifying the solution now.
>  
>  



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


[jira] [Closed] (IOTDB-288) Unclear error message notification for "creating timeserie" clause

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-288.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> Unclear error message notification for "creating timeserie" clause
> --
>
> Key: IOTDB-288
> URL: https://issues.apache.org/jira/browse/IOTDB-288
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: xiangdong Huang
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.9.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> While I am trying to create a time series whose sensor name is 
> "RANDOM/foo:BYTE", the create timeseries clause failed, because we do not 
> support the characters of "/" and ":" in a path.
> However, I can not get the above info, the error message (on the client side) 
> just says:
> Meet error while parsing SQL: Statement format is not right: parsing 
> error,statement: CREATE TIMESERIES root.mi.d1.RANDOM_foo:BYTE WITH 
> DATATYPE=INT32, ENCODING=RLE.
>  
> While on the server side, you can find the error info: 
> Caused by: org.apache.iotdb.db.sql.parse.ParseException: line 1:39 character 
> ':' not supported here
>  



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


[jira] [Closed] (IOTDB-308) jdk error when using Travis + Windows

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-308.
-
Resolution: Fixed

> jdk error when using Travis + Windows
> -
>
> Key: IOTDB-308
> URL: https://issues.apache.org/jira/browse/IOTDB-308
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: xiangdong Huang
>Priority: Major
>  Labels: pull-request-available
> Attachments: image-2019-11-18-22-09-34-671.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Sometime travis may failed on WinOS because of:
> !image-2019-11-18-22-09-34-671.png!
> It is a quite strange exception. The only thing I can do is change a new 
> JDK.. So, I tried to download jdk zip file manually.
>  
> And, in many cases, travis on WinOS will be timeout, which is als needed to 
> be fixed. 
>  



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


[jira] [Closed] (IOTDB-319) java deadlock (not sure how to reproduce)

2019-12-17 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-319.
-
Fix Version/s: 0.9.0
   Resolution: Fixed

> java deadlock (not sure how to reproduce)
> -
>
> Key: IOTDB-319
> URL: https://issues.apache.org/jira/browse/IOTDB-319
> Project: Apache IoTDB
>  Issue Type: Bug
>Affects Versions: 0.9.0
>Reporter: xiangdong Huang
>Priority: Major
>  Labels: hard, pull-request-available
> Fix For: 0.9.0
>
> Attachments: deadlock.out
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Hi, 
> my colleague gives me an IoTDB instance which has no response for "select " 
> SQL.
> (but for Schema query sql, it works).
> I used jstack to check the process and find a deadlock, you can get the 
> detailed info in the attachment.
>  
> Found one Java-level deadlock:
> =
> "pool-2-IoTDB-JDBC-Client-thread-16":
>  waiting to lock monitor 0x7fdab800ff68 (object 0x0003c7163218, a 
> org.apache.iotdb.db.query.control.FileReaderManager),
>  which is held by "pool-2-IoTDB-JDBC-Client-thread-3"
> "pool-2-IoTDB-JDBC-Client-thread-3":
>  waiting for ownable synchronizer 0x0003c6106f40, (a 
> java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
>  which is held by "MergeThread-0"
> "MergeThread-0":
>  waiting to lock monitor 0x7fdab800ff68 (object 0x0003c7163218, a 
> org.apache.iotdb.db.query.control.FileReaderManager),
>  which is held by "pool-2-IoTDB-JDBC-Client-thread-3"
>  
>  



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


[jira] [Created] (IOTDB-375) Bug in parameter adapter

2019-12-18 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-375:
-

 Summary: Bug in parameter adapter
 Key: IOTDB-375
 URL: https://issues.apache.org/jira/browse/IOTDB-375
 Project: Apache IoTDB
  Issue Type: Bug
Affects Versions: 0.9.0, 0.10.0-SNAPSHOT
Reporter: Jialin Qiao


I set enable_parameter_adapter to true and use the default memory setting.

 

After starting IoTDB, I set one storage group root.sg1 and create timeseries, 
the service rejects the creating after 66777 is created. However, the log only 
says that "IoTDB system load is too large to add timeseries". We could hint 
more, such as increase memory or disable the enable_parameter_adapter in 
iotdb-engine.properties.

 

Then, I execute delete storage group root.sg1 and redo the above operations.

 

This time, only 34988 was successfully created. (This is the bug, we should be 
able to create 66777 timeseries again)

 

After restart IoTDB, it recalculates the timeseries one-by-one and prints a lot 
of debug logs. I suggest accepting the register without checking parameters 
because it is already checked before.



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


[jira] [Created] (IOTDB-356) NullPointerException in ActiveTimeSeriesCounter

2019-12-09 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-356:
-

 Summary: NullPointerException in ActiveTimeSeriesCounter
 Key: IOTDB-356
 URL: https://issues.apache.org/jira/browse/IOTDB-356
 Project: Apache IoTDB
  Issue Type: Bug
Reporter: Jialin Qiao


Start a empty IoTDB, execute 3 sql:
{code:java}
SET STORAGE GROUP TO root.turbine;
CREATE TIMESERIES root.turbine.d2.s0 WITH DATATYPE=DOUBLE, ENCODING=GORILLA;
insert into root.turbine.d2(timestamp,s0) values(2,25.3);{code}
Kill the server and restart, then you will see:
{code:java}
11:37:45.157 [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Storage group 
root.turbine- registers active time series root.turbine.d2.s0 
failed11:37:45.157 [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Storage group 
root.turbine- registers active time series root.turbine.d2.s0 
failedjava.lang.NullPointerException: null at 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter.offer(ActiveTimeSeriesCounter.java:65)
 at 
org.apache.iotdb.db.engine.flush.MemTableFlushTask.syncFlushMemTable(MemTableFlushTask.java:87)
 at 
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.redoLogs(TsFileRecoverPerformer.java:213)
 at 
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:143)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverSeqFiles(StorageGroupProcessor.java:294)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:223)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.(StorageGroupProcessor.java:210)
 at 
org.apache.iotdb.db.engine.StorageEngine.lambda$new$0(StorageEngine.java:119) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745)11:37:45.158 
[pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Update root.turbine- 
active ratio failedjava.lang.NullPointerException: null at 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter.updateActiveRatio(ActiveTimeSeriesCounter.java:79)
 at 
org.apache.iotdb.db.engine.flush.MemTableFlushTask.syncFlushMemTable(MemTableFlushTask.java:91)
 at 
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.redoLogs(TsFileRecoverPerformer.java:213)
 at 
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:143)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverSeqFiles(StorageGroupProcessor.java:294)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:223)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.(StorageGroupProcessor.java:210)
 at 
org.apache.iotdb.db.engine.StorageEngine.lambda$new$0(StorageEngine.java:119) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745)
{code}
 

 

 

 

 

 



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


[jira] [Created] (IOTDB-357) NullPointerException in ActiveTimeSeriesCounter

2019-12-09 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-357:
-

 Summary: NullPointerException in ActiveTimeSeriesCounter
 Key: IOTDB-357
 URL: https://issues.apache.org/jira/browse/IOTDB-357
 Project: Apache IoTDB
  Issue Type: Bug
Reporter: Jialin Qiao


Start a empty IoTDB, execute 3 sql:
{code:java}
SET STORAGE GROUP TO root.turbine;
CREATE TIMESERIES root.turbine.d2.s0 WITH DATATYPE=DOUBLE, ENCODING=GORILLA;
insert into root.turbine.d2(timestamp,s0) values(2,25.3);{code}
Kill the server and restart, then you will see:
{code:java}
11:37:45.157 [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Storage group 
root.turbine- registers active time series root.turbine.d2.s0 
failed11:37:45.157 [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Storage group 
root.turbine- registers active time series root.turbine.d2.s0 
failedjava.lang.NullPointerException: null at 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter.offer(ActiveTimeSeriesCounter.java:65)
 at 
org.apache.iotdb.db.engine.flush.MemTableFlushTask.syncFlushMemTable(MemTableFlushTask.java:87)
 at 
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.redoLogs(TsFileRecoverPerformer.java:213)
 at 
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:143)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverSeqFiles(StorageGroupProcessor.java:294)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:223)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.(StorageGroupProcessor.java:210)
 at 
org.apache.iotdb.db.engine.StorageEngine.lambda$new$0(StorageEngine.java:119) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745)11:37:45.158 
[pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Update root.turbine- 
active ratio failedjava.lang.NullPointerException: null at 
org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter.updateActiveRatio(ActiveTimeSeriesCounter.java:79)
 at 
org.apache.iotdb.db.engine.flush.MemTableFlushTask.syncFlushMemTable(MemTableFlushTask.java:91)
 at 
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.redoLogs(TsFileRecoverPerformer.java:213)
 at 
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:143)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverSeqFiles(StorageGroupProcessor.java:294)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:223)
 at 
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.(StorageGroupProcessor.java:210)
 at 
org.apache.iotdb.db.engine.StorageEngine.lambda$new$0(StorageEngine.java:119) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745)
{code}
 

 

 

 

 

 



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


[jira] [Closed] (IOTDB-356) NullPointerException in ActiveTimeSeriesCounter

2019-12-09 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-356.
-
Resolution: Duplicate

https://issues.apache.org/jira/browse/IOTDB-357

> NullPointerException in ActiveTimeSeriesCounter
> ---
>
> Key: IOTDB-356
> URL: https://issues.apache.org/jira/browse/IOTDB-356
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: Jialin Qiao
>Priority: Major
>
> Start a empty IoTDB, execute 3 sql:
> {code:java}
> SET STORAGE GROUP TO root.turbine;
> CREATE TIMESERIES root.turbine.d2.s0 WITH DATATYPE=DOUBLE, ENCODING=GORILLA;
> insert into root.turbine.d2(timestamp,s0) values(2,25.3);{code}
> Kill the server and restart, then you will see:
> {code:java}
> 11:37:45.157 [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Storage group 
> root.turbine- registers active time series root.turbine.d2.s0 
> failed11:37:45.157 [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Storage group 
> root.turbine- registers active time series root.turbine.d2.s0 
> failedjava.lang.NullPointerException: null at 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter.offer(ActiveTimeSeriesCounter.java:65)
>  at 
> org.apache.iotdb.db.engine.flush.MemTableFlushTask.syncFlushMemTable(MemTableFlushTask.java:87)
>  at 
> org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.redoLogs(TsFileRecoverPerformer.java:213)
>  at 
> org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:143)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverSeqFiles(StorageGroupProcessor.java:294)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:223)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.(StorageGroupProcessor.java:210)
>  at 
> org.apache.iotdb.db.engine.StorageEngine.lambda$new$0(StorageEngine.java:119) 
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  at java.lang.Thread.run(Thread.java:745)11:37:45.158 
> [pool-1-IoTDB-Recovery-Thread-Pool-thread-1] ERROR 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter - Update 
> root.turbine- active ratio failedjava.lang.NullPointerException: null at 
> org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter.updateActiveRatio(ActiveTimeSeriesCounter.java:79)
>  at 
> org.apache.iotdb.db.engine.flush.MemTableFlushTask.syncFlushMemTable(MemTableFlushTask.java:91)
>  at 
> org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.redoLogs(TsFileRecoverPerformer.java:213)
>  at 
> org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:143)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverSeqFiles(StorageGroupProcessor.java:294)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:223)
>  at 
> org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.(StorageGroupProcessor.java:210)
>  at 
> org.apache.iotdb.db.engine.StorageEngine.lambda$new$0(StorageEngine.java:119) 
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  at java.lang.Thread.run(Thread.java:745)
> {code}
>  
>  
>  
>  
>  
>  



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


[jira] [Closed] (IOTDB-342) Merge BytesUtils with ReadWriteIOUtils

2019-12-05 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-342.
-
Resolution: Not A Problem

It's not a problem. BytesUtils is for bytes. ReadWriteIOUtils is for IO stream 
and ByteBuffer.

> Merge BytesUtils with ReadWriteIOUtils
> --
>
> Key: IOTDB-342
> URL: https://issues.apache.org/jira/browse/IOTDB-342
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Minor
>
> In the TsFile module, there are BytesUtils and ReadWriteIOUtils for 
> serializing and deserializing objects. It's better to merge them and leave 
> one. 



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


[jira] [Closed] (IOTDB-325) Refactor Statistics

2019-12-05 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-325.
-
Resolution: Fixed

> Refactor Statistics
> ---
>
> Key: IOTDB-325
> URL: https://issues.apache.org/jira/browse/IOTDB-325
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Minor
>  Labels: pull-request-available
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> There are Statistics and StatisticsForFilter in TsFile module, which is in 
> chaos.
> Also, the ByteBuffer[] in Statistics is useless, as the subclass could 
> serialize and deserialize the fields independently. There is no need to 
> construct a ByteBuffer[] in the parent class.



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


[jira] [Closed] (IOTDB-303) Lost users information when upgrading 0.8.x to 0.9.0

2019-12-05 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-303.
-
Resolution: Fixed

> Lost users information when upgrading 0.8.x to 0.9.0
> 
>
> Key: IOTDB-303
> URL: https://issues.apache.org/jira/browse/IOTDB-303
> Project: Apache IoTDB
>  Issue Type: Bug
>Reporter: Jialin Qiao
>Priority: Minor
>  Labels: pull-request-available
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> If creating other users in IoTDB, the upgrade from 0.8.x to 0.9.0 will lost 
> users except "root".
>  
> In other words, the data/system/user/*.profile is not compatible between 
> 0.8.x and 0.9.0. Currently, we remove all *.profile and create a new root 
> user with password root. 



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


[jira] [Closed] (IOTDB-311) Generate anything in test to the target directory.

2019-12-05 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-311.
-
Resolution: Fixed

> Generate anything in test to the target directory.
> --
>
> Key: IOTDB-311
> URL: https://issues.apache.org/jira/browse/IOTDB-311
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> We'd better generate anything in UT/IT to the target directory to avoid 
> including these files in source release.



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


[jira] [Closed] (IOTDB-324) Inaccurate Statistics when write batch

2019-12-05 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-324.
-
Resolution: Fixed

> Inaccurate Statistics when write batch
> --
>
> Key: IOTDB-324
> URL: https://issues.apache.org/jira/browse/IOTDB-324
> Project: Apache IoTDB
>  Issue Type: Bug
>Affects Versions: 0.9.0
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> When writing a batch in ChunkWriterImpl, the statistics are updated without 
> considering the batchSize.
> When writing a 100 size array, batch size is 90, the last 10 points is also 
> calculated in the Statistics.
> In ChunkWirterImpl:
> ```
> public void write(long[] timestamps, double[] values, int batchSize) {
>  this.maxTimestamp = timestamps[batchSize - 1];
>  valueCountInOnePage += batchSize;
>  if (minTimestamp == Long.MIN_VALUE) {
>  minTimestamp = timestamps[0];
>  }
>  pageWriter.write(timestamps, values, batchSize);
>  pageStatistics.updateStats(values);   ** this line is not 
> correct
>  checkPageSizeAndMayOpenANewPage();
> }
> ```
>  



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


[jira] [Closed] (IOTDB-334) Move limit parser to Server side

2019-12-05 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-334.
-
Resolution: Fixed

> Move limit parser to Server side
> 
>
> Key: IOTDB-334
> URL: https://issues.apache.org/jira/browse/IOTDB-334
> Project: Apache IoTDB
>  Issue Type: Improvement
>Reporter: Jialin Qiao
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> In our query process, SQL will be analyzed by Antlr in the server-side, then 
> generated to a logical plan. 
> However, query SQL is also parsed in the client (IoTDBQueryResultSet) by the 
> following statement to get the value of the limit clause.
> String[] splited = sql.toUpperCase().split("
> s+");
> This causes extra parsing for a query, which will slow down the query speed.
> I recommend moving the limit parsing to the server-side.



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


[jira] [Created] (IOTDB-339) Optimize QueryPlan

2019-12-03 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-339:
-

 Summary: Optimize QueryPlan
 Key: IOTDB-339
 URL: https://issues.apache.org/jira/browse/IOTDB-339
 Project: Apache IoTDB
  Issue Type: Improvement
Reporter: Jialin Qiao


For a query such as "select s1, s1 from root.d1", the query process is as 
follows:

(1) Parse the SQL to a QueryPlan, in which the selected paths are .

(2) Return the selected paths to the client for result printing, and recording 
this QueryPlan in the server.

(3) When the client fetches the result, the QueryPlan is passed to 
QueryProcessExecutor. The executor deduplicate the paths and execute the plan.

(4) Return the result set.

 

I recommend moving the deduplication to step (1) and put the origin projected 
paths and deduplicated paths in QueryPlan. Then, the executor could focus on 
executing, instead of optimization.

 

 



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


[jira] [Created] (IOTDB-478) Redesign the cache in TsFile/Engine

2020-02-13 Thread Jialin Qiao (Jira)
Jialin Qiao created IOTDB-478:
-

 Summary: Redesign the cache in TsFile/Engine
 Key: IOTDB-478
 URL: https://issues.apache.org/jira/browse/IOTDB-478
 Project: Apache IoTDB
  Issue Type: Improvement
  Components: Core/Engine, Core/TsFile
Reporter: Jialin Qiao


Currently, the ChunkLoaderImpl has an internal cache, which is not used in the 
server. This may cause much gc overhead.

I suggest removing the cache in ChunkLoaderImpl, leaving ChunkLoader only a 
tool, and redesign the cache in TsFile and server.



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


[jira] [Commented] (IOTDB-471) NullPoint exception when merging all TsFiles (may caused by TimeRange Partition)

2020-02-13 Thread Jialin Qiao (Jira)


[ 
https://issues.apache.org/jira/browse/IOTDB-471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17036170#comment-17036170
 ] 

Jialin Qiao commented on IOTDB-471:
---

We do not figure out how it occurs, only add some log. So this issue is not 
closed now.

> NullPoint exception when merging all TsFiles (may caused by TimeRange 
> Partition)
> 
>
> Key: IOTDB-471
> URL: https://issues.apache.org/jira/browse/IOTDB-471
> Project: Apache IoTDB
>  Issue Type: Bug
>  Components: Core/Engine
>Reporter: Xiangdong Huang
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.10.0-SNAPSHOT
>
> Attachments: image-2020-02-10-20-32-03-335.png
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Hi,
> In an application, there are millions of time series. In this case, when we 
> enable dynamic_parameter, each TsFile has only 7MB.
> Therefore, there are too many TsFiles and the following query is quite slow:
> SELECT longitude,latitude,altitude,'11',windDirection2min,...(other 65 
> columns) FROM root.national.*.5.* WHERE time = 2020-01-18 20:00:00 group by 
> device
> The above query returns 2400 rows and spends 8 seconds... (Total data is 
> just 2GB).
> So, I begin to run merge to accelerate the query speed and the following 
> exception occurs:
> !image-2020-02-10-20-32-03-335.png|width=799,height=527!
> If we check the codes, the null point exception is caused by:
>  
> {code:java}
>  
> private boolean updateLatestFlushTimeCallback(TsFileProcessor processor) {
>   // update the largest timestamp in the last flushing memtable
>   for (Entry entry : 
> latestTimeForEachDevice.get(processor.getTimeRangeId())
>   .entrySet()) {
> latestFlushedTimeForEachDevice.get(processor.getTimeRangeId())
> .put(entry.getKey(), entry.getValue());
>   }
>   return true;
> }
>  
> {code}
>  
> I know it is hard to reproduce, but can someone help to check and analyze the 
> codes?
> Or, at least add more logs for helping to analyze such cases in the future.
> [~SilverNarcissus] [~jt2594838]
>  
>  



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


[jira] [Commented] (IOTDB-462) Failed to execute goal for `download-maven-plugin`.

2020-02-11 Thread Jialin Qiao (Jira)


[ 
https://issues.apache.org/jira/browse/IOTDB-462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17034983#comment-17034983
 ] 

Jialin Qiao commented on IOTDB-462:
---

Hi, a user also encounters this problem. Reducing maven-download-plugin to 
1.3.0 works. So I'd like to fix it in 
[https://github.com/apache/incubator-iotdb/pull/794]

> Failed to execute goal for `download-maven-plugin`.
> ---
>
> Key: IOTDB-462
> URL: https://issues.apache.org/jira/browse/IOTDB-462
> Project: Apache IoTDB
>  Issue Type: Bug
>  Components: Others
>Reporter: sunjincheng
>Priority: Major
> Attachments: iotdb_mvn.gif
>
>
> Can not build the source code in my local, the error message as follows:
> {code:java}
> [ERROR] Failed to execute goal 
> com.googlecode.maven-download-plugin:download-maven-plugin:1.4.0:wget 
> (get-thrift-executable) on project service-rpc: Execution 
> get-thrift-executable of goal 
> com.googlecode.maven-download-plugin:download-maven-plugin:1.4.0:wget failed: 
> java.lang.ClassNotFoundException: 
> com.googlecode.download.maven.plugin.internal.CachedFileEntry -> [Help 1]
> {code}
> Does anyone else have this problem?
> At present, I have reduced the version(1.3.0) to solve this problem. If most 
> of people encounter this problem, I suggest reducing the version to 1.3.0. as 
> follows:
> {code:java}
>  
> 
> com.googlecode.maven-download-plugin
> download-maven-plugin
> 1.3.0 From 1.4.0 to 1.3.0
> 
> ...
> 
> 
> {code}
> What do you think?



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


[jira] [Commented] (IOTDB-462) Failed to execute goal for `download-maven-plugin`.

2020-02-11 Thread Jialin Qiao (Jira)


[ 
https://issues.apache.org/jira/browse/IOTDB-462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17034985#comment-17034985
 ] 

Jialin Qiao commented on IOTDB-462:
---

[https://github.com/apache/incubator-iotdb/pull/794]

> Failed to execute goal for `download-maven-plugin`.
> ---
>
> Key: IOTDB-462
> URL: https://issues.apache.org/jira/browse/IOTDB-462
> Project: Apache IoTDB
>  Issue Type: Bug
>  Components: Others
>Affects Versions: 0.8.0, 0.9.0, 0.9.1, 0.8.1, 0.8.2
>Reporter: sunjincheng
>Priority: Major
> Attachments: iotdb_mvn.gif
>
>
> Can not build the source code in my local, the error message as follows:
> {code:java}
> [ERROR] Failed to execute goal 
> com.googlecode.maven-download-plugin:download-maven-plugin:1.4.0:wget 
> (get-thrift-executable) on project service-rpc: Execution 
> get-thrift-executable of goal 
> com.googlecode.maven-download-plugin:download-maven-plugin:1.4.0:wget failed: 
> java.lang.ClassNotFoundException: 
> com.googlecode.download.maven.plugin.internal.CachedFileEntry -> [Help 1]
> {code}
> Does anyone else have this problem?
> At present, I have reduced the version(1.3.0) to solve this problem. If most 
> of people encounter this problem, I suggest reducing the version to 1.3.0. as 
> follows:
> {code:java}
>  
> 
> com.googlecode.maven-download-plugin
> download-maven-plugin
> 1.3.0 From 1.4.0 to 1.3.0
> 
> ...
> 
> 
> {code}
> What do you think?



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


[jira] [Closed] (IOTDB-462) Failed to execute goal for `download-maven-plugin`.

2020-02-11 Thread Jialin Qiao (Jira)


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

Jialin Qiao closed IOTDB-462.
-
Fix Version/s: 0.10.0-SNAPSHOT
   Resolution: Fixed

> Failed to execute goal for `download-maven-plugin`.
> ---
>
> Key: IOTDB-462
> URL: https://issues.apache.org/jira/browse/IOTDB-462
> Project: Apache IoTDB
>  Issue Type: Bug
>  Components: Others
>Affects Versions: 0.8.0, 0.9.0, 0.9.1, 0.8.1, 0.8.2
>Reporter: sunjincheng
>Priority: Major
>  Labels: pull-request-available
> Fix For: 0.10.0-SNAPSHOT
>
> Attachments: iotdb_mvn.gif
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Can not build the source code in my local, the error message as follows:
> {code:java}
> [ERROR] Failed to execute goal 
> com.googlecode.maven-download-plugin:download-maven-plugin:1.4.0:wget 
> (get-thrift-executable) on project service-rpc: Execution 
> get-thrift-executable of goal 
> com.googlecode.maven-download-plugin:download-maven-plugin:1.4.0:wget failed: 
> java.lang.ClassNotFoundException: 
> com.googlecode.download.maven.plugin.internal.CachedFileEntry -> [Help 1]
> {code}
> Does anyone else have this problem?
> At present, I have reduced the version(1.3.0) to solve this problem. If most 
> of people encounter this problem, I suggest reducing the version to 1.3.0. as 
> follows:
> {code:java}
>  
> 
> com.googlecode.maven-download-plugin
> download-maven-plugin
> 1.3.0 From 1.4.0 to 1.3.0
> 
> ...
> 
> 
> {code}
> What do you think?



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


  1   2   3   >