Hi Chris, 

I really appreciate that there is such a discussion on the version number of 
IoTDB in the community, and here are some of my thoughts.

I believe that upgrading the first version number requires consideration of 
various impacts. The compatibility of interfaces between versions is one 
aspect. At the same time, it is also necessary to consider whether the 
improvements of the version will have a significant impact on other aspects of 
the system, such as stability and maturity. These are also important factors 
that users pay attention to, so we want to make our users perceive this through 
the upgrade from 1.x to 2.0.

Involving table model to IoTDB has the following specific changes:
1. Milestone changes in functionality: With the addition of the table model, 
IoTDB will have two sets of metadata models. This is an important large-scale 
update of a module, representing that IoTDB will be able to support and connect 
with traditional developer habits in the future, which will have a milestone 
impact on users.
2. Upgrade of code architecture: Due to the table model, IoTDB's data file has 
been upgraded from TsFile v3 to v4, which involves adjustments to the file 
structure. And also, we add a query engine for the table model. These are all 
major upgrades to code architecture.
3. Extensive impact and changes to the code: Although we are still in the 
development stage of the table model, just the first PR[13119], the table model 
has affected 1266 files (out of a total of 5943 Java files), involving 116973 
lines+ and 13196 lines- of code. This scope of code impact far exceeds the 
impact range of an ordinary feature.
4. Impact on system stability and maturity: Although we will strive to reduce 
the impact of the above extensive functional changes and code modifications on 
the performance and stability of the entire system, as software developers, we 
all understand that achieving the above goals still requires some time to 
mature, and the impact on stability is also part of what users perceive.

I have also looked at some requirments of the upgrade of the first version 
number in Apache projects, but it seems that there is no clear standard. The 
introduction of incompatibilities in features or interfaces you mentioned is 
indeed an important consideration (Spark also explicitly mentions it, Apache 
Spark Release 3.0.0), but more importantly, it is whether developers want to 
convey to users "this is a major version change, which may have a significant 
impact on users." So, like other Apache projects (such as Apache Doris), they 
will also consider architectural upgrades, changes in metadata, or underlying 
data formats as factors for upgrading the first version number (Apache Doris 
Release Versioning).

So we still hope that the table model version number will make its debut to our 
users as version 2.0.

---------
Best, Stefanie

On 2024/08/25 07:40:50 Christofer Dutz wrote:
> Usually major version upgrades introduce breaking changes. As far as I 
> understood it, it just adds features. That would qualify for a second digit 
> increase.
> 
> If we do a major version bump we should also consider doing some other 
> refactoring, that we postponed till the next major release.
> 
> Chris
> 
> Gesendet von Outlook für Android<https://aka.ms/AAb9ysg>
> ________________________________
> From: Yuan Tian <jackietie...@gmail.com>
> Sent: Sunday, August 25, 2024 7:37:21 AM
> To: dev <dev@iotdb.apache.org>
> Subject: Upgrading version from 1.4.0-SNAPSHOT to 2.0.0-SNAOSHOT for master 
> branch
> 
> Hi all,
> 
> Given the significant changes that the table model introduces to IoTDB and
> the associated upgrade from TsFile version V3 to V4, it is reasonable to
> consider updating the version on the master branch to 2.0.0-SNAPSHOT. This
> approach aligns with the intention to release the table model with the
> version number 2.0.0, signifying a major update to the system.
> 
> For the tree model, which will continue to evolve with bug fixes and
> performance improvements on the 1.X.X series (such as the upcoming 1.3.3
> version), it's important to maintain clear versioning to differentiate
> between the stable, incremental updates and the more substantial changes
> introduced by the table model. What do you think? Best regards,
> 
> ------------------------
> 
> Yuan Tian
> 

Reply via email to