Skip to content

Learning PostgreSQL by reimplementing some of its functions in Golang.

Notifications You must be signed in to change notification settings

allvphx/learnPG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

learnPG

Learning PostgreSQL by reimplementing some of its functions in Golang.

List

Common

  • Datum type.

Access

Tuple

  • Tuple creation and basic organization.
  • Tuple descriptors.
  • Attribute constraints.

Storage

Lock Manager

  • Spin lock.
    • Basic implementation: no deadlock, lock for a dozen instructions, no lock release on error, timeout in minutes (very long blocking)
    • Spin lock delay controls for high contention locks.
  • Basic PROC.
    • PROC list
    • Multable iterator
  • Lightweight locks.
    • spin lock style FetchExecute, compiler barrels, etc.
    • lock tranches.
    • wait list locks and lock flags.
    • wait for values related functions.
    • fix semaphore.
  • Regular lock
  • Tuple accesses

Lock-free

  • CAS lock-free queue.

Extra

  • Cache line padding investigation.
  • Lock held by PROC related functions, and PROC lock cleaning.

About

Learning PostgreSQL by reimplementing some of its functions in Golang.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages