Skip to content

LasseJacobs/LJDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LJDB database experiment project

Usage

Build and run the project, a command input field '>' shoud appear on the terminal. Input a command and see what happens!

Example:

$./LJDB
$ > create database myDb
$ > select database myDb
$ [myDb] > create table example
$ [myDb] > put example "hello" "world"
$ [myDb] > get example "hello"
$ == world
$ [myDb] > exit

Description

This is a very basic implementation of a log-based key-value store. Many aspects of this codebase still need a lot of work!

Commands

For a more updated list of commands, you can look at the source. Specifically everything in the eval package.

create
    - database <name>
    - [database] [create] table <name>

delete
    - database <name>
    - [database] [delete] table <name>

select
    - database <name>

[database] put <table> "<key>" "<value>"

[database] get <table> "<key>"

[database] remove <table> "<key>"

exit

NOTE: " can be escaped (\")

Contributing

Any feedback, on anything, is always appreciated.

Building

Building:

$ cd LJBD/
$ make

The TODO list:

Planned updates:

  • overall improvements to the IO operations
  • socket API
  • rollbacks
  • snapshots
  • log compaction
  • presistent indeces (maybe SStables)

About

A homegrown key-value store implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published