Skip to content
/ junkdb Public

junkdb is a Relational Database Management System written in Rust for my own study purposes.

License

Notifications You must be signed in to change notification settings

gtnao/junkdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Test

junkdb (1)

Overview

junkdb is a Relational Database Management System written in Rust for my own study purposes.

Screenshot

The following shows REPEATABLE READ implemented via snapshot isolation.

mvcc

Feature

  • Rust-based
  • Basic RDBMS Operations
    • DML
      • CRUD (SELECT, INSERT, DELETE, and UPDATE)
      • Filtering (WHERE)
      • Subquery
      • Join
        • Nested Loop Join
          • Inner Join
          • Left Join
      • Aggregation (GROUP BY and HAVING)
        • Functions (COUNT, SUM, MAX, MIN, AVG)
      • Sorting (ORDER BY and LIMIT)
    • DDL
      • CREATE TABLE
  • Transactions:
    • MVCC (Multi-Version Concurrency Control)
      • Snapshot Isolation
    • Isolation Level
      • READ COMMITTED
      • REPEATABLE READ
    • Vacuum: clean up old data versions.
    • Lock
      • Row-level Exclusive Locking: prevent dirty write.
      • Deadlock Detection
    • Recovery (ARIES-based)
      • Checkpoint
  • Indexing
    • B+ Tree
  • Buffer Pool
    • LRU
  • Optimizer
    • Rule-based
  • Data Types
    • INTEGER, VARCHAR, BOOLEAN
    • NULL
  • Operators
    • Binary (=, <>, <, >, <=, >=, +, -, *, /, %, AND, OR)
    • UNARY (-, NOT)
    • IS NULL, IS NOT NULL
  • Basic SQL Parser
  • CLI

Usage

Server

cargo run server --init

Client

cargo run client

About

junkdb is a Relational Database Management System written in Rust for my own study purposes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages