ahmadtash7 commented on issue #354: URL: https://github.com/apache/age/issues/354#issuecomment-1519053204
### Summary of Chapters 1 - 3 of The Internals of PostgreSQL _**Ch - 1: Database Cluster, Databases, and Table**_ Logical structures of database clusters are explained by defining database clusters and how all database objects are managed by OIDs. Physical structure of database clusters are explained by illustrating the base directory that includes subdirectories and files, including the base. Furthermore, the layouts of database cluster, database, and files associated with tables and indexes and Tablespaces are explained. Then, the internal layout of a heap table file - divided into pages (or blocks) - is mentioned. The pages inside the heap table file may contain head tuple, line pointer, or header data. Finally, methods of writing and reading tuples (sequential and B-tree index scans) are talked about. **_Ch- 2: Process and Memory Architecture_** PostgreSQL is a client/server type relational database management system with multiprocess architecture. Its types _postgres server process_, _backend process_, _background processes_, _replication associated processes_, and _background worker process_ are all highlighted and explained. Then, the reader’s focus is diverted to memory architecture - _local_ and _shared memory areas_. _**Ch - 3: Query Processing**_ A backend process handles all queries issued by the connected client. There are five subsystems in this background process, namely; parser, analyser, rewriter, planner, and executor. All their roles have been defined here and visualised with diagrams. Then, cost estimation in single-table query is done. Three types of costs start-up, run, and total are introduced. To retrieve data from the tables, scans are employed in postgreSQL. Each scan has their own costs. Scans include sequential and index scans. We then have the Sort, used for sorting operations like merge etc. Then, we learn to create the plan tree of a single table query. We first preprocess try to figure out the cheapest access path and then, create a plan tree. We see how the executor performs using the EXPLAIN command and reading the output. PostgreSQL has a number of Join operations that have further variations: nested loop join, materialised loop join, merge join, and hash join.- join access paths and join nodes. Each Join has a JoinPath structure. A plan tree for multiple-table query can also be made using the same steps as mentioned priorly to make a plan tree for a single-table query. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@age.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org