In the previous design, the timezone was set in IoTDB server configuration.
When one client gets the connection from the server,* it will keep the same
timezone as server.*

However, since IoTDB is becoming more and more international. Some user may
encounter problems, as their clients are in different timezone from their
servers, and muti clients may be in different timezone too, which lead to
that the time input by format in inserting or querying will be parsed to
the incorrect timestamp. And more, the time result show in client will be
incorrect too.

Actually, the design self before was unreasonable. *The timezone of server
is not important,* *which is only responsible for storing timestamp. On the
contrary, the client is the key*. Because how to parse the formatted time
submitted by client should be decided by the timezone of client itself.

For example, my client is in +08:00, while the server is in +01:00. Insert
a datapoint, "inser into root.sg.d1(time, s1) values (2020-10-30 09:48,
948)". The server will parse the formatted time by +08:00 instead of +01:00.

Therefore, I modified the timezone configuration in IoTDB. *Delete the
timezone configuration in server, and add a timezone parameter while the
client request a connection from server, which will be stored by server as
a client -> timezone map. *Then the server can handle the request from
every client correctly.


You can check it in PR[1]. Thank you :D

[1] https://github.com/apache/iotdb/pull/1846


-- 
Best,
Xiangwei Wei

Reply via email to