Agreed that a traditional DB is going to perform better. FWIW, I’ve got a couple of other follow-up thoughts to offer here too… I haven’t done a comparison between performance of the different schemas, but defining a SQLite DB Connection and then using the associated Tag History provider to store tag history uses a different schema for the SQLite file than if you use the Internal History option to explicitly create a Tag History provider. If you wanted to try that out (and still have it write to your USB drive), you could:
Create a folder on your USB drive:
Add a separate bind-mount to the specific path that Ignition places internal history tag provider backing SQLite DBs.
docker run ...
Go to Config → Tags → History and create a new tag history provider of type “Internal Historian”.
I’ll let someone else chime in on whether one may perform differently than the other–I didn’t want to not mention this option just because I hadn’t fleshed out performance benchmarks. It might not net you anything.
I also wonder whether you’re having trouble with performance of the attached drive, too. There is such a wide quality/performance variance of USB flash media that it is pretty easy to get one with absolutely atrocious write performance. Same goes with MicroSD cards if you’re running on a Pi. You didn’t mention the specific errors either–it could be the internal config.idb that is causing trouble on a slow drive. If you’ve got a really fast USB drive connected with good R/W performance (over USB3 interface on a Rasp Pi 3 or better), it might be worth trying to just run the container with a bind-mounted data volume against your USB drive (i.e.
docker run ... -v /media/usb/ignition-data:/data ...).
Hope this helps, just trying to think of some other things you could try to get things working.
PS: I didn’t have any troubles with the UID/GID=1000 (albeit not yet on an actual 32-bit RaspPi on armhf)… Container logs and architecture (output of
uname -a) would help.