incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Poorna Chandra <>
Subject [VOTE] Accept Tephra into the Apache Incubator
Date Fri, 04 Mar 2016 01:29:49 GMT
Hi All,

Tephra proposal was sent out for discussion last week. The proposal is
available at

Please vote to accept Tephra into the Apache Incubator. The vote will be
open for the next 72 hours.

[ ] +1 Accept Tephra as an Apache Incubator podling.
[ ] +0 Abstain.
[ ] -1 Don’t accept Tephra as an Apache Incubator podling because ...



= Abstract =

Tephra is a system for providing globally consistent transactions on
top of Apache HBase and other storage engines.

= Proposal =

Tephra is a transaction engine for distributed data stores like Apache HBase.
It provides ACID semantics for concurrent data operations that span over region
boundaries in HBase using Optimistic Concurrency Control.

= Background =

HBase provides strong consistency with row- or region-level ACID
operations. However, it sacrifices cross-region and cross-table
consistency in favor of scalability. This trade-off requires application
developers to handle  the complexity of ensuring consistency when their
modifications span region boundaries. By providing support for global
transactions that span regions, tables, or multiple RPCs,
Tephra simplifies application development on top of HBase, without a
significant impact on performance or scalability for many workloads.

Tephra leverages HBase’s native data versioning to provide multi-versioned
concurrency control (MVCC) for transactional reads and writes.
With MVCC capability, each transaction sees its own consistent “snapshot” of
data, providing snapshot isolation of concurrent transactions.
MVCC along with conflict detection and handling enables Optimistic Concurrency

Tephra consists of three main components:
 * Transaction Server – maintains global view of transaction state, assigns
   new transaction IDs and performs conflict detection;
 * Transaction Client – coordinates start, commit, and rollback of
transactions; and
 * Transaction Processor Coprocessor – applies filtering to the data read (based
   on a given transaction’s state) and cleans up any data from old
   (no longer visible) transactions.

Although Tephra only supports HBase now, it can be extended to support
transactions on any store that has multi-versioning and rollback
support. The transactions
can span over multiple stores and storage paradigms.

= Rationale =

Tephra has simple abstractions which can be used by an application to
add transaction support over HBase. By abstracting away transaction
handling using Tephra, the application is freed of
transaction logic, and the application developer can focus on the use case.
Also, Tephra can be extended to support transactions on data sources other
than HBase.

By making Tephra an Apache open source project, we believe that there will
be wider adoption and more opportunities for Tephra to be integrated
into other Apache projects.

= Current Status =

Tephra was built at Cask Data Inc. initially as part of
open-source framework Cask Data Application Platform (CDAP)
It was later converted into an independent open source project with
Apache 2.0 License [[]].

Tephra is used in CDAP as the transaction engine. As part of CDAP, Tephra
has been deployed at multiple companies.

Apache Phoenix is using Tephra as transaction engine in the next release.

== Meritocracy ==

Our intent with this incubator proposal is to start building a diverse
developer community around Tephra following the Apache meritocracy model.
Since Tephra was initially developed in early 2013, we have had fast
adoption and contributions within Cask Data. We are looking forward to
new contributors. We wish to build a community based on Apache's
meritocracy principles, working with those who contribute significantly to
the project and welcoming them to be committers both during the incubation
process and beyond.

== Community ==

Core developers of Tephra are at Cask Data. Recently the developer community
has expanded to include folks from Apache Phoenix. We hope to extend our
contributor base significantly and we will invite all who are interested
in working on distributed transaction engine.

== Core Developers ==

A few engineers from Cask Data and outside have developed Tephra:
Andreas Neumann, Terence Yim, Gary Helmling, Andrew Purtell and
Poorna Chandra.

== Alignment ==

The ASF is the natural choice to host the Tephra project as its goal of
encouraging community-driven open source projects fits with our vision for

Additionally, many other projects with which we are familiar and expect
Tephra to integrate with, such as Phoenix, Zookeeper, HDFS, log4j, and others
mentioned in the External Dependencies section are Apache projects, and
Tephra will benefit by close proximity to them.

= Known Risks =

== Orphaned Products ==

There is very little risk of Tephra being orphaned, as it is a key part of
Cask Data’s products. The core Tephra developers plan to continue to work
on Tephra, and Cask Data has funding in place to support their efforts
going forward.
Also with Phoenix using Tephra for transactions, Phoenix developers are
keen on contributing to Tephra.

== Inexperience with Open Source ==

Several of the core developers have experience with open source
development. Andreas Neumann is an Apache committer for Oozie and Twill.
Terence Yim is an Apache committer for Helix and Twill. Poorna Chandra
is an Apache committer for Twill. Gary Helmling is a committer for
Apache Twill and a committer and PMC member for Apache HBase.
James Taylor is PMC chair for Apache Phoenix, PMC member of Apache Calcite,
and an IPMC member.

== Homogeneous Developers ==

The current core developers are all Cask Data employees. However, we
intend to establish a developer community that includes independent and
corporate contributors. We are encouraging new contributors via our mailing
lists, public presentations, and personal contacts, and we will continue to
do so.

Apache Phoenix developers have already contributed several patches to Tephra,
and have expressed interest in becoming long term contributors.

== Reliance on Salaried Developers ==

Currently, these developers are paid to work on Tephra. Once the project has
built a community, we expect to attract committers, developers and community
other than the current core developers. However, because Cask Data
products use Tephra internally, the reliance on salaried developers is
unlikely to change, at least in the near term.

== Relationships with Other Apache Products ==

Tephra is deeply integrated with Apache projects. Tephra provides transactions
over Apache HBase, and uses Apache Twill and Apache Zookeeper for coordination.
A number of other Apache projects are Tephra dependencies, and are
listed in the External Dependencies section.

In addition, Apache Phoenix is using Tephra as the transaction engine.

== An Excessive Fascination with the Apache Brand ==

While we respect the reputation of the Apache brand and have no doubt that
it will attract contributors and users, our interest is primarily to give
Tephra a solid home as an open source project following an established
development model. We have also given additional reasons in the Rationale
and Alignment sections.

= Documentation =

The current documentation for Tephra is at

= Initial Source =

Tephra codebase is currently hosted at

= Source and Intellectual Property Submission Plan =

Tephra codebase is currently licensed under Apache 2.0 license.
Cask Data owns the trademark for "Tephra". As part of the incubation process
Cask Data will transfer the trademark to Apache Foundation.

= External Dependencies =

The dependencies all have Apache-compatible licenses:
 * dropwizard metrics (Apache 2.0)
 * fastutil (Apache 2.0)
 * gson (Apache 2.0)
 * guava-libraries (Apache 2.0)
 * guice (Apache 2.0)
 * hadoop (Apache 2.0)
 * hbase (Apache 2.0)
 * hdfs (Apache 2.0)
 * junit (EPL v1.0)
 * logback (EPL v1.0 )
 * slf4j (MIT)
 * thrift (Apache 2.0)
 * twill (Apache 2.0)
 * zookeeper (Apache 2.0)

= Cryptography =

Tephra does not use cryptography itself, however it can run on secure Hadoop,
which uses Kerberos.

= Required Resources =

== Mailing Lists ==

 * tephra-private for private PMC discussions (with moderated subscriptions)
 * tephra-dev for technical discussions among contributors
 * tephra-commits for notification about commits

== Subversion Directory ==

Git is the preferred source control system: git://

== Issue Tracking ==


== Other Resources ==

The existing code already has unit tests, so we would like a Hudson
instance to run them whenever a new patch is submitted. This can be added
after project creation.

= Initial Committers =

 * Andreas Neumann <anew at apache dot org>
 * Terence Yim <chtyim at apache dot org>
 * Poorna Chandra <poorna at apache dot org>
 * Gokul Gunasekaran <gokul at cask dot co>
 * James Taylor <jamestaylor at apache dot org>
 * Thomas D'Silva <tdsilva at apache dot org>
 * Gary Helmling <garyh at apache dot org>

= Affiliations =

 * Andreas Neumann (Cask Data)
 * Terence Yim (Cask Data)
 * Poorna Chandra (Cask Data)
 * Gokul Gunasekaran (Cask Data)
 * James Taylor (
 * Thomas D'Silva (
 * Gary Helmling (Facebook)

= Sponsors =

== Champion ==

James Taylor <jamestaylor at apache dot org> (V.P., Apache Phoenix)

== Nominated Mentors ==

 * James Taylor <jamestaylor at apache dot org>
 * Lars Hofhansl <larsh at apache dot org>
 * Andrew Purtell <apurtell at apache dot org>
 * Alan Gates <gates at apache dot org>
 * Henry Saputra <hsaputra at apache dot org>

== Sponsoring Entity ==

We are requesting that the Incubator sponsor this project.

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message