Thread: famous multi-process architectures

famous multi-process architectures

From
Markus Wanner
Date:
Hi,

sure you all have heard of Google Chrome. Reading their comic strips
[1], I got reminded of Postgres, because they use a multi-process
architecture [2] as well, selling it as *the* new security feature.
Maybe we can hop on that train? Something like:

   "Google got inspired by Postgres: they use the same
    multi-process architecture for their browser as Postgres
    already features for many years. Simply because it
    provides better crash-safety than threaded applications."

It might help a bit in getting rid of those puzzled faces that tend to
appear when telling people, that Postgres doesn't use threads...

Even if we don't push that, it certainly is another good and famous
example of multi-process architectures.

Regards

Markus Wanner

[1]: the architecture comic strip for Google Chrome:
http://www.google.com/googlebooks/chrome/
(processes vs threads starts at page 3)

[2]: more docs about their multi-process architecture:
http://dev.chromium.org/developers/design-documents/multi-process-architecture


PS: I'm already wondering how their Browser copes with an OOM killer ;-)

Re: famous multi-process architectures

From
"Greg Sabino Mullane"
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160


> "Google got inspired by Postgres: they use the same
>  multi-process architecture for their browser as Postgres
>  already features for many years. Simply because it
>  provides better crash-safety than threaded applications."

That's a heck of a stretch to say they were "inspired" by
Postgres. A multi-process model is hardly a unique development
of Postgres, and it's not like we don't still have crash problems:

"process exited abnormally and possibly corrupted shared memory"
"terminating connection because of crash of another server process"

I suspect Chrome doesn't have the same shared memory requirements
that a database does, of course.

- --
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 200809041014
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8

-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAki/7dUACgkQvJuQZxSWSshiAACg6cYg8GkpoNmTIV1/edxEdB0p
AkUAn2HMQPntdqjQARWA4Z9pKef7aPwj
=mpK2
-----END PGP SIGNATURE-----



Re: famous multi-process architectures

From
Markus Wanner
Date:
Hi,

Greg Sabino Mullane wrote:
> That's a heck of a stretch to say they were "inspired" by
> Postgres.

Of course! It was supposed to be a marketing phrase. Try prove the
opposite ;-)

Or in other words: the inspiration certainly didn't come from MySQL.

> A multi-process model is hardly a unique development
> of Postgres, and it's not like we don't still have crash problems:
>
> "process exited abnormally and possibly corrupted shared memory"
> "terminating connection because of crash of another server process"

Huh? IMO these are good examples of how solid Postgres is: it detects
the problem, takes appropriate measures and continues to work. Just as
Google promises for Chrome. That certainly counts as "crash-safety",
especially for low values of "safety" as used in advertising.

Note that Google explicitly states that their rendering engine or other
parts of the browser might crash. But everybody is touting Chrome's
crash safety now...  Obviously it's not about preventing crashes
completely, but being able to cope with them.

All I'm trying to say is that there might come up a new awareness of the
advantages of multi-process based designs (as opposed to threaded ones).

Regards

Markus Wanner


Re: famous multi-process architectures

From
Ron Mayer
Date:
Markus Wanner wrote:
>   "Google got inspired by Postgres: they use the same
>    multi-process architecture for their browser as Postgres

Surely apache was (and optionally still is) a more famous multi-process architecture.

But is it really a big deal?

Isn't the only difference is that in a multi-process architecture memory
is protected from other processes unless you explicitly mark it shared while
in a multi-threaded architecture memory's shared unless you explicitly mark it
thread-local?

That some OS architectures implement one or the other of these poorly -- poor
performance of either threads or processes; or poor protection of thread-local
storage -- but that seems like an OS quality-of-implementation detail.   Other
differences (which thread/process gets a signal, how are file-handled shared)
seem to be minor details that vary from OS to OS anyway.

Re: famous multi-process architectures

From
Markus Wanner
Date:
Hi,

Ron Mayer wrote:
> But is it really a big deal?

Technically no, but from a marketing perspective, I'd say. ("What?
Postgres is not multi-threaded?")

Regards

Markus Wanner