COLUMBIA UNIVERSITY COMS 6113

High Level Comments

Every paper makes claims and tells a story. The trick is to discern the important parts from the unimportant, and to articulate why. This involves:

Ingres

Interesting bits

QUEL

Elegant, compact language.

For instance, a SELECT query

    RANGE T
    RANGE S
    RETREIVE INTO W(T.x + S.y, S.t)
    WHERE    T.t = S.s

Other thoughts

Neatly setup for interesting types of queries!

UNIX

Goal: leverage unix facilities

Memory management

Processes and Pipes.

Updates are copy on write + deferred application

File system

Concurrency Control

Lays out the design space and comments on each option (rather matter of factly)

  1. smaller than an INGRES command
    • can’t make any real guarantees
  2. 1 INGRESS command
  3. 1 commands, no C

  4. 1 commands, with C, no syscalls

    • called UDFs. See later systems
  5. 1 commands, with C and syscalls

    • Exposing via syscalls to “the world” can’t really be backed out from
    • Same thing with giving user intermediate results in the flight example

Comments

Query Execution

Tries to flatten joins/cross-products iteratively.

Tuple Substitution

Postgres

Background

The paper

ADT

Overview

High level

Display object example

Lessons

Triggers, Rules, Etc

Recursive queries using *

    retreive* into T(name, mgr)
    from E, T
    WHERE E.name = 'jones' or E.mgr = T.name

Triggers

Views with multiple statements

    view EMP (name, desk='cheap') where age < 40
    view EMP (name, desk='good') where name = 'bigshot'

Lesson

Time Travel and Portals

Time Travel/Versions

Cursor++

Stored procedures (aka compilation)

Idea

Query Processing

Three challenges

Access methods

Storage system

Overview

Sketch

Process structure

Terms

Options

Despite threads/processes, there are numerous data sharing “choke points” (shared state)

Popular: DBMS threads (lightweight threads) on top of OS process pool

Why one query per DBMS thread?

Tidbits from Turing lecture

Rewrites