Queuing

From PostgreSQL wiki
Jump to navigationJump to search

Queueing in core

Internal use cases:

  • Materialized Views
  • Alter Table Concurrently
  • Cluster Concurrently
  • Parallel queries
  • PG/Strom: GPU Offloading (parallel too)

Parallel queries have different transactional semantics needs (it's all running in the same transaction, producer and consumer)

External use cases:

  • Very Common Design Pattern
  • Datawarehouse and pruning historical data (avoid vacuum issues)

Implementation:

  • it's a table?
  • concurrent inserts and pruning
  • no update
  • payload would be a record/tuple (create type / create table)
  • FIFO, Insert Only Segment Optimisation with a starting block that can be > 0