Skip to content
Tobias Schottdorf edited this page Jun 3, 2016 · 24 revisions

Welcome to the cockroach wiki!

Roadmap

CockroachDB is currently in beta. We track issues using 3 milestones:

  • Q2 is for work to be completed in the current quarter.
  • 1.0 is for work to be completed by the 1.0 release.
  • Later is for work to be completed after the 1.0 release.

Issues without a milestone have either not been scheduled or are cleanup work that can be done whenever someone finds the time or inclination.

The goals for Q2 are increasing stability and performance at scale, fleshing out additional SQL functionality and kicking off work on distributing SQL execution.

Q2 Roadmap

  • Core & Stability

    • Continuous load testing on a 10 node cluster
    • Test clusters with increasingly large range counts (10k ranges, ~500GB)
    • Improve rebalancing heuristics
    • Verify on-the-wire and on-disk compatibility between versions
    • Infrastructure for data migrations
  • SQL Functionality

    • FOREIGN KEY constraints
    • CREATE SEQUENCE / SERIAL column type
    • Dump/restore of SQL data+metadata
    • Improve type inference
    • Improve testing of postgres-client compatibility
  • Distributed SQL

    • Push-down filtering to ranges
    • Push-down updates to ranges
    • Infrastructure for distributed joins / aggregations
      • Stretch goal: inner joins
  • UI

    • Adjustable graph timescales
    • Flesh out databases and tables pages
    • Tooltips on all graphs
    • Provide standard hooks for timeseries data (e.g. Prometheus)

2016 Roadmap

Goals:

  • Developer adoption
  • Ready for production deployment

Themes (near term):

  • Core scalability
  • Core stability
  • Multi-node performance
  • More SQL support
  • Functional UI for operational debugging

Themes (long term):

  • Easiest production deployment
  • Stable and performant
  • Production readiness
  • Support developer use cases

Projects

  • Stability

    • Rebalancing
    • Repair throttling
    • Raft log growth/throttling
    • Large range splitting
    • Query throttling
  • Performance

    • Lazy raft loading
    • Bulk loading
    • Coalesced heartbeats
    • Leader lease optimizations
    • Raft log replacement
  • Production readiness

    • Migrations
      • Leader-proposed raft
      • System table addition / schema change
    • Test infrastructure
    • Monitoring integration
    • Deployment recipes (kubernetes, mesosphere, docker swarm)
    • Certificate management
  • UI

    • User login
    • User management
    • In flight schema changes
    • Slow queries
    • Distributed query plans
  • SQL Features

    • Dump / Load
    • Incremental backup / restore
    • Distributed SQL...JOINs
    • Foreign keys
    • Column families
    • Sequences or SERIAL
    • Interleaved tables
    • ORM compatibility
    • Online schema changes

2017 Product Roadmap

  • Blob storage

  • Security

    • Encryption at rest
    • Macaroons
  • SQL Features

    • Window functions
    • Common table expressions #7029
    • VIEWs (non-materialized)
    • ARRAY column type
    • STRUCT column type
    • MAP/JSON column type
    • CREATE TABLE … AS
    • CREATE TEMPORARY TABLE
    • Client proxy/load-balancer
    • Full-text indexes
    • Geospatial indexes
    • Distributed query optimization
    • Triggers / watches
    • Stored procedures
    • Change feeds
  • Core

    • Rebalancing: copysets/chainsets
    • Range merging
  • Multi-tenancy

    • Resource isolation
    • Quotas
    • User management
  • Misc

    • Go-fuzz testing (SQL parsing/execution, pgwire parsing)
    • Data sovereignty

Frequently Asked Questions (FAQ)

Why the name Cockroach?

It is evocative of the properties of the system we are trying to build. Cockroaches are hard to kill, spread easily, and evolve quickly. “Roach Motel” would also be a great name for a hosting service.