Hi, On 2018-02-22 21:16:02 +0100, Magnus Hagander wrote: > You could do that, but then you've moving the complexity to managing that > list in shared memory instead.
Maybe I'm missing something, but how are you going to get quick parallel processing if you don't have a shmem piece? You can't assign one database per worker because commonly there's only one database. You don't want to start/stop a worker for each relation because that'd be extremely slow for databases with a lot of tables. Without shmem you can't pass more than an oid to a bgworker. To me the combination of these things imply that you need some other synchronization mechanism *anyway*. > I'm not sure that's any easier... And > certainly adding a catalog flag for a usecase like this one is not making > it easier. Hm, I imagined you'd need that anyway. Imagine a 10TB database that's online converted to checksums. I assume you'd not want to reread 9TB if you crash after processing most of the cluster already? Regards, Andres Freund