apache / age

Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL.
https://age.apache.org
Apache License 2.0
3.01k stars 405 forks source link

AGE Onboarding - Learn Postgres Basics Group 1 #355

Open JoshInnis opened 1 year ago

JoshInnis commented 1 year ago

Read Chapter 1-3: https://www.interdb.jp/

MuhammadTahaNaveed commented 1 year ago

Acknowleged.

RC-002 commented 1 year ago

Excited to start!

aru-d-at commented 1 year ago

Ok got it!

Munmud commented 1 year ago

Hi! this is good, excited to start on AGE project

maazzzzz commented 1 year ago

acknowledged

muneebkhan4 commented 1 year ago

I am excited to start work.

GhostVaibhav commented 1 year ago

Excited to work on the project!

MatheusFarias03 commented 1 year ago

Looking forward to getting started with the AGE project!

intrigued-rishi commented 1 year ago

Hi! excited to start working on the AGE project

markgomer commented 1 year ago

Hello! I'm excited to start working with you all!

abdinabi123 commented 1 year ago

@maazzzzz @GhostVaibhav @Munmud @MuhammadTahaNaveed @muneebkhan4 Hi guys! If you have completed all 3 chapters please write a short summary of what you have read and learned. You can leave your summary here on the comments below. Thanks

MatheusFarias03 commented 1 year ago

From reading the three first chapters of "The Internals of PostgreSQL", I have learned how the database cluster is structured (both physically and logically), the processes and memory architecture (backend processes, the local and shared memory area), the query processing, how the backend process handles the queries, how it is structured in five subsystems (parser, analyser, rewriter, planner and executor). Also learned how some join operations function, like the merge join, nested loop join and the hash join.

GhostVaibhav commented 1 year ago

@abdinabi123 Surely, I learned about the logical and physical structure of a database cluster, whilst also learning about the heap table file and the methods for reading and writing in that. In the second chapter, I learned about the process architecture in a Postgres database while also shedding light on the various backend processes (the server process, backend process, worker process, etc.). In addition to that, I also learned about the memory architecture of Postgres (local and shared). In the third chapter, I broadly learned about query processing which further bifurcates into five subsystems (namely parser, analyzer, rewriter, planner, and executor) with a brief introduction to all. I also learned about the cost estimation of a query (in particular of the sequential scan, sort, and index scan). I also learned about the creation of a plan tree, the role of the executor, and the various join operations (merge join, nested loop join, and hash join). The third chapter was a bit intensive in terms of the keywords as well as the concepts involved (I couldn't understand it fully😅).

markgomer commented 1 year ago

I learned about the logical and physical structures of Database cluster, the layout of the database clusters, the databases, the files associated with tables and indexes, and the tablespaces. Read about the internal layout of a heap table file, and the methods of writing and reading tuples. In chapter 2 we learn about the process and memory architectures, how the PostgreSQL server is composed by a postgres server process, that is a parent of all in a PostgreSQL server, which is called 'postmaster' in the version we are working on. The chapter 3 explains the query processing and it consists in five subsystems: parser, analyzer, rewriter, planner and executor. It also shows the process of cost estimation, creating the plan tree, and how the executor and join operations work.

MuhammadTahaNaveed commented 1 year ago

Chapter 1 explained about the structure of database cluster(both physically and logically using OIDs), different files in database cluster and their description, layout of heap table file(where the actual table rows are stored),methods of reading heap tuples(seq scan and B-Tree index scan) and writing tuples into heap table. Chapter 2 explained about the processes(postgres server process and its child processes which can be either backend or background process), how processes allocate a local memory area and use Shared-memory area. Chapter 3 explained about the five subsystems(parser, analyzer, rewriter, planner and executor) of the backend process(which handles queries), cost estimation of methods of reading heap tuples(seq scan and index scan) and lastly working of different join methods.

Munmud commented 1 year ago

By Reading those 3 chapter I have gone through ->

muneebkhan4 commented 1 year ago

First 3 Chapters of The Internals of PostgreSQL

The short and compact summary Points which I have read and understand are given below:

Chapter-1 Database Cluster, Databases, and Tables

Chapter-2 Process and Memory Architecture

Chapter-3 Query Processing

maazzzzz commented 1 year ago

Chapter 1 learned about internal logical structure of PG clusters and databases; how PG stores and manages db objects; how db files are stored( heap tables files and pages) ; how are db files written and read (seq scan and index scans). Chapter 2 learned about the memory and process architecture of a PG host instance. Chapter 3 got an overview of the the query processing pipeline; learned about how PG handles a query; how costs associated with it are calculated. how different joins work and their associated costs.

intrigued-rishi commented 1 year ago

Chapter 1: Learnt about how the Database cluster works in PostgreSQL and also how the server manages the flow of the cluster. Then went through the internal physical structure of the database cluster and how the base directory, database objects, files, indexes are organised in a hierarchical manner. Also studied about the internal layout of the Heap table file and how pages and tuples are organised.

Chapter 2: Learnt about the Process and Memory architecture of PostgreSQL. The Postgres server process, the various backend and worker processes consist of the main few processes in Postgres. Also studied about the various local and shared memory present in Postgres

Chapter 3: Learnt about the various steps of Query processing about how a simple query is parsed, analysed and taken for execution. Discovered how a plan tree is constructed to represent the flow of action. Also looked into how cost estimation is made for the different scans like sequential, index scan etc. and also for the different JOIN operations.

RC-002 commented 1 year ago

Summary of what I learnt from the first 3 chapters of "The Internals of PostgreSQL"

Chapter 1: This was the first time I heard that there was a Database cluter. I learnt what it is, it's logical and physical structure. I learnt about the various configuration files in the cluster. Tablespaces was an interesting concept and I learnt more about it from the official PostgreSQL docs. The addressing and the directory structure of files and pages was new and rather intuitive. Finally, I learnt about the heap table file and the 2 methods of writing and reading them.

Chapter 2: I learnt about the process architecture of PostgreSQL. Acuum process was new to me and I learnt about it from the official docs. I read about the vaarious processes involved. Finally, I went through the memory architecture and the buffers invloved.

Chapter 3: I learnt about the parser and generation of parse trees. The analyzer was new and I read about parsenodes.h and its contents. The logic behind the planner and executor working was not very intuitive for me and I have a newfound appreciation for the same. The three costs - start-up, run and total, cost_seqscan and cost_index functions, random page costs and indexes. I then learnt about the plan tree and the steps involved in its creation. I already knew the join operations but I was able to learn the einternals of how they work. Finally, I read about the parse tree for multi-table queries and how to find the cheapest path.

Zainab-Saad commented 1 year ago

Hi, I am excited to work on this project

AdeelAhmedIqbal commented 1 year ago

Hello everyone! I’m happy to be a part of this team and looking forward to getting started with this project.

CapnSpek commented 1 year ago

Looking forward to contribute to this project!

Umairius commented 1 year ago

Greetings everyone, excited to start working on this project. May the odds be in our favour.