On Mon, Jul 18, 2016 at 10:03 AM, Greg Stark <stark@mit.edu> wrote:
> On Mon, Jul 18, 2016 at 2:41 PM, <AMatveev@bitec.ru> wrote:
>> And I will be really happy when there are processors with infinite
>> performance and memory with infinite size.
>>:)))
>
> Well for what it's worth there's no theoretical difference between
> multi-process and multi-threaded. They're just two different APIs to
> create shared memory and other kernel data structures and they both
> allow all the sharing you want. In the API Postgres uses everything
> starts out non-shared and we explicitly set up the parts we want
> shared. In the other nearly everything starts shared though it's
> possible to unshare parts. Once they're set up the CPU and MMU don't
> really care what kernel API was used to set them up.
That's totally true, but allocating additional shared memory after
system startup is a pain. It's true that we now have DSM, but the
fact that DSM segments can be mapped in different addresses in
different processes is a nuisance. We will still get a lot of benefit
out of having DSM, but it's not right to imply that threading wouldn't
make things easier.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company