icecanedb

module
v0.0.0-...-344bb71 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2021 License: Apache-2.0

README

IcecaneDB

CI Go Report Card Go Doc PkgGoDev Release

A hobby Distributed OLTP SQL database management system written in Go. This is being developed with a motive to learn about distributed systems and databases.

Note: The project is under development and isn't ready.

Progress

Approximate progress of the project.

Server
  • Storage engine
  • Raft
  • MVCC transactions
  • Key value service
Client
  • Lexer & Parser
  • Table encoding
  • Query planner
  • Query execution
  • Query optimization
Common
  • Unit testing

Features

TODO: List of features

Architecture

The project is divided into two main parts:

  1. Server
  2. Client

The server is a grpc service exposing a transactional key value storage layer. The server receives grpc calls from the client and serves them. It also communicates with the other servers for replication using the Raft consensus protocol. The server contains a LSM storage layer for persisting data to disk.

The client is responsible for most of the heavy lifting. It provides a REPL for the user to enter their SQL queries. It then executes those queries and uses the server as the storage medium.

TODO: More details, diagrams and blog posts.

Directories

Path Synopsis
cmd
examples
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL