20 Commits
Author SHA1 Message Date
Claudeandcozis 7cd124e939 Add cluster management script for 3 server nodes and 1 HTTP proxy
Provides start/stop/status/restart/clean commands to manage a local
ToastyFS cluster. Nodes listen on 127.0.0.1:8001-8003 with the HTTP
proxy on 127.0.0.1:3000. Each node gets its own chunk storage directory
under cluster-data/. Logs and PID files are stored there as well.

https://claude.ai/code/session_01FAL4T35UGYqXexbaxvihRp
2026-02-26 01:19:36 +01:00
cozis 02da6b0170 Rewrite build scripts 2026-02-26 00:55:06 +01:00
cozis 7591ef6ee1 Cleanup of message.c/.h 2026-02-25 23:45:53 +01:00
cozis ef1d65ad2b Major refactoring 2026-02-25 10:44:43 +01:00
Claude 510007d560 Add build artifacts to .gitignore
Ignore example binaries compiled to root directory and the
vsr_boot_marker runtime data file.

https://claude.ai/code/session_01JniNxxDP4NbsDXNGmGNG7H
2026-02-21 22:32:51 +00:00
cozis a6bdd94cbf Merge branch 'claude/library-build-container-Dd9Tg' of https://github.com/cozis/TinyDFS into claude/library-build-container-Dd9Tg 2026-02-21 16:00:28 +01:00
Claude 96bd81bae6 Add library build, local cluster script, and example client
Introduce a Makefile that builds libtoastyfs.a and libtoastyfs.so from the
client-side sources (client, tcp, byte_queue, message, basic) so external
programs can link against the ToastyFS client API in include/toastyfs.h.

Add cluster.sh, a convenience script that manages a local 3-node cluster
by spawning toastyfs server processes on ports 8081-8083.  Sub-commands:
up, down, status, logs, and "run <source.c>" which builds the library,
compiles the source against it, starts the cluster, runs the binary, and
tears everything down.

Add examples/example.c demonstrating synchronous PUT, GET, DELETE, and a
NOT_FOUND verification.

Fix a stack overflow in the MAIN_SERVER entry point: ServerState is ~40 MB
(MetaStore holds 4096 ObjectMeta entries) and was declared on the stack.
Heap-allocate it instead.

https://claude.ai/code/session_019DVhmc25jfzcHnmdNxzib2
2026-02-21 14:51:14 +00:00
Claude a57e713fda Add library build, Docker cluster, and example client
Introduce a Makefile that builds libtoastyfs.a and libtoastyfs.so from the
client-side sources (client, tcp, byte_queue, message, basic) so external
programs can link against the ToastyFS client API in include/toastyfs.h.

Add a Dockerfile and docker-compose.yml that spin up a 3-node ToastyFS
server cluster on a private bridge network with ports 8081-8083 exposed
on the host. Include cluster.sh as a convenience wrapper (up/down/status/
logs/run) — the "run" sub-command builds the library, compiles a user-
supplied C source against it, starts the cluster, and executes the binary.

Add examples/example.c demonstrating synchronous PUT, GET, DELETE, and a
NOT_FOUND verification.

https://claude.ai/code/session_019DVhmc25jfzcHnmdNxzib2
2026-02-21 14:30:58 +00:00
cozis b64517c20e Full rewrite with VSR support 2026-02-20 16:55:29 +01:00
Claudeandcozis 468345b44b Add toasty_test_coverage to gitignore
https://claude.ai/code/session_01DeZ26avuyYrP99CWphF47B
2026-01-28 01:24:08 +01:00
cozis 31708d22cc Add feature testing build 2026-01-24 17:29:56 +01:00
Claude 4cac3a721e Add branch coverage build for simulation
Adds build_coverage.sh script that:
- Builds the simulation with GCC branch coverage instrumentation
- Supports --report flag to run simulation and generate lcov HTML report
- Uses 60 second timeout with SIGINT for graceful shutdown

Also adds SIGINT handler to simulation to exit cleanly and flush coverage data.
2026-01-16 16:47:58 +00:00
cozis c10493881b Add Quakey 2026-01-16 14:45:09 +01:00
cozis e73bb3a7d8 Add crash logger 2025-12-04 12:25:19 +01:00
Claude 7e63c211d3 Add cluster demo script for easy cluster management
This script provides a convenient way to spawn and manage a ToastyFS cluster
for demo and testing purposes. Features include:

- Start a cluster with configurable number of chunk servers
- Automatic building if binary is not present
- Process management with PID tracking
- Status checking for all cluster nodes
- Easy cleanup of all cluster processes
- Separate log files for each server component
- Colorized output for better readability

Usage:
  ./scripts/cluster_demo.sh start [num_servers]  - Start cluster
  ./scripts/cluster_demo.sh stop                 - Stop cluster
  ./scripts/cluster_demo.sh status               - Show status
  ./scripts/cluster_demo.sh clean                - Clean data/logs
2025-11-22 23:16:50 +00:00
cozis dd74106935 Ignore .wal and .tmp files 2025-11-17 22:49:20 +01:00
Claude b465d5282e Add HTML coverage reports with branch-level detail
Enhance the branch coverage measurement tool with HTML report generation
that shows exactly which branches were taken during simulation execution.

Changes:
- Add generate_coverage_html.sh script to create interactive HTML reports
- Update measure_coverage.sh with --html flag to generate reports
- Add *.gcov, *.gcda, *.gcno to .gitignore
- HTML reports show:
  - Overall coverage summary with visual progress bars
  - Per-file coverage breakdown with clickable links
  - Source code view with color-coded branch coverage
  - Green highlight: branches taken
  - Red highlight: branches not taken
  - Branch execution counts and percentages

Usage:
  ./measure_coverage.sh [duration] --html

The HTML report is generated in coverage_report/index.html and can be
viewed in any web browser. Each source file links to a detailed view
showing which specific branches were executed.
2025-11-13 19:55:08 +00:00
Claude 7f5ceeb24f Add build target for libmousefs_client.a static library
- Add CLIENT_CFILES and CLIENT_OFILES variables to Makefile
- Add rules to build object files and create static library
- Include libmousefs_client.a in the 'all' target
- Update clean target to remove library and object files
- Update .gitignore to ignore *.o and *.a build artifacts

The library includes: client.c, basic.c, tcp.c, message.c
2025-11-10 18:12:30 +00:00
cozis 279777fc8b Progress 2025-11-08 02:43:41 +01:00
cozis 1f4a9956da First commit 2025-10-27 18:01:33 +01:00