MaceSystems is the website for all things related to the systems research conducted using, or inspired by, the structured systems development approach prescribed by the Mace language and toolkit.
Mace itself is an offshoot of the MACEDON programming language, but much less restricted in its use and application, while still retaining the primary effective contributions of MACEDON — it’s atomic event model and protected service abstraction. This protection and simple execution model are what have enabled the development of a wide range of tools which significantly enhance the development, testing, and understanding of the execution of distributed systems, and in some cases, have developed tools which are applicable beyond the scope of Mace. (In other cases, the tools are only possible within such a structured environment, and such structure cannot easily be extracted from existing systems.)
The history of this research project begins in roughly 2002, with the early development of systems at Duke University by Adolfo Rodriguez and Dejan Kostic, under faculty Amin Vahdat. Adolfo was attempting to fairly evaluate and compare a wide range of distributed hash tables, and realized that existing implementations could not be fairly evaluated, and theoretical results ignored a good deal of network and systems reality. The result was the re-development of these DHTs, while keeping as much common across their implementations as possible. This commonality was abstracted in the MACEDON toolkit, which was presented at NSDI 2004 by student Charles Killian. Killian then followed his advisor, Vahdat, to UC San Diego, where MACEDON grew from its infancy into a much broader system that could effectively specify a wider range of distributed systems. MACEDON went through a complete reimplementation, and emerged as the Mace project, today still bearing much of the work done then. Beyond Killian, additional students and researchers from UCSD (in particular James Anderson, Ryan Braud, and Ranjit Jhala) made major contributions to the project during this time, in the further development of Mace and systems built using Mace, and importantly, the Mace Model Checker (MaceMC). Mace and MaceMC were published in 2007 at PLDI, and NSDI, respectively.
After graduating, Killian has furthered the Mace project’s goals and carried it forward to its current home at Purdue University. Current students of his, and faculty collaborators at Purdue play the biggest role in Mace development at this point. Recent work has been published at FSE 2010, about finding latent performance bugs in systems implementations, and upcoming at HPDC 2011, supporting parallel event processing in a limited fashion that allows good performance while maintaining the event model abstractions that support the toolset. Additionally, at this point, Killian and his students (named on the Mace page) work on furthering Mace with additional parallelism, log processing, and vulnerability testing. An additional focus of work at this point is extracting some of the tools from the Mace framework to enable their use on natively implemented systems.
Mace is still healthy and supported, and has been used at a wide range of research labs and universities. Please contact us if you have questions or problems. You can reach the group at firstname.lastname@example.org.