fosbook: Three-tier Web Apps on fos

Charles Gruenwald III, Nathan Beckmann, Harshad Kasture, Christopher R. Johnson, Barry Kasindorf, Lawrence Stewart, Anant Agarwal

fos features a POSIX compatibility layer, The Factored OS (fos) is a scalable operating which allows most applications to be ported with system built from the ground up to support little or no modification. fos supports pipes, cloud and multicore systems. sockets, ext2, pthreads, etc..

OS services in fos are factored out of the kernel and into concurrent, distributed sets of user space processes called fleets.

We’ve constructed fosbook, a mock three-tier Network Stack Block Diagram web application using lighttpd, memcached, and SQLite. fosbook runs across multiple VMs in the cloud. CM

Page allocator service - (bound to core)

fos provides a single system image to user processes. Services seamlessly span machines through message passing.

Client

init netlink lighttpd xenbus netlink netlink Mem- cached

xenbus ffs proxy proxy name netstack ffs nameffs recv send

blockblock proxy proxy nameffs netstack pms devdev send recv

fosbook pms

System Architecture

fos services share state through new distributed data structures that are locality-aware. lighttpd file sys name name SQLite CGI

process process mem- proxy proxy manage. manage. cached

F G mem- net net lighttpd lighttpd A cached transport transport I E F net net G H C E lighttpd i link link A B

i D I libfos libfos libfos libfos libfos libfos

App App App App App App Legend Request fosbook CGI Data retrieval Response Coherent DHT Distributed Resource Pool Anatomy of a Request