Skip to content

Skyhook Architecture

Jeff LeFevre edited this page Nov 11, 2018 · 1 revision

Skyhook Architecture

Skyhook's architecture includes 3 layers:

  1. Database application layer (PostgreSQL)
  2. External table interface layer (PostgreSQL's foreign data wrapper)
  3. Storage layer (Ceph with programmable storage functions)

Skyhook design

Skyhook's design is based on partitioning database table data and storing each partition into a Ceph object and the partition's metadata stored in the local RocksDB instance on the Ceph server that stores the object. The diagram below indicates data partitioning and placement. Replication is transparently provided by Ceph and not shown here.

skyhook-design


Skyhook development

Skyhook's development is based on

  • PostgreSQL's mature external table interface ("foreign data wrapper") which enables read/write and limited pushdown processing to the external source.
  • Ceph's extensible object classes ("cls") interface which enables developers to write custom extensions to Ceph's object methods.

skyhook dev

Clone this wiki locally