Hi all,

A quick update on PR #18538 after the latest review round:
https://github.com/apache/iotdb/pull/18538

I made the following follow-up changes.

   1.

   Kept the Edge distribution strictly additive


   -

   The final artifact name is apache-iotdb-${version}-edge-bin.zip.
   -

   The Edge-specific system properties were moved to
   iotdb-core/node-commons/src/assembly/resources/conf/edge/.
   -

   The standard all-bin, DataNode, ConfigNode, and integration-test
   assemblies explicitly exclude edge/**, so the Edge defaults cannot leak
   into existing packages.
   -

   A full distribution build continues to produce all existing artifacts,
   with the Edge archive added as one more artifact.


   2.

   Refined the Edge lifecycle scripts and packaged tools


   -

   start-edge.sh now follows the existing start-script approach and reuses
   the configuration-aware port checks. It also resolves consistent home,
   configuration, data, and log directories for the ConfigNode and DataNode
   running in the merged process.
   -

   stop-edge.sh now verifies that a PID belongs to the Edge process from
   the exact IoTDB installation before terminating it. It handles stale or
   missing PID files and can locate the matching Edge process by its
   installation home. The Windows stop script received the corresponding
   safety check.
   -

   Node-independent tools remain in the Edge archive. Only tools that are
   incompatible with the merged process are excluded, including
   AINode-specific tools and the daemon, destroy, and health-check scripts. In
   particular, destroy-all.sh is not packaged in the Edge archive.


   3.

   Updated the documentation

README.md, README_ZH.md, and CLAUDE.md now document the Edge artifact,
configuration location, start/stop commands, retained tools, and the
dedicated integration-test commands.

   4.

   Added a dedicated Edge integration test and GitHub workflow


   -

   A new EdgeIT Maven profile and IoTDBEdgeBasicIT test start the actual
   packaged Edge ZIP through sbin/start-edge.sh.
   -

   The test covers basic writes and reads in both the Tree and Table
   models, then stops the process through sbin/stop-edge.sh and verifies
   cleanup.
   -

   A standalone “Edge IT” GitHub workflow now runs alongside the existing
   workflows. It first builds the full distribution and then runs only the
   Edge-specific IT, so the existing distribution artifacts are still built
   before the new Edge test is executed.
   -

   Failure logs and Failsafe reports are uploaded by the workflow for
   diagnosis.

Validation results:

   -

   The local clean distribution build passed and produced the existing
   artifacts plus the Edge ZIP.
   -

   The local Edge IT passed both test cases with no failures or errors.
   -

   The dedicated Edge IT GitHub workflow passed:
   https://github.com/apache/iotdb/actions/runs/33285987448

All of these changes have been pushed to the PR branch. Further reviews and
suggestions are welcome.


Best regards,

Yuan Tian

On Sat, Aug 29, 2026 at 3:45 PM Yuan Tian <[email protected]> wrote:

> Hi all,
>
> Thank you for the feedback and parameter suggestions.
>
> I have now submitted PR #18538, which implements the first two steps
> discussed in this thread:
> https://github.com/apache/iotdb/pull/18538
>
> First, the PR adds an Edge-specific configuration and JVM profile
> targeting about 512 MiB total process RSS. I tuned and validated it on both
> x86 and Raspberry Pi 4B. On the Raspberry Pi, I ran 21 test groups of 30
> minutes each across the aligned tree, non-aligned tree, and table models.
> All runs completed with zero failed points and no OOM. The results also
> show that workload shape matters, especially for the 10,000 × 1 case, which
> was throughput-limited.
>
> A concise English report for the Raspberry Pi tests is available here:
> https://timechor.feishu.cn/docx/Hlf0dyQ4FoQsf4xEFnSc4TTknIg
>
> Second, the PR introduces org.apache.iotdb.edge.EdgeNode, which starts the
> ConfigNode and DataNode in a single JVM while keeping the existing RPC
> communication path for now. It also adds the
> apache-iotdb-edge-${version}-all-bin package and a single pair of
> start/stop scripts.
>
> Xuan, regarding the 1 MiB sort and modification buffers: I agree that
> those limits would be too restrictive, so the current Edge profile does not
> override them to 1 MiB.
>
> Wenwei, thank you for the compaction and TsFile suggestions. The current
> PR uses the parameters validated in my test runs and does not yet include
> every proposed override. I would be happy to compare these settings further
> during review.
>
> Chris, regarding the previous CtrlX Edge application you mentioned: I was
> not able to find the earlier code. Since the bootstrap logic is relatively
> straightforward, I implemented a new EdgeNode instead. It starts the
> ConfigNode on a background thread, waits for its internal RPC endpoint to
> become ready, and then starts the DataNode in the same JVM.
>
> The direct in-VM communication path remains the next step after this PR.
> Reviews and further suggestions are very welcome.
>
> Best regards,
>
> -------------------------------
> Yuan Tian
>

Reply via email to