Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.



March 21, 2021, 2021, Sunday.

Time: 2021-03-21 9:00 PM Beijing Time

WeMeet url: https://meeting.tencent.com/s/xoV6xnkBw5oT
Host: Yuyuan Kang

Status Updates

1. Announce

Apache IoTDB 0.11.13 is still in progress

2. Bug Fixes

  • ISSUE-2505 ignore PathNotExistException in recover and change recover error to warn
  • IOTDB-1119 Fix C++ SessionDataSet bug when reading value buffer
  • Fix SessionPool does not recycle session and can not offer new Session due to RunTimeException
  • ISSUE-2588 Fix dead lock between deleting data and querying in parallel
  • ISSUE-2546 Fix first chunkmetadata should be consumed first
  • IOTDB-1126 Fix unseq tsfile is deleted due to compaction
  • IOTDB-1137 MNode.getLeafCount error when existing sub-device
  • ISSUE-2624 ISSUE-2625 Avoid OOM if user don't close Statement and Session manually
  • ISSUE-2639 Fix possible NPE during end query process
  • Alter IT for An error is reported and the system is suspended occasionally
  • IOTDB-1149 print error for -e param when set maxPRC<=0
  • IOTDB-2648 Last query not right when having multiple devices
  • Delete mods files after compaction
  • ISSUE-2687 fix insert NaN bug
  • ISSUE-2598 Throw explicit exception when time series is unknown in where clause
  • Fix timeseriesMetadata cache is not cleared after the TsFile is deleted by a compaction
  • ISSUE-2611 An unsequence file that covers too many sequence file causes OOM query
  • IOTDB-1135 Fix count timeseries bug when the paths are nested
  • ISSUE-2709 IOTDB-1178 Fix cache is not cleared after compaction
  • ISSUE-2746 Fix data overlapped bug after the elimination unseq compaction process
  • Fix getObject method in JDBC should return an Object
  • IOTDB-1188 Fix IoTDB 0.11 unable to delete data bug
  • Fix when covering a tsfile resource with HistoricalVersion = null, it鈥檒l throw a NPE
  • fix the elimination unseq compaction may loss data bug after a delete operation is executed

3. New Features

  • Add explain sql support

4. Improvements

  • IOTDB-1140 optimize regular data encoding
  • Add more log for better tracing
  • Add backgroup exec for cli -e function
  • Add max direct memory size parameter to env.sh

5. Closed development

Aligned Timeseries & Device Template

Goal: Eliminate duplicate timestamps, eliminate duplicate definitions of leaf nodes, thereby reducing metadata memory usage and metadata storage

Solutions:

1) By aligning the time series, duplicate timestamps can be eliminated.

2) Add device templates to eliminate duplicate definitions of leaf nodes

Typical Scenarios: To manage 5 billion device * 29 measurements, the measurements on a device are aligned by timestamp

1) SQL statement for aligned timeseries:

create aligned timeseries root.sg.d1.(s1 FLOAT, s2 INT32)

create aligned timeseries root.sg.d1.(s3 FLOAT, s4 INT32) with encoding=(RLE, Grollia), compression=SNAPPY

insert into root.sg.d1(time, s1, s2, s3, s4) values(1, 1, 2.0, 1, 2.0)

insert into root.sg.d1(time, (s1, s2), s5) values(2, 1, 2.0, 3)

select s1, s2 from root.sg.d1

select s1, s3 from root.sg.d1

2) SQL statement for device template:

set storage group root.beijing

create device template temp1(
(s1 INT32 with encoding=Gorilla, compression=SNAPPY),
(s2 FLOAT with encoding=RLE, compression=SNAPPY)
)

set device template temp1 to root.beijing

create device template temp2(
((s1 FLOAT, s2 INT32) aligned with encoding=(Gorilla, RLE), compression=SNAPPY),
(s3 FLOAT with encoding=RLE, compression=SNAPPY)

show device template
+--------+-------------+----------+----------+-------------+
|template| measurement | datatype | encoding | compression |
+--------+-------------+----------+----------+-------------+
| temp1   | s1                | INT32      | Gorilla     | SNAPPY      |
| temp1   | s2                | FLOAT     | RLE          | SNAPPY      |
| temp2   | s1                | FLOAT     | Gorilla     | SNAPPY      |
| temp2   | s2                | INT32     | RLE          | SNAPPY      |
| temp2   | s3                | FLOAT     | RLE          | SNAPPY     |
+--------+-------------+----------+----------+-------------+

Data Management

1) Meta data:

  •  Implement device template (a group of measurements)
  • Eliminate redundant definition of the leaf node

2) Data in Memory:

  • New data structure for multiple columns sharing a same timestamp
  • Eliminate redundant timestamp
  • Reduce memory consumption

3) Data on disk:

  • Designed new TsFile format
  • Support data of multiple columns sharing a same timestamp
  • Reduce disk consumption

Result:

       One of the scenarios:

...

Write efficiency (row/sec)

...

Single-state, old strategy

...

190,624

...

Single-state, new strategy

...

487,656

...

Distributed, 3 nodes 1 replica, new strategy

...

1,095,331

6. Open Floor
new ideas, feedback, suggestions.

1) [Discussion] Monthly Contributor Award

February‘s “Contributors of The Month”

  • sunjincheng121(Jincheng Sun), with 132571 lines changed and 8 mails sent;
  • HTHou(Haonan Hou), with 2116 lines changed and 4 mails sent;
  • neuyilan(Houliang Qi), with 2692 lines changed and 3 mails sent.

There are also 22 other contributors who contributed to IoTDB this month.

7 New contributors submitted their first PR in IoTDB

  • wuzhaojie(Zhaojie Wu),
  • WilliamSong11(Yuxiang Song),
  • GLBB,
  • THUMarkLau(Xuxin Liu),
  • chenjun40,
  • 543202718(Haoyu Wang)
  • jxlgzwh(Wenhao Zhong).

2) [Proposal] Hackthon (April)

Mar 7st, 2021, Sunday.

Time: 2021-03-07 9:00 PM Beijing Time

Host: Kaifeng Xue

Agenda

Status Updates 

Announce

Apache IoTDB 0.11.3 and 0.12.0 is still in progress

Improvement

...

Chinese:

https://github.com/apache/iotdb/blob/0f48ba2de83d2b1c0da00bba8485baa1c60abe28/docs/zh/UserGuide/Operation%20Manual/Triggers.md

...

#2732 [ISSUE-2493] show child nodes path

Image Removed

...

At present, the executeBatch method in JDBC is executed separately for each statement.

...

Now we let execute batch statment in JDBC really execute in batch at server.

...

Currently, only one aggregated measurement is supported in this statement to avoid result ambiguity.

This PR is to support multiple aggregated measurements in group by level statement.

Future work:

1 performance improvement in distribute version

2 performance improvement in IoTDB in special user case

3 solve issues in Jira and github

Open Floor 

new ideas, feedback, suggestions.

1. [Discussion] Monthly Contributor Award

Goal: Keep community more vibrant and attract new contributors

Attention: Not really an award, just a title that we can recognize with an announcement on the official wechat account

Preliminary measure:

...

The final equation would be S=0.8Z(code)+0.1Z(doc)+0.1Z(mail)

2.[Discussion] Community Mentors

  • Call for mentors and plans
  • Q & A docs(maintained in Github issue,shared by all groups)
  • start up docs (mentor should provide some basic information doc such as code repository, design doc, experiment doc and official account)
  • Wechat group
  • Phase Feedback
  • Sign up : 45 people
  • To be as commiter : 17
  • Users needing professional help : 5
  • Both : 23

3.[Proposal] Hackthon (April)

issue:provide by people who interested in

https://github.com/apache/iotdb/issues/2715

provide a templet for consistency

num of member in a group:

<= 5

1 committer + 2-4 non-committer

aimed participants:student + contributor in community

reward:cash

1st price 30-50k RMB

T-shirt, backpack, bottle with IoTDB logo

agenda:

3.8-3.15 design of propaganda

The end of Mar: sign in

April: get familiar with each other and communicate with mentor

May: coding

10th Meeting Schedule

Time: 2021-03-21

Host: Yuyuan Kang

Feb 21st, 2021, Sunday.

Host: Yuan Tian

Online Meeting (Tencent Meeting):

...

meeting room ID: 690 200 054

password: 0221

Time: 2021-02-21 9:00 PM Beijing Time

Host: Yuan Tian

Agenda

Status Updates 

Announce

Apache IoTDB 0.11.3 and 0.12.0 is still in progress

Improvement

#2596 Improve the flush pipeline

We used PublicBAOS(which extends ByteArrayOutputStream in java) as container to hold the encoded data. Encoding task call the write method to put data into it and IO task call the read method to read data from it, persist it to disk.

However, the methods we called in ByteArrayOutputStream are mostly synchronized. Although we won't call the method of the same object simultaneously in the stage of encoding and io, the Biased locking(which is added as a feature after JDK1.6 and is announced to be deprecated in JDK15) will cause the encoding stage to be influenced by the io stage.

The detailed analysis and experiments can be seen in confluence(https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=173085039&preview=/173085039/173085040/Pipeline%E5%88%86%E6%9E%90.pdf)

#2629 [Github Issue 2624, 2625] Avoid OOM if user don't close Statement and Session manually

When reusing IoTDBStatement to do queries. The Set in statementId2QueryId is never removed unless the statment is clsoed.

This will cause OOM if using a Statement is used for too long time.

...

#2658 Enhancement: add backgroup exec for cli -e function

Previously, there were some problems while we use the following command to execute in background. Now, we can successfully use it.

nohup ./start-cli.sh -e

#2684 Improve the quality and efficiency of code formatting

The Spotless with google-java-format now in effect.

Notice:

This change touched most of single java file in the repository(70K+). So

most of PRs will require a rebase, follow the steps below:

1. git checkout YOUR_PR

2. git cherry-pick b1261ecb5893ee0d357fec311b4d92ff9039a989

3. mvn spotless:check

4. mvn spotless:apply

5. git add .

6. git commit -m 'Apply Spotless'

# asf git@github.com:apache/iotdb.git (fetch)

# Pull the latest master branch

7. git checkout -b asf_master asf/master

8. git checkout YOUR_PR

9. git rebase asf_master

# Resolve your conflict:

# NOTE: `Accept Yours` for your PR involves files, and `accept Theirs` for

other files.

10 git rebase --continue

# Double check

11. mvn spotless:check

# If you see "build success" successfully, it is proved that rebase has

been successful.

12. mvn clean package -DskipTests

# If you see "build success" successfully, you can push your changes to you

PR branch.

Open Floor 

new ideas, feedback, suggestions.

[Discussion] Monthly Contributor Award

Goal: Keep community more vibrant and attract new contributors

Attention: Not really an award, just a title that we can recognize with an announcement on the official wechat account

Preliminary measure:

...

The final equation would be S=0.9Z(code)+0.1Z(mail)

两个方向上的称号:

代码贡献+代码review贡献

[Discussion] Community Mentors

  • Call for mentors and plans
  • Q & A docs(使用 Github issue 维护,所有小组共享)
  • start up docs (导师提供的上手基础资料,如代码仓库、设计文档、如何调、经验分享、公众号等,导师之间可以共享) —— 组建小组群之前
  • Wechat group
  • Phase Feedback(阶段性反馈)

Sign up : 45 people

  • To be as commiter : 17
  • Users needing professional help : 5
  • Both : 23

报名人群可以细分:已经熟悉IoTDB但是对于设计不够熟悉,如何入手修改

感兴趣的模块:查询 / 存储 / 分布式 / 实时计算 / 全部

灵活、不限时间,没有集中的开发时间,与现有社区的committer建立联系

每个导师负责 1-3 人,作为小组

2月10日之前:建群,start up文档,找导师

[Proposal] Hackthon (April)

开issue:大家罗列一些想法

https://github.com/apache/iotdb/issues/2715

1 committer + 3 non-committer

面向人群:校内学生+社区贡献者

奖励:现金奖励形式

流程:

报名(3月下旬)

提前1个月确定导师与学生,一个月内可以进行线上沟通交流与设计(4月份)

两三天的集中code时间(5月初)

奖励评定(code结束后)

New Committers公众号推送

祥威、禹任 采访

9th Meeting Schedule

Time: 2021-03-07

Host: Kaifeng Xue

Meeting bi-weekly Sunday at 9:00 pm Beijing Time.

...

https://shimo.im/docs/dt8C9cQtKHGgkH89

Status Updates

Announce

Apache IoTDB 0.11.2 released (01-23)

...

Open Floor
new ideas, feedback, suggestions.

1. [Discussion] Monthly Contributor Award

Goal: Keep community more vibrant and attract new contributors
Attention: Not really an award, just a title that we can recognize with an announcement on the official wechat account
Preliminary measure:
Amount of PR and reviews on GitHub (codes amount)
Activity on mailing lists
Contributions(publicity, tutorial, etc.) on social media (e.g. WeChat official account, CSDN, Stack Overflow)
Being a conference host or event organizer will also count.

2. [Discussion] Community Mentors

Call for mentors and plans
Q & A docs
start up docs
Wechat group

...

  1. About meet up
    We held the first Apache IoTDB offline meetup successfully in 29 November. We mainly talked about the experience of using IoTDB and the development of it. But as it's the first time, we have many aspects to improve.

    1. Add free talk
      In last meetup, the main activities we held were the lectures about IoTDB using and developing. We got a lot from these lectures. But the offline meetup is also a good chance to help community members get to know each other. So I think, we can add free talk in meetup, maybe academic or not, to offer this chance.

    2. Bring the summary of meetup back to community
      For various reasons, some friends in the community can't join meetup offline. Therefore, we need to record the meetup by video and doc, and share the summary of meetup to them by mailing list or IoTDB website.

  2. Community gift
    We plan to design some community themed little gifts for contributors who has contributions (code, doc or something else) to the community. At present, we have completed the design of mouse pad. Next, we can collect the personal information of the contributors to mail these gifts.

    Image Modified

  3.    Call for community mentors
    We used to propagate IoTDB in many Chinese universities, and many students are interested in IoTDB. However, the development threshold of IoTDB may be difficult for some newcomers who have no development experience.
    So we think if some community members are familiar with some aspects of IoTDB and interested in developing new people. They can be community mentors to help these newcomers by explaining some code and introducing some simple issues etc.
    We can start an enrollment program to recruit mentors, and after that start a vote about whether they can be the mentors.

  4. About IoTDB publicity
    For a long time, due to the lack of special attention to publicity, the effect of IoTDB publicity is not good. This also leads to the lack of contributors and the unknown situation of IoTDB.
    Therefore, next we can try to put IoTDB's promotional materials, documents and conference videos like the meetup video on more platforms, like IoTDB website, WeChat official account, Bilibili or even Tiktok.

...