Hi
I don't know about Android. I am using the jRDC servers running on a Windows machine as a data server for both local and remote apps. I would like to include a variance / standard deviation function at the server end in B4J so I can calc aggregates including std deviation with only the output being transmitted to networked and local clients. Having to write a variance/std deviation function for sqLite is a bit crazy. It should be included as a standard function in sqLite. I am using sqLite because I am running it using an sd card as the storage medi in an ARM STM32H743 which has 1M of Ram and 2M of flash. It works very well. I also store the data in an exact copy of the embedded DB on the client PC in real-time over an ethernet (WiFi) link. I did it this way so there is no problem with data typing and it's easier to maintain.
To get over the problem on the server PC I either calculate the variance/std dev using Welford's method using Qt on half hour intervals of the data or I use MS SQL Server with the SQLite database linked to this server. MS SQL Server has a good range of standard aggregate functions including std deviation, but it's a bit big, complicated and expensive for general use.
I would much rather do everything in native sqLite as it's such a good fit for storing large amounts of homogeneous real-time data. It's also fast. One of my sqLite DB's is 6.81 Million records of 16 doubles and 26 bytes with an index on a double (the Julian Date/Time UTC). It can count the total number of these records in only 34 seconds. Of course if I retrieve only a small subset of this data by julian date/Time it generally responds in milli seconds (Hard disk seek time).
Using the Write Ahead Log (WAL) sqLite is also pretty robust against power loss, program termination etc.
Best regards
Rob
PS If anyone is thinking of running an sqLite DB on an embedded ARM processor and they need proven Virtual File System Drivers (VFS Layer) then go to the following link:
Power Monitor using sqLite 3 Amalgamation and SD Card
I know this is outside the scope of this forum, but I am using a headless B4J app to get the data from this system and using the jRDC Server and MS SQL Server to make the data available to other B4J and Qt UI Apps, with sqLite being the "central" db.