|author||Sijie Guo <email@example.com>||Wed Jun 21 10:20:15 2017 -0700|
|committer||Sijie Guo <firstname.lastname@example.org>||Wed Jun 21 10:20:15 2017 -0700|
DL-124: Use Java8 Future rather than twitter Future Switch to use Java8 CompletableFuture, to reduce dependencies introduced by twitter future and make it more friendly to users (users don't think of using which version of scala). This change is based on #132 . Gitsha ce0686e is the change to review. The changes: - Change Future to CompletableFuture - Map to thenApply - flatMap to thenCompose - Added a FutureEventListener, and switch addEvenListener to whenComplete (or whenCompleteAsync) - setValue to complete - setException to completeExceptionally - add rescue, ignore, ensure to FutureUtils as util functions. Author: Sijie Guo <email@example.com> Reviewers: Jia Zhai <None>, Leigh Stewart <firstname.lastname@example.org> Closes #133 from sijie/change_twitter_future_to_java_future
Apache DistributedLog (DL) is a high-throughput, low-latency replicated log service, offering durability, replication and strong consistency as essentials for building reliable real-time applications.
The Apache DistributedLog project is in the process of incubating. This includes the creation of project resources, the refactoring of the initial code submissions, and the formulation of project documentation, planning and the improvements of existing user and operation documents. Any feedback and contributions are welcome.
DL is able to provide milliseconds latency on durable writes with a large number of concurrent logs, and handle high volume reads and writes per second from thousands of clients.
Messages are persisted on disk and replicated to store multiple copies to prevent data loss. They are guaranteed to be consistent among writers and readers in terms of strict ordering.
DL provides an efficient service layer that is optimized for running in a multi- tenant datacenter environment such as Mesos or Yarn. The service layer is able to support large scale writes (fan-in) and reads (fan-out).
DL supports various workloads from latency-sensitive online transaction processing (OLTP) applications (e.g. WAL for distributed database and in-memory replicated state machines), real-time stream ingestion and computing, to analytical processing.
To support a large number of logs for multi-tenants, DL is designed for I/O isolation in real-world workloads.
DL has a modern layered architecture design, which separates the stateless service tier from the stateful storage tier. To support large scale writes (fan- in) and reads (fan-out), DL allows scaling storage independent of scaling CPU and memory.
For filing bugs, suggesting improvements, or requesting new features, help us out by opening a jira.
Join us on Slack - This is the most immediate way to connect with DistributedLog committers and contributors.
We feel that a welcoming open community is important and welcome contributions.
See Developer Guide to get your local environment setup.
Take a look at our open issues.
Make your changes according to our code review workflow.
Checkout the list of project ideas to contribute more features or improvements.
See website/README.md on how to build the website.
See docs/README.md on how to build the documentation.
Apache DistributedLog is an open source project of The Apache Software Foundation (ASF). The Apache DistributedLog project originated from Twitter.