Foundationপ্রথম নীতি থেকে
LEVEL 8 · Database Systems

Volcano Model

ভলকানো মডেল

Query execution-র iterator architecture — প্রতিটা operator `next()` call-এ এক tuple টানে, উপরের তলা পর্যন্ত pull chain।

also: iterator-model, tuple-at-a-time

class Operator:
    def __next__(self) -> Row: ...     # একবারে এক row, শেষে StopIteration

rows = Limit(10, Sort(key, HashAggregate(HashJoin(...))))
  • Composition সহজ — plan tree-ই operator tree; নতুন operator = নতুন class
  • Tuple-by-tuple: virtual function call per row, cache locality খারাপ — interpreted overhead
  • Materialization model: operator-এ পুরো result set; columnar vectorized: batch (১০০০ tuple) per next — OLAP-এ জয়

Python generator হুবহু volcano; Spark/Presto-র pipeline ভিন্ন কিন্তু operator composition idea একই।