@MattFox Makes sense. This instance I run at home has been migrated since v3 and never had the NoSQL module installed until recently, when I realized "Hey, this thing is still running on H2"
In any case Mango was incredibly easy to set up in Docker, and I have it working with PostgreSQL in another container. I pulled all the data off the slow PC onto my workstation, exported my configuration and my historical data into a massive CSV, and reimported it into another container. Tested it and then dropped it back onto the box. Docker is great at this sort of job and will make migrating instances between hardware effortless.
Here is a docker-compose.yml for reference if anyone wants to set up a containerized system quickly using SQL. mangoNoSqlDatabase is mounted to an empty directory, as that's the simplest way to remove a module from a Docker image.
version: "3"
services:
mango:
image: ghcr.io/radixiot/mango:latest
container_name: mango
environment:
- TZ=America/Regina
volumes:
- ./mango-data:/opt/mango-data
- ./empty:/opt/mango/web/modules/mangoNoSqlDatabase
ports:
- 8080:8080
- 8443:8443
restart: unless-stopped
depends_on:
- postgres
postgres:
image: postgres
user: 1000:1001
environment:
POSTGRES_USER: mango
POSTGRES_PASSWORD: password
volumes:
- ./pg-data:/var/lib/postgresql/data
restart: unless-stopped
then just connect to the database container with
db.type=postgres
db.url=jdbc:postgresql://postgres/mango
db.username=mango
db.password=password
in your mango.properties
Performance seems similar enough to NoSQL, at least for this ~100 point system. The Postgres container is barely consuming any resources, I'm surprised that H2 was so hungry for memory.