Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Apache IoTDB version #60

Open
5 tasks done
slawr opened this issue Nov 15, 2024 · 4 comments · May be fixed by #70
Open
5 tasks done

Update Apache IoTDB version #60

slawr opened this issue Nov 15, 2024 · 4 comments · May be fixed by #70
Assignees
Labels
enhancement New feature or request task Task not fitting other labels, e.g. project ops

Comments

@slawr
Copy link
Collaborator

slawr commented Nov 15, 2024

The current CDSP docker compose deployment uses IoTDB version 1.2.2 and was used to develop IoTDB features such as the VISSR and RemotiveLab integrations.

Several months have passed and the upstream IoTDB project is now in the 1.3.x series which brings useful enhancements such as improved sync between databases, a feature we see as useful in the CDSP Information Layer. We should therefore upgrade.

High level task outline:

  • Decide IoTDB version and create summary of likely code impact (required changes)
  • Update version used in docker
  • Check IoTDB connection in RemotiveLabs bridge
  • Check IoTDB connection in VISSR
  • Update CDSP documentation where necessary
@slawr slawr self-assigned this Nov 15, 2024
@slawr slawr converted this from a draft issue Nov 15, 2024
@slawr slawr added enhancement New feature or request task Task not fitting other labels, e.g. project ops labels Nov 15, 2024
@slawr
Copy link
Collaborator Author

slawr commented Nov 21, 2024

IoTDB version

1.3.2 was in focus as the current latest version, but 1.3.3 has just been released with useful looking improvements to existing sync and subscription features, whilst adding a new one AINode that integrates LLM AI models into timeseries SQL https://dlcdn.apache.org/iotdb/1.3.3/RELEASE_NOTES.md. So it's natural to consider jumping to that, with possible downside to lower amount of wide testing

Update: 1.3.3 was released Nov 20 '24 which gives sufficient time for major issues to become clear. It also brings various new features so decision taken to adopt it.

@slawr slawr moved this from Next to In Progress in Central Data Service Playground Jan 17, 2025
@slawr
Copy link
Collaborator Author

slawr commented Jan 21, 2025

IoTDB changes 1.2.x..1.3.3

Upstream IoTDB list of changes here: https://github.com/apache/iotdb/releases
Github compare: apache/iotdb@v1.2.2...v1.3.3

Whilst there are of course new features that we may usefully adopt here is a list of changes from above that may effect existing implementations:

  • v1.3.3
    • Storage Engine: Added new data types String, Blob, Date, and Timestamp.
    • System Management: Optimized configuration files, with the original three configuration files merged into one, reducing user operational costs.
    • Scripts and Tools: The import-tsfile script is expanded to support running the script on a different server from the IoTDB server.
  • v1.3.2
  • v1.3.0
    • [IOTDB-6194] Rename target_config_node_list to seed_config_node
    • [IOTDB-6218] Rename storage_query_schema_consensus_free_memory_proportion to datanode_memory_proportion

As a starting point the renaming of the two config variables should be checked.

Implementation notes:

  • Adding UDF library to the image
    • The UDF library binary (jar) release internal directory structure has changed. For v1.2.2 there was a directory structure and now in v1.3.3 the binaries are in a flat structure. This affects extracting the release archive in the CDSP IoTDB Dockerfile and modifying the registration script.
  • Enabling REST API used by Grafana connector
    • The three config files in 1.2.x were merged into by commit 9b2efea9a2fcd0e941a4 into the single file iotdb-system.properties. So need to edit (sed) that file instead. Also the file appears to no longer contain all properties, including the REST property, so it must now be added instead of modified.
  • IoTDB online documentation
  • Whilst some links are still valid, others such as the SQL reference manual have moved in the tree and therefore require updates.

@slawr
Copy link
Collaborator Author

slawr commented Jan 29, 2025

CDSP Docker updates

Completed CDSP Docker updates so upstream IoTDB v1.3.3 pre-built image is used and successfully starts.

Check IoTDB connection in VISSR

Confirmed VISSR can still connect and get/set data. Pre-populated some DB data and used VISSR HTML client to connect and get/set an actuator and get Vehicle.Speed. No changes necessary.

Check IoTDB connection in RemotiveLabs bridge

Used existing bridge/feeder to stream Nightdrive data into the DB using the bridge readme example. No changes necessary.

Grafana connections

Used the Vehicle.Speed down-sample example Grafana section as a sanity test. This exposed that the IoTDB config behaviour has changed requiring a different method to enable the REST API. Previously all config entries were present, now they are not. So a 'sed' to change false to true fails. Now the entry to enable it must be added. Asked upstream what the correct way to do this is, but for now simply adding the entry to make it work in the DockerFile. With that Grafana can connect to IoTDB and perform queries.

@slawr slawr linked a pull request Jan 30, 2025 that will close this issue
@slawr slawr linked a pull request Jan 31, 2025 that will close this issue
@slawr
Copy link
Collaborator Author

slawr commented Jan 31, 2025

Completed related pull request. Waiting for review comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request task Task not fitting other labels, e.g. project ops
Projects
Development

Successfully merging a pull request may close this issue.

1 participant