@techreport{maccormick2007niobe, author = {MacCormick, John and Thekkath, Chandu and Jager, Marcus and Roomp, Kristof and Zhou, Lidong and Peterson, Ryan}, title = {Niobe: A Practical Replication Protocol}, year = {2007}, month = {August}, abstract = {The task of consistently and reliably replicating data is fundamental in distributed systems, and numerous existing protocols are able to achieve such replication efficiently. When called on to build a large-scale enterprise storage system with built-in replication, we were therefore surprised to discover that no existing protocols met our requirements. As a result, we designed and deployed a new replication protocol called Niobe. Niobe is in the primary-backup family of protocols, and shares many similarities with other protocols in this family. But we believe Niobe is significantly more practical for large-scale enterprise storage than previously-published protocols. In particular, Niobe is simple, flexible, has rigorously-proven yet simply-stated consistency guarantees, and exhibits excellent performance. Niobe has been deployed as the backend for a commercial Internet service; its consistency properties have been proved formally from first principles, and further verified using the TLA+ specification language. We describe the protocol itself, the system built to deploy it, and some of our experiences in doing so.}, url = {http://approjects.co.za/?big=en-us/research/publication/niobe-a-practical-replication-protocol/}, pages = {42}, number = {MSR-TR-2007-112}, }