On Fri, Dec 21, 2018 at 04:24:20PM -0500, Andrew Dunstan wrote: > On 12/21/18 4:04 PM, Thomas Munro wrote: > > On Sat, Dec 22, 2018 at 7:32 AM David Fetter <da...@fetter.org> wrote: > >> On Sat, Dec 22, 2018 at 07:03:32AM +1100, Thomas Munro wrote: > >>> That talks about using -D__ANDROID_API__=23 (or presumably higher) to > >>> make sure that sigtimedwait is exposed by signal.h. Something similar > >>> may be afoot here. > >> That worked perfectly...to expose the next issue, namely that at least > >> part of the System-V IPC mechanisms have been left out. Do we support > >> other systems where this is true? > > Interesting, they left that stuff out deliberately out basically > > because it all sucks: > > > > https://android.googlesource.com/platform/ndk/+/4e159d95ebf23b5f72bb707b0cb1518ef96b3d03/docs/system/libc/SYSV-IPC.TXT > > > > PostgreSQL currently needs SysV shm just for the small segment that's > > used for preventing multiple copies running in the same pgdata. You'd > > need to find a new way to do that. We don't use SysV semaphores > > (though we can) or message queues. > > That doc says: > > Killing processes automatically to make room for new ones is an > important part of Android's application lifecycle implementation. > > How's that going to play with Postgres? Sounds like the OOM killer on > steroids.
I don't know precisely how it's going to play with Postgres, but Termux does supply a Postgres in its native packages. That package appears to work, at least in the single-connection case, so they're doing something somehow to get it up and running. It could be that Android won't be a platform we recommend for high workloads, at least as long as these things remain true. Best, David. -- David Fetter <david(at)fetter(dot)org> http://fetter.org/ Phone: +1 415 235 3778 Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate