It was a bit of a slow week with respect to the code that I had written. The initial benchmarks on the fuse overlay filesystem were very bad and by discussing the topic over the libfuse project, it seemed like the overhead of being a fuse filesystem was very large compared to the perf boost of having a caching read only filesystem even when serving from memory. So after discussing with my mentor, we decided to shift the focus and rather start working on a caching monkey plugin. I learned a lot by writing the fuse filesystem, but unfortunately it never worked out.
So then I started looking into the monkey sources, unfortunately I was a bit busy in middle as I had gone to a st gallen, but I have read quite some code in the monkey codebase and the plugin apis. I created a new github project for my monkey plugin codebase. The link is https://github.com/ziahamza/monkey-cache.
For now it’s a pretty simple plugin that handles static files and serves them as plain text. It’s a basic structure that I would extent, for now I plan to make the plugin be process and thread aware (adding hooks for CORE_PRCTX and CORE_THCTX) and then get the caching part done. This time I am running benchmarks from the very beginning to check for any unintended bottlenecks introduced in the process.
For now I am on track and should be able to get an initial usable and performant by coming week. For now you can check the progress on the github page.