8000 Releases · lighkLife/kvs · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: lighkLife/kvs

Concurrency and parallelism

21 Apr 14:32
Compare
Choose a tag to compare

Task: Create a multi-threaded, persistent key/value store server and client
with synchronous networking over a custom protocol.

Goals:

  • Write a simple thread pool
  • Use channels for cross-thread communication
  • Share data structures with locks
  • Perform read operations without locks
  • Benchmark single-threaded vs multithreaded

Topics: thread pools, channels, locks, lock-free data structures,
atomics, parameterized benchmarking.

Synchronous client-server networking

07 Apr 01:28
Compare
Choose a tag to compare
Pre-release

Task: Create a single-threaded, persistent key/value store server and client
with synchronous networking over a custom protocol
.

Goals:

  • Create a client-server application
  • Write a custom protocol with std networking APIs
  • Introduce logging to the server
  • Implement pluggable backends with traits
  • Benchmark the hand-written backend against sled

Topics: std::net, logging, traits, benchmarking.

A Log-structured storage

30 Mar 08:51
Compare
Choose a tag to compare
Pre-release

Task:
Create a persistent key/value store that can be accessed from the command line.

Goals:

  • Handle and report errors robustly
  • Use serde for serialization
  • Write data to disk as a log using standard file APIs
  • Read the state of the key/value store from disk
  • Map in-memory key-indexes to on-disk values
  • Periodically compact the log to remove stale data

An in-emory storage

31 Jan 13:02
Compare
Choose a tag to compare
An in-emory storage Pre-release
Pre-release

Task:
Create an in-memory key/value store that passes simple tests and responds
to command-line arguments.

Goals:

  • Install the Rust compiler and tools
  • Learn the project structure used throughout this course
  • Use cargo init / run / test / clippy / fmt
  • Learn how to find and import crates from crates.io
  • Define an appropriate data type for a key-value store

Topics:
testing, the clap crate, CARGO_VERSION etc., the clippy and rustfmt tools.

0