FASTER is a free, open source monitoring & observability project written in C# and released under MIT. It has 6,636 GitHub stars, 596 forks and 36 open issues, and was last pushed 30 days ago. On this registry it ranks #61 of 97 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available.

What is FASTER?

What it is

FASTER is an open-source project from Microsoft that provides a fast persistent recoverable log and key-value store plus cache, implemented in C# and C++. It lives in the .NET ecosystem, with a parallel C++ implementation of the key-value component, and is distributed primarily through the NuGet package Microsoft.FASTER.Core. The repository carries the MIT license and the project has been in development for roughly eight years, with topics covering concurrent and multi-threaded operation, hash tables, indexing, key-value storage, logging, persistence, and recoverability.

The concrete problem it addresses is the difficulty of managing large application state in a resilient and high-performance manner, which the README describes as one of the hardest problems in the cloud today. FASTER attacks this with two separate artifacts: FASTER Log, a concurrent persistent recoverable log with iterator and random reader support, and FASTER KV, a concurrent key-value store and cache aimed at point lookups and heavy update workloads. Both are designed to handle data larger than memory by using fast external storage, whether local or cloud-based.

Key capabilities

  • FASTER Log provides a concurrent persistent recoverable log, iterator, and random reader library written in C#.
  • The log supports very frequent commit operations at low latency and can quickly saturate disk bandwidth.
  • Both sync and async interfaces are exposed, and the log handles disk errors and supports checksums.
  • FASTER KV offers a concurrent key-value store and cache available in both C# and C++.
  • The store is designed for point lookups and heavy update workloads, and supports data larger than memory by leveraging fast external storage, local or cloud.
  • Consistent recovery is supported through a fast non-blocking checkpointing technique.
  • Applications can trade off performance against commit latency through that checkpointing mechanism.

Who uses it and how

  • Applications that must hold state larger than available memory, spilling to local or cloud external storage.
  • Workloads dominated by point lookups and heavy updates against a concurrent key-value store.
  • Systems that issue very frequent commits and need those commits to complete at low latency.
  • Services that require consistent recovery after a failure, using non-blocking checkpoints instead of blocking ones.
  • Teams working in either C# or C++, since the key-value store ships in both languages.

Getting started

The C# implementation installs through the NuGet package Microsoft.FASTER.Core, and the README directs users to the official website at aka.ms/FASTER for learning the capabilities and getting started. No Docker image or hosted service is named in the provided material.

When to use it — and when

project readme (upstream, from github) — read inline

FASTER logo

NuGet

[!IMPORTANT] This repository is no longer actively maintained. We encourage users to look at Garnet — this project evolves FASTER into a full-fledged remote cache-store with strong performance (throughput and latency), scalability, storage, recovery, and more. Garnet's storage engine, Tsavorite, is a highly optimized and evolved fork of FASTER.

Introduction

Managing large application state easily, resiliently, and with high performance is one of the hardest problems in the cloud today. The FASTER project offers two artifacts to help tackle this problem.

  • FASTER Log is a high-performance concurrent persistent recoverable log, iterator, and random reader library in C#. It supports very frequent commit operations at low latency, and can quickly saturate disk bandwidth. It supports both sync and async interfaces, handles disk errors, and supports checksums.

  • FASTER KV is a concurrent key-value store + cache (available in C# and C++) that is designed for point lookups and heavy updates. FASTER supports data larger than memory, by leveraging fast external storage (local or cloud). It also supports consistent recovery using a fast non-blocking checkpointing technique that lets applications trade-off performance for commit latency.

Both FASTER KV and FASTER Log offer orders-of-magnitude higher performance than comparable solutions, on standard workloads. Start learning about FASTER, its unique capabilities, and how to get started at our official website:

aka.ms/FASTER

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Frequently asked questions

Is FASTER free to use?

FASTER is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does FASTER do?

Fast persistent recoverable log and key-value store + cache, in C# and C++.

What is FASTER written in?

FASTER is primarily written in C#. Its source is publicly available at https://github.com/microsoft/FASTER, and it has 6,636 GitHub stars.