Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jaw02-0005vv-EX for pgsql-docs@arkaria.postgresql.org; Tue, 19 May 2020 06:45:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jaw01-000783-AQ for pgsql-docs@arkaria.postgresql.org; Tue, 19 May 2020 06:45:13 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jaw00-00077w-T3 for pgsql-docs@lists.postgresql.org; Tue, 19 May 2020 06:45:13 +0000 Received: from mail-il1-x143.google.com ([2607:f8b0:4864:20::143]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1javzy-0003v0-Ee for pgsql-docs@lists.postgresql.org; Tue, 19 May 2020 06:45:11 +0000 Received: by mail-il1-x143.google.com with SMTP id o67so7711785ila.0 for ; Mon, 18 May 2020 23:45:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=grillet-co-uk.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hcpMGxGYpPdHRK5Wr+TBGkn5FY28YmgvkMe0I8DZ47M=; b=VYT0g86LYWDJ2Ug00kfHi/Mi/kzI7GIQCobyqENPfh9Oa2DklpENNSEV89SJPH4eGV DLxw+W8r9A+fCfsPdCNUT2vGKMARnhbummrcZcafuvVeU9qRFqSYNmYN0uNc/jxO+oiZ Z31Odwyoh1JKYyJxXftHV7yPJBVzQQ+MtuAz7937yTIbR639B13PzVXEIJVtzs2OV4t8 mJtPgsi0txBBwCQVK4DeakzPezzOuz+r4rc4/Q1VHvVjiffIx5Gb4BHQ5J9tEP6YcDqs QRy4bZWcZexQwHAO9GVMRHIB+1medzu+plYOF9WWZAPkSrUchreGeXoUj804RN0ES7iq HEkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hcpMGxGYpPdHRK5Wr+TBGkn5FY28YmgvkMe0I8DZ47M=; b=gTPmZZZFfxzQ6ubEJ7F1gGRzoWm4/St+PBaoAxjcVEfBq9xFn8Ysk1dL4slgosVHli BQZSN3Z8T8cn1ueDY4jBbyEeeDHmvhmkFQfXtDHu3Psksho4m92+dYMMt5GzkQc/Q9iY /F0LW+yKd31dOzAdsV/pDMZX2CEcIDUtelX5R8qtcwDc/2owqs4wtCLsqQB++1CMIMBB ocdd2MCUv9hj4xR9NdtTlqNW6Zcaz35KYrGOQ7trIc4qXPNdXz9oaXwSkWLxjWITXMHs 4wN6cl7C/E8QyPLc70HgqYnnzqqhs94kbzlN5euUt7Ox3rG3NL0g5ZDQso+oQmxfP17O zr6A== X-Gm-Message-State: AOAM532E18OY8xM+JcLOzoTGGEm0mOUoryfCPq3Z9szf+F/OhsQJmEIq y/ZjhiVukWrTo+AZ1GkQ8G+SdiplGKNdNUeNmh/NWA== X-Google-Smtp-Source: ABdhPJzl2T0DcPX8mekXHqYCcYr0bOBeTzHp9G2nBNtCeLv5cQBIl5vJ+IRiBOjZf5N96zhpR3v0k3vVZyFnbX+ZwK0= X-Received: by 2002:a92:8144:: with SMTP id e65mr21071122ild.242.1589870709054; Mon, 18 May 2020 23:45:09 -0700 (PDT) MIME-Version: 1.0 References: <20200517152851.GA31376@alvherre.pgsql> <39586b2ad7ee14a50fd3aacdc412b6d826da0039.camel@cybertec.at> In-Reply-To: <39586b2ad7ee14a50fd3aacdc412b6d826da0039.camel@cybertec.at> From: Andrew Grillet Date: Tue, 19 May 2020 07:44:57 +0100 Message-ID: Subject: Re: Add A Glossary To: Laurenz Albe Cc: =?UTF-8?Q?J=C3=BCrgen_Purtz?= , pgsql-hackers@postgresql.org, Pg Docs , Erik Rijkers , Fabien COELHO , Corey Huinker , Justin Pryzby , Roger Harkavy Content-Type: multipart/alternative; boundary="000000000000da3fd005a5fa9e7f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000da3fd005a5fa9e7f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I think there needs to be a careful analysis of the language and a formal effort to stabilise it for the future. In the context of, say, an Oracle T series, which is partitioned into multiple domains (virtual machines) in it, each of these has multiple CPUs, and can run an instance of the OS which hosts multiple virtual instances of the same or different OSes. Som domains might do this while others do not! A host could be a domain, one of many virtual machines, or it could be one of many hosts on that VM but even these hosts could be virtual machines that each runs several virtual servers! Of course, PostgreSQL can run on any tier of this regime, but the documentation at least needs to be consistent about language. A "machine" should probably refer to hardware, although I would accept that a domain might count as "virtual hardware" while a host should probably refer to a single instance of OS. Of course it is possible for a single instance of OS to run multiple instances of PostgreSQL, and people do this. (I have in the past). Slightly more confusingly, it would appear possible for a single instance of an OS to have multiple IP addresses and if there are multiple instances of PostgreSQL, they may serve different IP Addresses uniquely, or share them. I think this case suggests that a host probably best describes an OS instance. I might be wrong. The word "server" might be an instance of any of the above, or a waiter with a bowl of soup. It is best reserved for situations where clarity is not required. If you are new to all this, I am sure it is very confusing, and inconsistent language is not going to help. Andrew AFAICT On Tue, 19 May 2020 at 07:17, Laurenz Albe wrote= : > On Mon, 2020-05-18 at 18:08 +0200, J=C3=BCrgen Purtz wrote: > > cluster/instance: PG (mainly) consists of a group of processes that > commonly > > act on shared buffers. The processes are very closely related to each > other > > and with the buffers. They exist altogether or not at all. They use a > common > > initialization file and are incarnated by one command. Everything exist= s > > solely in RAM and therefor has a fluctuating nature. In summary: they > build > > a unit and this unit needs to have a name of itself. In some pages we > used > > to use the term *instance* - sometimes in extended forms: *database > instance*, > > *PG instance*, *standby instance*, *standby server instance*, *server > instance*, > > or *remote instance*. For me, the term *instance* makes sense, the > extensions > > *standby instance* and *remote instance* in their context too. > > FWIW, I feel somewhat like Alvaro on that point; I use those terms > synonymously, > perhaps distinguishing between a "started cluster" and a "stopped cluster= ". > After all, "cluster" refers to "a cluster of databases", which are there, > regardless > if you start the server or not. > > The term "cluster" is unfortunate, because to most people it suggests a > group of > machines, so the term "instance" is better, but that ship has sailed long > ago. > > The static part of a cluster to me is the "data directory". > > > server/host: We need a term to describe the underlying hardware > respectively > > the virtual machine or container, where PG is running. I suggest to use > both > > *server* and *host*. In computer science, both have their eligibility > and are > > widely used. Everybody understands *client/server architecture* or > *host* in > > TCP/IP configuration. We cannot change such matter of course. I suggest > to > > use both depending on the context, but with the same meaning: "real > hardware, > > a container, or a virtual machine". > > On this I have a strong opinion because of my Unix mindset. > "machine" and "host" are synonyms, and it doesn't matter to the database > if they > are virtualized or not. You can always disambiguate by adding "virtual" > or "physical". > > A "server" is a piece of software that responds to client requests, never > a machine. > In my book, this is purely Windows jargon. The term "client-server > architecture" > that you quote emphasized that. > > Perhaps "machine" would be the preferable term, because "host" is more > prone to > misunderstandings (except in a networking context). > > Yours, > Laurenz Albe > > > > --000000000000da3fd005a5fa9e7f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I think there needs to be a careful analysis of the l= anguage and a formal effort to stabilise it for the future.

<= /div>
In the context of, say, an Oracle T series, which is partitioned = into multiple domains (virtual machines) in it, each
of these has= multiple CPUs, and can run an instance of the OS which hosts multiple virt= ual instances
of the same or different OSes. Som domains migh= t do this while others do not!

A host could be= a domain, one of many virtual machines, or it could be one of many hosts o= n that VM
but even these hosts could be virtual machines that eac= h runs several virtual servers!

Of course, Postgre= SQL can run on any tier of this regime, but the documentation at least need= s to be consistent
about language.

<= div>A "machine" should probably refer to hardware, although I wou= ld accept that a domain might count as "virtual
hardwar= e" while a host should probably refer to a single instance of OS.
=

Of course it is possible for a single=C2=A0 insta= nce of OS to run multiple instances of PostgreSQL, and people do this. (I h= ave
in the past).

Slightly more confusin= gly, it would appear possible for a single instance of an OS to have multip= le IP addresses
and if there are multiple instances of PostgreSQL= , they may serve different IP Addresses uniquely, or
share t= hem. I think this case suggests that a host probably best describes an OS i= nstance. I might be wrong.

The word "serv= er" might be an instance of any of the above, or a waiter with a bowl = of soup. It is best
reserved for situations where clarity is not = required.

If you are new to all this, I am su= re it is very confusing, and inconsistent language is not going to help.

Andrew


<= br>
AFAICT



=


On Tue, 19 May 2020 at 07:17, Laurenz Albe <laurenz.albe@cybertec.at> wrote:
=
On Mon, 2020-05-18 = at 18:08 +0200, J=C3=BCrgen Purtz wrote:
> cluster/instance: PG (mainly) consists of a group of processes that co= mmonly
> act on shared buffers. The processes are very closely related to each = other
> and with the buffers. They exist altogether or not at all. They use a = common
> initialization file and are incarnated by one command. Everything exis= ts
> solely in RAM and therefor has a fluctuating nature. In summary: they = build
> a unit and this unit needs to have a name of itself. In some pages we = used
> to use the term *instance* - sometimes in extended forms: *database in= stance*,
> *PG instance*, *standby instance*, *standby server instance*, *server = instance*,
> or *remote instance*.=C2=A0 For me, the term *instance* makes sense, t= he extensions
> *standby instance* and *remote instance* in their context too.

FWIW, I feel somewhat like Alvaro on that point; I use those terms synonymo= usly,
perhaps distinguishing between a "started cluster" and a "st= opped cluster".
After all, "cluster" refers to "a cluster of databases"= , which are there, regardless
if you start the server or not.

The term "cluster" is unfortunate, because to most people it sugg= ests a group of
machines, so the term "instance" is better, but that ship has sai= led long ago.

The static part of a cluster to me is the "data directory".

> server/host: We need a term to describe the underlying hardware respec= tively
> the virtual machine or container, where PG is running. I suggest to us= e both
> *server* and *host*. In computer science, both have their eligibility = and are
> widely used. Everybody understands *client/server architecture* or *ho= st* in
> TCP/IP configuration. We cannot change such matter of course. I sugges= t to
> use both depending on the context, but with the same meaning: "re= al hardware,
> a container, or a virtual machine".

On this I have a strong opinion because of my Unix mindset.
"machine" and "host" are synonyms, and it doesn't m= atter to the database if they
are virtualized or not.=C2=A0 You can always disambiguate by adding "v= irtual" or "physical".

A "server" is a piece of software that responds to client request= s, never a machine.
In my book, this is purely Windows jargon.=C2=A0 The term "client-serv= er architecture"
that you quote emphasized that.

Perhaps "machine" would be the preferable term, because "hos= t" is more prone to
misunderstandings (except in a networking context).

Yours,
Laurenz Albe



--000000000000da3fd005a5fa9e7f--