Re: Additional Chapter for Tutorial

2021-05-21 Thread Laurenz Albe
On Fri, 2021-05-21 at 08:47 +0200, Jürgen Purtz wrote:
> Peter changed the status to 'Returned with feedback' at the end of the 
> last commit fest. I'm not absolutely sure, but my understanding is that 
> the patch is rejected.

There is a different status for that.

"Returned with feedback" means: there was review, and further work by
the author is needed, or we need more discussion if we want that or not
or how it should be, but there hasn't been a lot of feedback from the author
lately, so it seems that just moving it on to the next commitfest is not
the right thing to do.

You are welcome to re-submit the patch if you address the feedback.

Yours,
Laurenz Albe





Re: Additional Chapter for Tutorial

2021-05-21 Thread Jürgen Purtz

Hi Jürgen,

What's going to happen with this work?

If you intend to have it eventually committed, I think it will be 
necessary to make the patches smaller, and bring them into the 
commitfest app, so that others can follow progress.


I for one, cannot see/remember/understand what has been done, or even 
whether you intend to continue with it.


Thanks,

Erik


Peter changed the status to 'Returned with feedback' at the end of the 
last commit fest. I'm not absolutely sure, but my understanding is that 
the patch is rejected.


--

Jürgen Purtz






Re: Additional Chapter for Tutorial

2021-05-20 Thread Erik Rijkers

Hi Jürgen,

What's going to happen with this work?

If you intend to have it eventually committed, I think it will be 
necessary to make the patches smaller, and bring them into the 
commitfest app, so that others can follow progress.


I for one, cannot see/remember/understand what has been done, or even 
whether you intend to continue with it.


Thanks,

Erik




Re: Additional Chapter for Tutorial

2020-10-23 Thread David G. Johnston
On Fri, Oct 23, 2020 at 6:58 AM Jürgen Purtz  wrote:

> Creating such a chapter in "VII. Internals" will increase the existing
> chapter numbers 50 - 71, which may lead to some confusion. On the other
> hand the content can possibly be applied to all supported PG versions at
> the same time, which will lead to a consistent behavior. Extending one of
> the existing chapters won't work because all of them handle their own
> topic, eg.: "50. Overview of PostgreSQL Internals" (misleading title?)
> focuses on the handling of SQL statements from parsing to execution.
>
> What are your thoughts?
>
v14 has already added a new chapter, installation from binaries.  It was
not back-patched.  To my knowledge no one brought up these points - numbers
changing or back-patching the new material.  I don't see that this
enhancement needs to be treated any differently.

David J.


Re: Additional Chapter for Tutorial

2020-10-23 Thread Jürgen Purtz

On 21.10.20 22:33, David G. Johnston wrote:
I've begun looking at this and have included quite a few html comments 
within the patch.  However, the two main items that I have found so 
far are:


One, I agree with Peter that this seems misplaced in Tutorial.  I 
would create a new Internals Chapter and place this material there, or 
maybe consider a sub-chapter under "Overview of PostgreSQL 
Internals".  If this is deemed to be of a more primary importance than 
the content in the Internals section I would recommend placing it in 
Reference.  I feel it does fit there and given the general importance 
of that section readers will be inclined to click into it and skim 
over its content.


I like the idea of dividing the material into two different chapters. 
The existing part "I. Tutorial" contains the first concrete steps: 
installation, creating database and database objects, using SQL basic 
and advanced features. Its typical audience consists of persons doing 
their first steps with PG. The new material is aimed at persons 
interested in implementation aspects of PG. Therefore, the part "VII. 
Internals" seems to be the natural place to integrate it, something like 
"Architecture and Implementation Aspects" or "Architecture and 
Implementation Cornerstones".


Creating such a chapter in "VII. Internals" will increase the existing 
chapter numbers 50 - 71, which may lead to some confusion. On the other 
hand the content can possibly be applied to all supported PG versions at 
the same time, which will lead to a consistent behavior. Extending one 
of the existing chapters won't work because all of them handle their own 
topic, eg.: "50. Overview of PostgreSQL Internals" (misleading title?) 
focuses on the handling of SQL statements from parsing to execution.


What are your thoughts?

--

J. Purtz



Re: Additional Chapter for Tutorial

2020-09-11 Thread Jürgen Purtz

On 10.09.20 18:26, Peter Eisentraut wrote:

On 2020-09-02 09:04, Jürgen Purtz wrote:

On 01.09.20 23:30, Peter Eisentraut wrote:

It is mostly advanced low-level information that is irrelevant for
someone starting up,

That applies only to the VACUUM chapter. VACUUM and AUTOVACUUM are
controlled by a lot of parameters. Therefor the current documentation
concerning the two mechanism spreads the description across different
pages (20.4, 25.1, VACUUM command). Because of the structure of our
documentation that's ok. But we should have a summary page somewhere -
not necessarily in the tutorial.


There is probably room for improvement, but the section numbers you 
mention are not about VACUUM, AFAICT, so I can't really comment on 
what you have in mind.


Because of the additional chapter for the 'tutorial' on my local 
computer, the numbers increased for me. The regular chapter numbers are 
19.4 and 24.1. Sorry for the confusion. In detail:


19.4: parameters to configure the server, especially five parameters 
'vacuum_cost_xxx'.


19.10: parameters to configure autovacuum.

19.11: parameters to configure client connections, especially five 
parameters 'vacuum_xxx' concerning their freeze-behavior.


24.1: explains the general necessity of (auto)vacuum and their strategies.

The page about the SQL command VACUUM explains the different options 
(FULL, FREEZE, ..) and their meaning.


--

Jürgen Purtz






Re: Additional Chapter for Tutorial

2020-09-10 Thread Peter Eisentraut

On 2020-09-02 09:04, Jürgen Purtz wrote:

On 01.09.20 23:30, Peter Eisentraut wrote:

It is mostly advanced low-level information that is irrelevant for
someone starting up,

That applies only to the VACUUM chapter. VACUUM and AUTOVACUUM are
controlled by a lot of parameters. Therefor the current documentation
concerning the two mechanism spreads the description across different
pages (20.4, 25.1, VACUUM command). Because of the structure of our
documentation that's ok. But we should have a summary page somewhere -
not necessarily in the tutorial.


There is probably room for improvement, but the section numbers you 
mention are not about VACUUM, AFAICT, so I can't really comment on what 
you have in mind.


--
Peter Eisentraut  http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




Re: Additional Chapter for Tutorial

2020-09-02 Thread Jürgen Purtz

On 01.09.20 23:30, Peter Eisentraut wrote:
It is mostly advanced low-level information that is irrelevant for 
someone starting up,


That applies only to the VACUUM chapter. VACUUM and AUTOVACUUM are 
controlled by a lot of parameters. Therefor the current documentation 
concerning the two mechanism spreads the description across different 
pages (20.4, 25.1, VACUUM command). Because of the structure of our 
documentation that's ok. But we should have a summary page somewhere - 
not necessarily in the tutorial.


the most part the information just duplicates what is already 
explained elsewhere.


That is the nature of a tutorial respectively a summary.

--

J. Purtz






Re: Additional Chapter for Tutorial

2020-09-01 Thread Peter Eisentraut
Again, I don't see how this belongs into the tutorial.  It is mostly 
advanced low-level information that is irrelevant for someone starting 
up, it is not hands-on, so quite unlike the rest of the tutorial, and 
for the most part the information just duplicates what is already 
explained elsewhere.


--
Peter Eisentraut  http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




RE: Additional Chapter for Tutorial

2020-07-21 Thread PASCAL CROZET
Hi all,


I want to import XML file into PG database table.

I've find functions to get the XML content of a cell after imported an XML file 
with the pg_get_file function.

But, I want to explode the XML content to colums. How can I do this ?


PG 10 under Ubuntu 18

_

Cordialement, Pascal CROZET

DBA - Qualis Consulting

• 300 Route Nationale 6 – 69760 LIMONEST

_



Re: Additional Chapter for Tutorial

2020-07-18 Thread Erik Rijkers

On 2020-07-17 11:32, Jürgen Purtz wrote:

On 12.07.20 22:45, Daniel Gustafsson wrote:


This patch no longer applies, due to conflicts in start.sgml, can you 
please

submit a rebased version?

cheers ./daniel


New version attached.

[0005-architecture.patch]


Hi,

I went through the architecture.sgml file once, and accumulated the 
attached edits.


There are still far too many Unneeded Capitals On Words for my taste but 
I have not changed many of those. We could use some more opinions on 
that, I suppose. (if it becomes too silent maybe include the 
pgsql-hackers again?)


Thanks,


Erik Rijkers








--

Jürgen Purtz
--- doc/src/sgml/architecture.sgml.orig	2020-07-17 16:24:04.345941142 +0200
+++ doc/src/sgml/architecture.sgml	2020-07-18 19:04:30.694039877 +0200
@@ -4,36 +4,36 @@
   Architectural and implementational Cornerstones
 
   
-   Every DBMS implements basic strategies to achieve a fast and
+   Every DBMS implements basic strategies for a fast and
robust system. This chapter provides an overview of what
techniques PostgreSQL uses to
-   reach this aim.
+   achieve this.
   
 
   
Collaboration of Processes, RAM, and Files

-As is a matter of course, in a client/server architecture
+In a client/server architecture
 clients do not have direct access to the database. Instead,
-they merely send requests to the server-side and receive
-according information from there. In the case of
+they send requests to the server and receive
+the requested information. In the case of
 PostgreSQL, at the server-side
 there is one process per client, the so-called
 Backend process.
 It acts in close cooperation with the
 Instance which
-is a group of tightly coupled other server-side processes plus a
+is a group of server-side processes plus a
 Shared Memory
 area.

 

-At start time, an instance is initiated by the
-Postmaster
+At startup time, an instance is initiated by the
+postmaster
 process.
-It loads the configuration files, allocates the
+The postmaster process loads the configuration files, allocates
 Shared Memory,
-and starts the comprehensive network of processes:
+and starts a network of processes:
 Background Writer,
 Checkpointer,
 WAL Writer,
@@ -65,8 +65,8 @@
 Whenever a client application tries to connect to a
 database,
 this request is handled in a first step by the 
-Postgres process. It checks the authorization,
-starts a new Backend process,
+postgres process. It checks authorization,
+starts a new backend process,
 and instructs the client application to connect to it. All
 further client requests go to this process and are handled
 by it.
@@ -83,20 +83,20 @@
 index files.
 Because files are often larger than memory, it's likely that
 the desired information is not (completely) available
-in the RAM. In this case the Backend process
+in RAM. In this case the Backend process
 must transfer additional file pages to
 Shared Memory. Files are physically
 organized in pages. Every transfer between files and
-RAM is performed in units of complete pages. Such transfers
-don't change the size or layout of pages.
+RAM is performed in units of complete pages; such transfers
+do not change the size or layout of pages.

 

-Reading file pages is notedly slower than reading
-RAM. This is the primary motivation for the existence of
+Reading file pages is much slower than reading
+RAM. This is the primary motivation for the usage of
 Shared Memory. As soon as one
 of the Backend processes has
-read pages into memory, those pages are available for all
+read pages into memory, those pages become available for all
 other Backend processes for direct
 access in RAM.

@@ -121,13 +121,13 @@
 First, whenever the content of a page changes, a
 WAL record
 is created out
-of the delta-information (difference between old and
-new content) and stored in another area of the
+of the delta-information (difference between the old and
+the new content) and stored in another area of
 Shared Memory. These
 WAL records are read by the
 WAL Writer process,
 which runs in parallel to the Backend
-processes and all other processes of
+processes and other processes of
 the Instance. It writes
 the continuously arising WAL records to
 the end of the current
@@ -137,7 +137,7 @@
 to data files with heap
 and index information.
 As mentioned, this WAL-writing happens
-in an independent process. Nevertheless, all
+in an independent process. All
 WAL records created out of one
 dirty page must be transferred
 to disk before the dirty page
@@ -146,35 +146,34 @@
 

 Second, the transfer of dirty buffers
-from Shared Memory to files must
-take 

Re: Additional Chapter for Tutorial

2020-07-13 Thread Daniel Gustafsson
> On 13 Jul 2020, at 14:20, Naresh gandi  wrote:

(please avoid top-posting)

> Which version is this application for?
> 
> I tried for v12 and v13 Beta, both failed.

Unless being a bugfix, all patches are only considered against the main
development branch in Git. As this is new material, it would be for v14.

cheers ./daniel




Re: Additional Chapter for Tutorial

2020-07-13 Thread Naresh gandi
Which version is this application for?

I tried for v12 and v13 Beta, both failed.

Regards,
Naresh G

On Mon, Jul 13, 2020 at 11:45 AM Jürgen Purtz  wrote:

>
> On 12.07.20 22:45, Daniel Gustafsson wrote:
> > This patch no longer applies, due to conflicts in start.sgml, can you
> please
> > submit a rebased version?
>
> ok. but I need some days.  juergen
>
>
>
>
>


Re: Additional Chapter for Tutorial

2020-07-13 Thread Jürgen Purtz



On 12.07.20 22:45, Daniel Gustafsson wrote:

This patch no longer applies, due to conflicts in start.sgml, can you please
submit a rebased version?


ok. but I need some days.  juergen






Re: Additional Chapter for Tutorial

2020-07-12 Thread Daniel Gustafsson
> On 2 Jun 2020, at 17:01, Jürgen Purtz  wrote:

> In comparison with to previous patch this one contains:
> 
> - Position and title changed to reflect its intention and importance.
> 
> - A  delimits VACUUM basics from details. This is done because I cannot 
> find another suitable place for such a summarizing description.
> 
> - Three additional sub-chapters.

This patch no longer applies, due to conflicts in start.sgml, can you please
submit a rebased version?

cheers ./daniel



Re: Additional Chapter for Tutorial

2020-04-30 Thread Jürgen Purtz

On 29.04.20 21:12, Peter Eisentraut wrote:


I don't see this really as belonging into the tutorial.  The tutorial 
should be hands-on, how do you get started, how do you get some results.


Yes, the tutorial should be a short overview and give instructions how 
to start. IMO the first 4 sub-chapters fulfill this expectation. Indeed, 
the fifth (VACUUM) is extensive and offers many details.


During the inspection of the existing documentation I recognized that 
there are many details about VACUUM, AUTOVACUUM, all of their parameters 
as well as their behavior. But the information is spread across many 
pages: Automatic Vacuuming, Client Connection Defaults, Routine 
Vacuuming, Resource Consumption, VACUUM. Even for a person with some 
pre-knowledge it is hard to get an overview how this fits together and 
why things are solved in exactly this way. In the end we have very good 
descriptions of all details but I miss the 'big picture'. Therefore I 
summarized central aspects and tried to give an answer to the question 
'why is it done in this way?'. I do not dispute that the current version 
of the page is not adequate for beginners. But at some place we should 
have such a summary about vacuuming and freezing.


How to proceed?

- Remove the page and add a short paragraph to the MVCC page instead.

- Cut down the page to a tiny portion.

- Divide it into two parts: a) a short introduction and b) the rest 
after a statement like 'The following offers more details and parameters 
that are more interesting for an experienced user than for a beginner. 
You can easily skip it.'



Your material is more of an overview of the whole system.  What's a 
new user supposed to do with that?


When I dive into a new subject, I'm more interested in its architecture 
than in its details. We shall offer an overview about the major PG 
components and strategies to beginners.



--

Jürgen Purtz






Re: Additional Chapter for Tutorial

2020-04-29 Thread Peter Eisentraut

On 2020-04-29 16:13, Jürgen Purtz wrote:

On 20.04.20 10:30, Jürgen Purtz wrote:

On 17.04.20 20:40, Erik Rijkers wrote:

Very good stuff, and useful. I think.

I mean that but nevertheless here is a lot of comment :)

(I didn't fully compile as docs, just read the 'text' from the patch
file)


Thanks. Added nearly all of the suggestions.



What is new? Added two sub-chapters 'mvcc' and 'vacuum' plus graphics.
Made some modifications in previous sub-chapters and in existing titles.
Added some glossary entries.


I don't see this really as belonging into the tutorial.  The tutorial 
should be hands-on, how do you get started, how do you get some results.


Your material is more of an overview of the whole system.  What's a new 
user supposed to do with that?


--
Peter Eisentraut  http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




Re: Additional Chapter for Tutorial - (review first half of 0003)

2020-04-29 Thread Erik Rijkers

On 2020-04-29 16:13, Jürgen Purtz wrote:

On 20.04.20 10:30, Jürgen Purtz wrote:

On 17.04.20 20:40, Erik Rijkers wrote:

Very good stuff, and useful. I think.

I mean that but nevertheless here is a lot of comment :)

(I didn't fully compile as docs, just read the 'text' from the patch 
file)


Thanks. Added nearly all of the suggestions.



What is new? Added two sub-chapters 'mvcc' and 'vacuum' plus graphics.
Made some modifications in previous sub-chapters and in existing
titles. Added some glossary entries.



[0003-architecture.patch]


Hi Jürgen,


Here are again some suggested changes, up to line 600 (of the patch - 
that is around start of the new NVCC paragraph)


I may have repeated some thing you have already rejected (it was too 
much work to go back and check).  I am not a native speaker of english.


One general remark: in my humble opinion, you write too many capitalized 
words.  It's not really a problem but overall it's becomes bit too much. 
 But I have not marked these. perhaps some future iteration.


I'll probably read through the latter part of the patch later (probably 
tomorrow).


Thanks,

Erik Rijkers



they merely send requests to the server side and receives
they merely send requests to the server side and receive

is a group of tightly coupled other server side processes plus a
is a group of tightly coupled other server-side processes plus a

Client requests (SELECT, UPDATE, ...) usually leads to the
Client requests (SELECT, UPDATE, ...) usually lead to the

Because files are much larger than memory, it's likely that
Because files are often larger than memory, it's likely that

RAM is performed in units of complete pages, retaining their size and 
layout.

RAM is performed in units of complete pages.

Reading file pages is notedly slower than reading
Reading file pages is slower than reading

of the Backend processes has done the job those 
pages are available for all other
of the Backend processes has read pages into 
memory those pages are available for all other


they must be transferred back to disk. This is a two-step process.
they must be written back to disk. This is a two-step process.

Because of the sequential nature of this writing, it is much
Because of this writing is sequential, it is much

in an independent process. Nevertheless all
in an independent process. Nevertheless, all

huge I/O activities can block other processes significantly,
I/O activities can block other processes,

it starts periodically and acts only for a short period.
it starts periodically and is active only for a short period.

duty. As its name suggests, he has to create
duty. As its name suggests, it has to create

In consequence, after a Checkpoint
After a Checkpoint,

In correlation with data changes,
As a result of data changes,

text lines about serious and non-serious events which can happen
text lines about serious and less serious events which can happen

database contains many linkend="glossary-schema">schema,
database contains many linkend="glossary-schema">schemas,


belongs to a certain schema, they cannot
belongs to a single schema, they cannot

A Cluster is the outer frame for a
A Cluster is the outer container for a

postgres as a copy of
postgres is generated as a copy of

role of template0 as the origin
role of template0 as the pristine origin

are different objects and absolutely independent from each
are different objects and independent from each

complete cluster, independent from
cluster, independent from

anywhere in the file system. In many cases, the environment
somewhere in the file system. In many cases, the environment

some files, all of which are necessary to store long lasting
some files, all of which are necessary to store long-lasting

tablespaces itself.
tablespaces themselves.

Postgres (respectively 
Postmaster) process.
Postgres process (also known as 
Postmaster).


MVCC
MVCC - Multiversion Concurrency Control

The dabase must take a sensible decision to prevent the application
The database must take a sensible decision to prevent the application

# this sentence I just don't understand - can you please elucidate?
The database must take a sensible decision to prevent the application
from promising delivery of the single article to both clients.















Re: Additional Chapter for Tutorial

2020-04-20 Thread Jürgen Purtz

On 17.04.20 20:40, Erik Rijkers wrote:

Very good stuff, and useful. I think.

I mean that but nevertheless here is a lot of comment :)

(I didn't fully compile as docs, just read the 'text' from the patch 
file)


Thanks. Added nearly all of the suggestions.


--

Jürgen Purtz

diff --git a/doc/src/sgml/advanced.sgml b/doc/src/sgml/advanced.sgml
index ae5f3fac75..965eb751c0 100644
--- a/doc/src/sgml/advanced.sgml
+++ b/doc/src/sgml/advanced.sgml
@@ -1,7 +1,7 @@
 
 
  
-  Advanced Features
+  Advanced SQL Features
 
   
Introduction
diff --git a/doc/src/sgml/architecture.sgml b/doc/src/sgml/architecture.sgml
new file mode 100644
index 00..81dedc90b4
--- /dev/null
+++ b/doc/src/sgml/architecture.sgml
@@ -0,0 +1,449 @@
+
+
+ 
+  The Architecture
+
+  
+   Every DBMS implements basic strategies to achieve a fast and
+   robust system. This chapter provides an overview of what
+   techniques PostgreSQL uses to
+   reach this aim.
+  
+
+  
+   Collaboration of Processes, RAM, and Files
+   
+As is a matter of course, in a client/server architecture
+clients do not have direct access to the database. Instead,
+they merely send requests to the server side and receives
+according information from there. In the case of
+PostgreSQL, at the server
+side there is one process per client, the so-called
+Backend process.
+It acts in close cooperation with the
+Instance which
+is a group of tightly coupled other server side processes plus a
+Shared Memory
+area.
+   
+
+   
+At start time, an instance is initiated by the
+Postmaster process.
+It loads the configuration files, allocates the
+Shared Memory
+and starts the comprehensive network of processes:
+Background Writer,
+Checkpointer,
+WAL Writer,
+WAL Archiver,
+Autovacuum processes,
+Statistics Collector,
+Logger, and more.
+ visualizes
+main aspects of their collaboration.
+   
+
+   
+Architecture
+
+ 
+  
+  
+ 
+ 
+  
+  
+ 
+
+   
+
+   
+Whenever a client application tries to connect to a
+database, this request is handled
+in a first step by the Postmaster
+process. It checks the authorization, starts a
+new Backend process,
+and instructs the client application to connect to it. All further
+client requests go to this process and are handled
+by it.
+   
+
+   
+Client requests (SELECT, UPDATE, ...) usually leads to the
+necessity to read or write some data. In a first attempt
+the client's Backend process tries
+to get the information out of Shared
+Memory. This Shared
+Memory is a mirror of parts of the
+heap and
+index files. Because files are
+much larger than memory, it's likely that
+the desired information is not (completely) available
+in the RAM. In this case the Backend process
+ must transfer additional file pages to
+Shared Memory. Files are physically
+organized in pages. Every transfer between files and
+RAM is performed in units of complete pages, retaining
+their size and layout.
+   
+
+   
+Reading file pages is notedly slower than reading
+RAM. This is the main motivation for the existence of
+Shared Memory. As soon as one
+of the Backend processes has done
+the job those pages are available for all other
+Backend processes for direct
+access in RAM.
+   
+
+   
+Shared Memory is limited in size.
+Sooner or later it becomes necessary to overwrite old RAM
+pages. As long as the content of such pages hasn't
+changed this is not a problem. But in
+Shared Memory also write
+actions take place
+- performed by any of the Backend
+processes (or an
+autovacuum process,
+or other processes). Such modified pages are called
+dirty pages.
+Before dirty pages can be overwritten,
+they must be transferred back to disk. This is a two-step process.
+   
+
+   
+First, whenever the content of a page changes, a
+WAL record is created out
+of the delta-information (difference between old and
+new content) and stored in another area of the
+Shared Memory. These
+WAL records are read by the
+WAL Writer process,
+which runs in parallel to the Backend
+processes and all other processes of
+the Instance. It writes
+the continuously arising WAL records to
+the end of the current
+WAL file.
+Because of the sequential nature of this writing, it is much
+faster than the more or less random access
+to data files with heap
+and index information.
+As mentioned, this WAL-writing happens
+in an independent process. Nevertheless all
+WAL records created out of one
+dirty page must be transferred
+to disk before the dirty page
+itself can be transferred to disk (???).
+   
+
+   
+Second, the transfer of dirty pages
+from Shared Memory to 

Re: Additional Chapter for Tutorial

2020-04-17 Thread Erik Rijkers

On 2020-04-17 19:56, Jürgen Purtz wrote:

Our documentation explains many details about commands, tools,
parameters in detail and with high accuracy. Nevertheless my
impression is that we neglect the 'big picture': why certain processes



[0001-architecture.patch]


Very good stuff, and useful. I think.

I mean that but nevertheless here is a lot of comment :)

(I didn't fully compile as docs, just read the 'text' from the patch 
file)



Collabortion
Collaboration

drop 'resulting'


He acts in close cooperation with the
It acts in close cooperation with the

He loads the configuration files, allocates the
It loads the configuration files, allocates the

process. He checks the authorization, starts a
process. it checks the authorization, starts a

and instructs the client application to connect to him. All further
and instructs the client application to connect to it. All further

by him.
by it.

In an first attempt
In a first attempt

much huger than memory, it's likely that
much larger than memory, it's likely that

RAM is performed in units of complete pages while retaining
RAM is performed in units of complete pages, retaining

Sooner or later it is necessary to overwrite old RAM
Sooner or later it becomes necessary to overwrite old RAM

transfered
transferred
  (multiple times)

who runs
which runs

He writes
it writes

This is the primarily duty of the
This is primarily the duty of the
  or possibly:
This is the primary duty of the

he starts periodically
it starts periodically

speeds up a possibly occurring recovery.
can speed up recovery.

writen
written

collects counter about accesses
collects counters about accesses

and others. He stores the obtained information in system
and more. It stores the obtained information in system

sudirectories consists
subdirectories consist  <-- plural, no -s

there are information
there is information

and contains the ID of the
and contains the ID (pid) of the

( IMHO, it is conventional (and therefore easier to read) to have 'e.g.' 
followed by a comma, and not by a semi-colon, although obviously that's 
not really wrong either. )



Thanks,

Erik Rijkers






Re: Additional Chapter for Tutorial

2020-04-17 Thread Corey Huinker
>
> I plan to extend over time the part 'Tutorial' by an additional chapter
> with an overview about key design decisions and basic features. The
> typical audience should consist of persons with limited pre-knowledge in
> database systems and some interest in PostgreSQL. In the attachment you
> find a patch for the first sub-chapter. Subsequent sub-chapters should
> be: MVCC, transactions, VACUUM, backup, replication, ... - mostly with
> the focus on the PostgreSQL implementation and not on generic topics
> like b-trees.
>

+1