Learning PostgreSQL by reimplementing some of its functions in Golang.
- Datum type.
- Tuple creation and basic organization.
- Tuple descriptors.
- Attribute constraints.
- 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
- CAS lock-free queue.
- Cache line padding investigation.
- Lock held by PROC related functions, and PROC lock cleaning.