influxdata / influxdata/influxdb
[v3] Support for Raspberry Pi 5 (ARM 64) for InfluxDB v3 Core/Enterprise
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
__Use case:__
Why is this important (helps with prioritizing requests)?
Since InfluxDB 3 Core/Enterprise comes in ARM 64 images which is also the architecture supported in the new Raspberry Pi 5, I thought would be great to demo the database in that. Raspberry Pi is widely used in Industrial IoT and by InfluxDB's IoT developer community, specially in projects like Home Assistant, which currently supports InfluxDB v2.
Having InfluxDB v3 Core working seamlessly would be valuable for many users.
Hardware: Raspberry Pi 5 - ARM 64-bit
OS: Debian GNU/Linux 12 (bookworm)
Software: InfluxDB 3 Core/Enterprise (alpha)
__Proposal:__
Investigate InfluxDB 3 Core/Enterprise memory allocation requirements and add better support for ARM64 architectures with larger page sizes or at least provide a clear error message with a workaround in the installation wizard perhaps.
__Current behaviour:__
Following error results in crash of installation while following 'simple install' wizard on the Raspberry Pi 5.
```bash
Starting InfluxDB
├─ Node ID: node0
├─ Storage: File Storage
├─ '/home/pi/.influxdb/influxdb3' serve --node-id='node0' --http-bind='0.0.0.0:8181' --object-store=file --data-dir /home/pi/.influxdb/data
: Unsupported system page size
: Unsupported system page size
: Unsupported system page size
memory allocation of 256 bytes failed
└─ ERROR: InfluxDB failed to start; check permissions or other potential issues.
```
Upon investigation, I found that Raspberry Pi 5 defaults to a 16KB page size, while InfluxDB 3 Core (via jemalloc) requires a 4KB page size.
```bash
pi@raspberrypi:~/Dev $ getconf PAGE_SIZE
16384
```
__Desired behaviour:__
InfluxDB 3 Core/Enterprise support for Raspberry Pi 5 (if possible earlier versions of Pi (non ARM 64)) for hobbyist and industrial IoT developers.
Possibly by detecting and handling different page sizes dynamically instead of hardcoding 4KB or allowing users to configure this like how Home Assistant does:
__Alternatives considered:__
Workaround: Manually updating the Raspberry Pi’s `/boot/config.txt` to force a 4KB page size fixes the issue and I was able to complete InfluxDB 3 Core on Raspberry Pi 5.
Ref: https://stackoverflow.com/questions/77674853/polars-jemalloc-error-unsupported-system-page-size
```bash
# Force 4KB memory pages to fix InfluxDB 3 Core startup issue
kernel=kernel8.img
```
Contributor guide
Research direction
Start by reproducing the crash through the simple install wizard on a Raspberry Pi 5 running Debian 12, and confirm the 16KB value with getconf PAGE_SIZE. Trace the InfluxDB 3 startup and jemalloc allocation path, then determine whether 16KB pages can be supported or whether the wizard can report the limitation and workaround clearly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- raspberry-pi, rust
- Domain
- databases, embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100