Award Abstract # 1637385
AitF: The Fuzzy Log: A Unifying Abstraction for the Theory and Practice of Distributed Systems

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: YALE UNIV
Initial Amendment Date: August 16, 2016
Latest Amendment Date: July 7, 2018
Award Number: 1637385
Award Instrument: Standard Grant
Program Manager: Tracy Kimbrel
CCF
 Division of Computing and Communication Foundations
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: October 1, 2016
End Date: September 30, 2019 (Estimated)
Total Intended Award Amount: $600,000.00
Total Awarded Amount to Date: $600,000.00
Funds Obligated to Date: FY 2016 = $600,000.00
History of Investigator:
  • Zhong Shao (Principal Investigator)
    zhong.shao@yale.edu
  • James Aspnes (Co-Principal Investigator)
  • Mahesh Balakrishnan (Former Principal Investigator)
  • Daniel Abadi (Former Co-Principal Investigator)
Recipient Sponsored Research Office: Yale University
150 MUNSON ST
NEW HAVEN
CT  US  06511-3572
(203)785-4689
Sponsor Congressional District: 03
Primary Place of Performance: Yale University
AKWatson Hall
New Haven
CT  US  06520-8285
Primary Place of Performance
Congressional District:
03
Unique Entity Identifier (UEI): FL6GV84CKN57
Parent UEI: FL6GV84CKN57
NSF Program(s): Algorithms in the Field
Primary Program Source: 01001617DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s):
Program Element Code(s): 723900
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

The Fuzzy Log project seeks to democratize the design and development of complex distributed systems, accelerating innovation by allowing developers to focus on high-level application functionality instead of low-level protocol details. Examples of such complex systems include Software Defined Network controllers for the network, filesystem namespaces for storage, schedulers and allocators for big data run-times, and general-purpose coordination services. These distributed systems require large numbers of highly trained engineers and scientists to construct and operate them. Simplifying the design, development, deployment and debugging of such systems can drastically reduce the cost to create and operate massively scalable cloud services that are reliable and responsive. More broadly, the Fuzzy Log project will also act as an educational gestalt that combines distributed systems and theory to improve the state of the art in cloud computing.

A Fuzzy Log is a partially ordered shared log that multiple clients can append to and read from concurrently. As in other shared log designs, applications can extract properties such as consistency, durability, and concurrency control from the Fuzzy Log. However, unlike a conventional shared log, a Fuzzy Log does not impose a total order over all entries. When clients append to the log, they specify dependencies to define a partial order; when they read from the log, the system returns entries in some sequence satisfying the partial order. Fuzzy Log applications are simple to design, implement, and debug, with full-fledged distributed systems realized in hundreds of lines of code. Fuzzy Log applications are also fast and scalable, extracting parallelism from workloads while imposing order only when strictly necessary.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

(Showing: 1 - 10 of 13)
Afek, Yehuda and Aspnes, James and Cohen, Edo and Vainstein, Danny "Brief Announcement: Object Oriented Consensus" ACM Symposium on Principles of Distributed Computing , 2017 10.1145/3087801.3087867 Citation Details
Alistarh, Dan and Aspnes, James and Eisenstat, David and Gelashvili, Rati and Rivest, Ronald L. "Time-Space Trade-offs in Population Protocols" Proceedings of the Twenty-Eighth Annual ACM-SIAM Symposium on Discrete Algorithms , 2017 10.1137/1.9781611974782.169 Citation Details
Alistarh, Dan and Aspnes, James and Ellen, Faith and Gelashvili, Rati and Zhu, Leqi "Why extension-based proofs fail" 51st Annual ACM SIGACT Symposium on Theory of Computing , 2019 10.1145/3313276.3316407 Citation Details
Alistarh, Dan and Aspnes, James and Gelashvili, Rati "Space-Optimal Majority in Population Protocols" ACM-SIAM Symposium on Discrete Algorithms , 2018 10.1137/1.9781611975031.144 Citation Details
Aspnes, James "Clocked Population Protocols" ACM Symposium on Principles of Distributed Computing , 2017 10.1145/3087801.3087836 Citation Details
Aspnes, James and Beauquier, Joffroy and Burman, Janna and Sohier, Devan "Time and Space Optimal Counting in Population Protocols" Leibniz international proceedings in informatics , v.70 , 2016 10.4230/LIPIcs.OPODIS.2016.13 Citation Details
Aspnes, James and Er, He Yang "Consensus with Max Registers" Leibniz international proceedings in informatics , v.146 , 2019 http://dx.doi.org/10.4230/LIPIcs.DISC.2019.1 Citation Details
Aspnes, James and Haeupler, Bernhard and Tong, Alexander and Woelfel, Phillip "Allocate-On-Use Space Complexity of Shared-Memory Algorithms" International Symposium on Distributed Computing , 2018 Citation Details
Aspnes, James and Haeupler, Bernhard and Tong, Alexander and Woelfl, Philipp "Allocate-On-Use Space Complexity of Shared-Memory Algorithms" International Symposium on Distributed Computing , 2018 10.4230/LIPIcs.DISC.2018.8 Citation Details
Leet, Christopher and Wang, Xin and Yang, Y. Richard and Aspnes, James "Toward the first SDN programming capacity theorem on realizing high-level programs on low-level datapaths" IEEE International Conference on Computer Communications , 2018 Citation Details
Lockerman, Joshua and Faleiro, Jose M. and Kim, Juno and Sankaram, Soham and Abadi, Daniel J. and Aspnes, James and Siddhartha, Sen and Balakrishnan, Mahesh "The FuzzyLog: A Partially Ordered Shared Log" OSDI 2018 , 2018 Citation Details
(Showing: 1 - 10 of 13)

PROJECT OUTCOMES REPORT

Disclaimer

This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.

The FuzzyLog project investigated new abstractions for designing, implementing, and verifying distributed systems. 

 

The FuzzyLog is a partially ordered shared log abstraction. In the past few years, shared logs have enormously simplified the construction of distributed systems by hiding the complexity of asynchrony and failures behind a simple, data-centric abstraction. However, this simplicity comes at the cost of scaling and availability, since shared logs require all commands in a distributed system to be totally ordered. The FuzzyLog advances this state of the art by providing the simplicity of a shared log while allowing for the partial ordering of commands. FuzzyLog applications can scale linearly and tolerate network partitions while retaining simple code and design. The FuzzyLog system was presented at the OSDI 2018 conference.

 

While systems such as the FuzzyLog make it easier to build distributed applications, their own implementations are complex and difficult to evolve. To make it simpler to build and reason about such implementations, we proposed the Write-Once Register (WOR), which is a programming and theoretical abstraction for hiding the logic of a single consensus slot. WORs can be combined in different ways to implement systems such as shared logs and fault-tolerant atomic commit. We proposed a system called WormSpace that provides the WOR as a first-class programming abstraction; this work was presented at the SoCC 2019 conference.

The abstractions proposed in the FuzzyLog project were successful in providing a common collaborative platform for systems practitioners and theoreticians. The FuzzyLog system introduces new distributed algorithms for transaction ordering that advance the state of the art. The WormSpace system is the first fully verified distributed systems stack from the application to the operating system.

 

In terms of broader impact, the abstractions in the FuzzyLog project are already beginning to see adoption in real production systems. Systems are increasingly distributed by default, as we move towards a mix of edge devices and powerful cloud platforms to serve applications ranging from the mundane to the mission-critical. In such an environment, the inherent complexity of distributed coordination results in systems that are slow to develop and evolve, and prone to failures and inconsistency. By simplifying the construction and formal verification of distributed systems, we accelerate innovation while still providing extremely high levels of consistency and fault-tolerance.


 

 


Last Modified: 01/13/2020
Modified by: James Aspnes

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page