Skip to content
View persona-mp3's full-sized avatar
💭
🫆
💭
🫆

Block or report persona-mp3

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
persona-mp3/README.md

README

Interested in distributed systems, network and concurrent programming. I primarily build in Go for high performant backends and network systems, Java so I'm employable and Rust (occasionally) because it's cool.

Currently working on

jkvs A distributed in-memory key-value database, with the storage engine written in Java. Its concurrency architecture consists of lock/wait-free readers, and a single-writer to serialise all write requests via a BlockingQueue data structure. The database also includes log compaction and WAL and aims to add other features later on, specifically batch writing.

The replication layer fsm is written in Go, following the Raft Algorithm. Go was chosen because of it's simpler concurrency primitives, network/IO implementations and a fairly simple scheduler to reason about. The current state of the replication layer has a successfull leader-election implementation. It is currently being integrated with jkvs, for developing the replication layer.

Other projects

wsl-port is a custom TCP file transfer protocol written in Python stealing most of the RFC 793 Spec. It includes checksums for each packet of data sent, packet retrials, reordering and handshake protocols. The changelog and protocols is extensively documented. Never knew parsing raw bytes were that painful

Cho a log collector that parses logs generated by jkvs and sends them to a log ingestor

Articles

Distributed Systems Databases Concurrency Network Protocols Infrastructure

Pinned Loading

  1. jkvs jkvs Public

    Key-Value database in Java following a concurrency architecture of lock/wait-free readers and a single-writer with the aim to implement Raft Concensus

    Java 2 1

  2. fsm fsm Public

    Raft Consensus

    Go 1 1

  3. cho cho Public

    A Go sidecar that tails structured JSON logs from a running application and ships them to a central log ingestor. Built to observe jkvs.

    Go 1 1

  4. wsl-prt wsl-prt Public

    Custom network protocol for sending files securely over virtual environments

    Python 2