You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tephra.apache.org by ch...@apache.org on 2016/06/21 22:21:24 UTC
[51/51] [partial] incubator-tephra git commit: Initialize Tephra site
content
Initialize Tephra site content
Project: http://git-wip-us.apache.org/repos/asf/incubator-tephra/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tephra/commit/1047fad6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tephra/tree/1047fad6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tephra/diff/1047fad6
Branch: refs/heads/site
Commit: 1047fad6bb86f50b0ef5a54f8a31a11adb38710e
Parents: d1a340a
Author: Terence Yim <ch...@gmail.com>
Authored: Tue Jun 21 00:11:12 2016 -0700
Committer: Terence Yim <te...@cask.co>
Committed: Tue Jun 21 15:20:10 2016 -0700
----------------------------------------------------------------------
pom.xml | 140 +-
src/site/markdown/GettingStarted.md | 463 ++
src/site/markdown/HowToContribute.md | 71 +
src/site/markdown/ReleaseGuide.md | 220 +
src/site/markdown/index.md | 116 +
src/site/markdown/releases/0.8.0-incubating.md | 28 +
.../allclasses-frame.html | 258 +
.../allclasses-noframe.html | 258 +
.../tephra/persist/TransactionEdit.State.html | 398 +
.../co/cask/tephra/persist/TransactionEdit.html | 787 ++
.../tephra/persist/TransactionEditCodecs.html | 306 +
.../class-use/TransactionEdit.State.html | 173 +
.../persist/class-use/TransactionEdit.html | 278 +
.../class-use/TransactionEditCodecs.html | 117 +
.../co/cask/tephra/persist/package-frame.html | 25 +
.../co/cask/tephra/persist/package-summary.html | 156 +
.../co/cask/tephra/persist/package-tree.html | 143 +
.../co/cask/tephra/persist/package-use.html | 158 +
.../constant-values.html | 704 ++
.../deprecated-list.html | 211 +
.../apidocs-0.8.0-incubating/help-doc.html | 222 +
.../apidocs-0.8.0-incubating/index-all.html | 6942 ++++++++++++++++++
.../apidocs-0.8.0-incubating/index.html | 75 +
...tractTransactionAwareTable.ActionChange.html | 342 +
.../tephra/AbstractTransactionAwareTable.html | 650 ++
.../tephra/AbstractTransactionExecutor.html | 472 ++
.../org/apache/tephra/ChangeId.html | 310 +
.../tephra/DefaultTransactionExecutor.html | 426 ++
.../tephra/InvalidTruncateTimeException.html | 254 +
.../org/apache/tephra/NoRetryStrategy.html | 278 +
.../apache/tephra/RetryOnConflictStrategy.html | 278 +
.../org/apache/tephra/RetryStrategies.html | 243 +
.../org/apache/tephra/RetryStrategy.html | 221 +
.../tephra/Transaction.VisibilityLevel.html | 354 +
.../org/apache/tephra/Transaction.html | 726 ++
.../org/apache/tephra/TransactionAdmin.html | 261 +
.../org/apache/tephra/TransactionAware.html | 358 +
.../org/apache/tephra/TransactionAwares.html | 232 +
.../org/apache/tephra/TransactionCodec.html | 278 +
.../tephra/TransactionConflictException.html | 272 +
.../org/apache/tephra/TransactionContext.html | 440 ++
...ransactionCouldNotTakeSnapshotException.html | 253 +
.../tephra/TransactionExecutor.Function.html | 219 +
.../tephra/TransactionExecutor.Procedure.html | 219 +
.../tephra/TransactionExecutor.Subroutine.html | 216 +
.../org/apache/tephra/TransactionExecutor.html | 485 ++
.../tephra/TransactionExecutorFactory.html | 209 +
.../tephra/TransactionFailureException.html | 271 +
.../tephra/TransactionManager.InProgressTx.html | 420 ++
.../org/apache/tephra/TransactionManager.html | 708 ++
.../TransactionNotInProgressException.html | 258 +
.../apache/tephra/TransactionServiceMain.html | 361 +
.../apache/tephra/TransactionSystemClient.html | 472 ++
.../org/apache/tephra/TransactionType.html | 328 +
.../tephra/TxConstants.ConflictDetection.html | 349 +
.../apache/tephra/TxConstants.DataJanitor.html | 290 +
.../org/apache/tephra/TxConstants.HBase.html | 300 +
.../org/apache/tephra/TxConstants.Manager.html | 494 ++
.../org/apache/tephra/TxConstants.Metrics.html | 292 +
.../org/apache/tephra/TxConstants.Persist.html | 288 +
.../org/apache/tephra/TxConstants.Service.html | 778 ++
.../tephra/TxConstants.TransactionLog.html | 303 +
.../org/apache/tephra/TxConstants.html | 555 ++
...tractTransactionAwareTable.ActionChange.html | 159 +
.../AbstractTransactionAwareTable.html | 159 +
.../class-use/AbstractTransactionExecutor.html | 162 +
.../org/apache/tephra/class-use/ChangeId.html | 300 +
.../class-use/DefaultTransactionExecutor.html | 117 +
.../class-use/InvalidTruncateTimeException.html | 227 +
.../tephra/class-use/NoRetryStrategy.html | 117 +
.../class-use/RetryOnConflictStrategy.html | 117 +
.../tephra/class-use/RetryStrategies.html | 117 +
.../apache/tephra/class-use/RetryStrategy.html | 211 +
.../class-use/Transaction.VisibilityLevel.html | 210 +
.../apache/tephra/class-use/Transaction.html | 702 ++
.../tephra/class-use/TransactionAdmin.html | 117 +
.../tephra/class-use/TransactionAware.html | 308 +
.../tephra/class-use/TransactionAwares.html | 117 +
.../tephra/class-use/TransactionCodec.html | 159 +
.../class-use/TransactionConflictException.html | 117 +
.../tephra/class-use/TransactionContext.html | 117 +
...ransactionCouldNotTakeSnapshotException.html | 221 +
.../class-use/TransactionExecutor.Function.html | 192 +
.../TransactionExecutor.Procedure.html | 192 +
.../TransactionExecutor.Subroutine.html | 186 +
.../tephra/class-use/TransactionExecutor.html | 182 +
.../class-use/TransactionExecutorFactory.html | 117 +
.../class-use/TransactionFailureException.html | 320 +
.../TransactionManager.InProgressTx.html | 340 +
.../tephra/class-use/TransactionManager.html | 232 +
.../TransactionNotInProgressException.html | 267 +
.../class-use/TransactionServiceMain.html | 117 +
.../class-use/TransactionSystemClient.html | 267 +
.../tephra/class-use/TransactionType.html | 323 +
.../TxConstants.ConflictDetection.html | 224 +
.../class-use/TxConstants.DataJanitor.html | 117 +
.../tephra/class-use/TxConstants.HBase.html | 117 +
.../tephra/class-use/TxConstants.Manager.html | 117 +
.../tephra/class-use/TxConstants.Metrics.html | 117 +
.../tephra/class-use/TxConstants.Persist.html | 117 +
.../tephra/class-use/TxConstants.Service.html | 117 +
.../class-use/TxConstants.TransactionLog.html | 117 +
.../apache/tephra/class-use/TxConstants.html | 117 +
.../coprocessor/TransactionStateCache.html | 380 +
.../TransactionStateCacheSupplier.html | 333 +
.../class-use/TransactionStateCache.html | 196 +
.../TransactionStateCacheSupplier.html | 117 +
.../tephra/coprocessor/package-frame.html | 21 +
.../tephra/coprocessor/package-summary.html | 152 +
.../apache/tephra/coprocessor/package-tree.html | 135 +
.../apache/tephra/coprocessor/package-use.html | 175 +
...AbstractClientProvider.EndpointStrategy.html | 221 +
...ctClientProvider.RandomEndpointStrategy.html | 284 +
...lientProvider.TimeLimitEndpointStrategy.html | 281 +
.../distributed/AbstractClientProvider.html | 393 +
.../distributed/CloseableThriftClient.html | 283 +
.../apache/tephra/distributed/ElasticPool.html | 389 +
.../distributed/PooledClientProvider.html | 360 +
.../distributed/RetryNTimes.Provider.html | 314 +
.../apache/tephra/distributed/RetryNTimes.html | 262 +
.../tephra/distributed/RetryStrategy.html | 236 +
.../distributed/RetryStrategyProvider.html | 234 +
.../distributed/RetryWithBackoff.Provider.html | 314 +
.../tephra/distributed/RetryWithBackoff.html | 268 +
.../distributed/SingleUseClientProvider.html | 362 +
.../distributed/ThreadLocalClientProvider.html | 361 +
.../distributed/ThriftClientProvider.html | 280 +
.../distributed/TransactionConverterUtils.html | 272 +
.../tephra/distributed/TransactionService.html | 387 +
.../distributed/TransactionServiceClient.html | 624 ++
.../TransactionServiceThriftClient.html | 516 ++
.../TransactionServiceThriftHandler.html | 570 ++
...AbstractClientProvider.EndpointStrategy.html | 181 +
...ctClientProvider.RandomEndpointStrategy.html | 117 +
...lientProvider.TimeLimitEndpointStrategy.html | 117 +
.../class-use/AbstractClientProvider.html | 173 +
.../class-use/CloseableThriftClient.html | 174 +
.../distributed/class-use/ElasticPool.html | 117 +
.../class-use/PooledClientProvider.html | 117 +
.../class-use/RetryNTimes.Provider.html | 117 +
.../distributed/class-use/RetryNTimes.html | 117 +
.../distributed/class-use/RetryStrategy.html | 190 +
.../class-use/RetryStrategyProvider.html | 167 +
.../class-use/RetryWithBackoff.Provider.html | 117 +
.../distributed/class-use/RetryWithBackoff.html | 117 +
.../class-use/SingleUseClientProvider.html | 117 +
.../class-use/ThreadLocalClientProvider.html | 117 +
.../class-use/ThriftClientProvider.html | 197 +
.../class-use/TransactionConverterUtils.html | 117 +
.../class-use/TransactionService.html | 117 +
.../class-use/TransactionServiceClient.html | 157 +
.../TransactionServiceThriftClient.html | 206 +
.../TransactionServiceThriftHandler.html | 117 +
.../tephra/distributed/package-frame.html | 41 +
.../tephra/distributed/package-summary.html | 269 +
.../apache/tephra/distributed/package-tree.html | 167 +
.../apache/tephra/distributed/package-use.html | 210 +
.../distributed/thrift/TBoolean._Fields.html | 399 +
.../tephra/distributed/thrift/TBoolean.html | 658 ++
.../TInvalidTruncateTimeException._Fields.html | 399 +
.../thrift/TInvalidTruncateTimeException.html | 684 ++
.../thrift/TTransaction._Fields.html | 497 ++
.../tephra/distributed/thrift/TTransaction.html | 1445 ++++
...onCouldNotTakeSnapshotException._Fields.html | 399 +
...ransactionCouldNotTakeSnapshotException.html | 684 ++
...ansactionNotInProgressException._Fields.html | 399 +
.../TTransactionNotInProgressException.html | 684 ++
.../TTransactionServer.AsyncClient.Factory.html | 273 +
...nsactionServer.AsyncClient.abortTx_call.html | 337 +
...tionServer.AsyncClient.canCommitTx_call.html | 341 +
...ctionServer.AsyncClient.checkpoint_call.html | 339 +
...sactionServer.AsyncClient.commitTx_call.html | 339 +
...tionServer.AsyncClient.getSnapshot_call.html | 337 +
.../thrift/TTransactionServer.AsyncClient.html | 644 ++
...onServer.AsyncClient.invalidTxSize_call.html | 335 +
...ionServer.AsyncClient.invalidateTx_call.html | 337 +
...ctionServer.AsyncClient.resetState_call.html | 335 +
...actionServer.AsyncClient.startLong_call.html | 335 +
...rver.AsyncClient.startShortTimeout_call.html | 337 +
...ctionServer.AsyncClient.startShort_call.html | 335 +
...ansactionServer.AsyncClient.status_call.html | 335 +
...syncClient.truncateInvalidTxBefore_call.html | 339 +
...rver.AsyncClient.truncateInvalidTx_call.html | 337 +
.../thrift/TTransactionServer.AsyncIface.html | 445 ++
.../TTransactionServer.Client.Factory.html | 290 +
.../thrift/TTransactionServer.Client.html | 1052 +++
.../thrift/TTransactionServer.Iface.html | 439 ++
.../TTransactionServer.Processor.abortTx.html | 318 +
...TransactionServer.Processor.canCommitTx.html | 318 +
...TTransactionServer.Processor.checkpoint.html | 318 +
.../TTransactionServer.Processor.commitTx.html | 318 +
...TransactionServer.Processor.getSnapshot.html | 318 +
.../thrift/TTransactionServer.Processor.html | 350 +
...ansactionServer.Processor.invalidTxSize.html | 318 +
...ransactionServer.Processor.invalidateTx.html | 318 +
...TTransactionServer.Processor.resetState.html | 318 +
.../TTransactionServer.Processor.startLong.html | 318 +
...TTransactionServer.Processor.startShort.html | 318 +
...ctionServer.Processor.startShortTimeout.html | 318 +
.../TTransactionServer.Processor.status.html | 318 +
...ctionServer.Processor.truncateInvalidTx.html | 318 +
...erver.Processor.truncateInvalidTxBefore.html | 318 +
...TTransactionServer.abortTx_args._Fields.html | 399 +
.../thrift/TTransactionServer.abortTx_args.html | 662 ++
...ransactionServer.abortTx_result._Fields.html | 365 +
.../TTransactionServer.abortTx_result.html | 569 ++
...nsactionServer.canCommitTx_args._Fields.html | 411 ++
.../TTransactionServer.canCommitTx_args.html | 784 ++
...actionServer.canCommitTx_result._Fields.html | 411 ++
.../TTransactionServer.canCommitTx_result.html | 745 ++
...ansactionServer.checkpoint_args._Fields.html | 399 +
.../TTransactionServer.checkpoint_args.html | 662 ++
...sactionServer.checkpoint_result._Fields.html | 411 ++
.../TTransactionServer.checkpoint_result.html | 745 ++
...TransactionServer.commitTx_args._Fields.html | 399 +
.../TTransactionServer.commitTx_args.html | 662 ++
...ansactionServer.commitTx_result._Fields.html | 411 ++
.../TTransactionServer.commitTx_result.html | 745 ++
...nsactionServer.getSnapshot_args._Fields.html | 365 +
.../TTransactionServer.getSnapshot_args.html | 569 ++
...actionServer.getSnapshot_result._Fields.html | 411 ++
.../TTransactionServer.getSnapshot_result.html | 771 ++
.../distributed/thrift/TTransactionServer.html | 377 +
...actionServer.invalidTxSize_args._Fields.html | 365 +
.../TTransactionServer.invalidTxSize_args.html | 569 ++
...tionServer.invalidTxSize_result._Fields.html | 399 +
...TTransactionServer.invalidTxSize_result.html | 662 ++
...sactionServer.invalidateTx_args._Fields.html | 399 +
.../TTransactionServer.invalidateTx_args.html | 662 ++
...ctionServer.invalidateTx_result._Fields.html | 399 +
.../TTransactionServer.invalidateTx_result.html | 662 ++
...ansactionServer.resetState_args._Fields.html | 365 +
.../TTransactionServer.resetState_args.html | 569 ++
...sactionServer.resetState_result._Fields.html | 365 +
.../TTransactionServer.resetState_result.html | 569 ++
...ransactionServer.startLong_args._Fields.html | 365 +
.../TTransactionServer.startLong_args.html | 569 ++
...nsactionServer.startLong_result._Fields.html | 399 +
.../TTransactionServer.startLong_result.html | 662 ++
...onServer.startShortTimeout_args._Fields.html | 399 +
...ransactionServer.startShortTimeout_args.html | 662 ++
...Server.startShortTimeout_result._Fields.html | 399 +
...nsactionServer.startShortTimeout_result.html | 662 ++
...ansactionServer.startShort_args._Fields.html | 365 +
.../TTransactionServer.startShort_args.html | 569 ++
...sactionServer.startShort_result._Fields.html | 399 +
.../TTransactionServer.startShort_result.html | 662 ++
.../TTransactionServer.status_args._Fields.html | 365 +
.../thrift/TTransactionServer.status_args.html | 569 ++
...TransactionServer.status_result._Fields.html | 399 +
.../TTransactionServer.status_result.html | 662 ++
...er.truncateInvalidTxBefore_args._Fields.html | 399 +
...tionServer.truncateInvalidTxBefore_args.html | 662 ++
....truncateInvalidTxBefore_result._Fields.html | 411 ++
...onServer.truncateInvalidTxBefore_result.html | 745 ++
...onServer.truncateInvalidTx_args._Fields.html | 399 +
...ransactionServer.truncateInvalidTx_args.html | 701 ++
...Server.truncateInvalidTx_result._Fields.html | 399 +
...nsactionServer.truncateInvalidTx_result.html | 662 ++
.../distributed/thrift/TTransactionType.html | 359 +
.../distributed/thrift/TVisibilityLevel.html | 371 +
.../thrift/class-use/TBoolean._Fields.html | 226 +
.../distributed/thrift/class-use/TBoolean.html | 366 +
.../TInvalidTruncateTimeException._Fields.html | 226 +
.../TInvalidTruncateTimeException.html | 241 +
.../thrift/class-use/TTransaction._Fields.html | 226 +
.../thrift/class-use/TTransaction.html | 610 ++
...onCouldNotTakeSnapshotException._Fields.html | 226 +
...ransactionCouldNotTakeSnapshotException.html | 241 +
...ansactionNotInProgressException._Fields.html | 226 +
.../TTransactionNotInProgressException.html | 307 +
.../TTransactionServer.AsyncClient.Factory.html | 117 +
...nsactionServer.AsyncClient.abortTx_call.html | 178 +
...tionServer.AsyncClient.canCommitTx_call.html | 181 +
...ctionServer.AsyncClient.checkpoint_call.html | 178 +
...sactionServer.AsyncClient.commitTx_call.html | 178 +
...tionServer.AsyncClient.getSnapshot_call.html | 175 +
.../TTransactionServer.AsyncClient.html | 157 +
...onServer.AsyncClient.invalidTxSize_call.html | 175 +
...ionServer.AsyncClient.invalidateTx_call.html | 178 +
...ctionServer.AsyncClient.resetState_call.html | 175 +
...actionServer.AsyncClient.startLong_call.html | 175 +
...rver.AsyncClient.startShortTimeout_call.html | 178 +
...ctionServer.AsyncClient.startShort_call.html | 175 +
...ansactionServer.AsyncClient.status_call.html | 175 +
...syncClient.truncateInvalidTxBefore_call.html | 178 +
...rver.AsyncClient.truncateInvalidTx_call.html | 178 +
.../TTransactionServer.AsyncIface.html | 157 +
.../TTransactionServer.Client.Factory.html | 117 +
.../class-use/TTransactionServer.Client.html | 162 +
.../class-use/TTransactionServer.Iface.html | 252 +
.../TTransactionServer.Processor.abortTx.html | 117 +
...TransactionServer.Processor.canCommitTx.html | 117 +
...TTransactionServer.Processor.checkpoint.html | 117 +
.../TTransactionServer.Processor.commitTx.html | 117 +
...TransactionServer.Processor.getSnapshot.html | 117 +
.../class-use/TTransactionServer.Processor.html | 117 +
...ansactionServer.Processor.invalidTxSize.html | 117 +
...ransactionServer.Processor.invalidateTx.html | 117 +
...TTransactionServer.Processor.resetState.html | 117 +
.../TTransactionServer.Processor.startLong.html | 117 +
...TTransactionServer.Processor.startShort.html | 117 +
...ctionServer.Processor.startShortTimeout.html | 117 +
.../TTransactionServer.Processor.status.html | 117 +
...ctionServer.Processor.truncateInvalidTx.html | 117 +
...erver.Processor.truncateInvalidTxBefore.html | 117 +
...TTransactionServer.abortTx_args._Fields.html | 226 +
.../TTransactionServer.abortTx_args.html | 200 +
...ransactionServer.abortTx_result._Fields.html | 226 +
.../TTransactionServer.abortTx_result.html | 192 +
...nsactionServer.canCommitTx_args._Fields.html | 226 +
.../TTransactionServer.canCommitTx_args.html | 204 +
...actionServer.canCommitTx_result._Fields.html | 226 +
.../TTransactionServer.canCommitTx_result.html | 200 +
...ansactionServer.checkpoint_args._Fields.html | 226 +
.../TTransactionServer.checkpoint_args.html | 200 +
...sactionServer.checkpoint_result._Fields.html | 226 +
.../TTransactionServer.checkpoint_result.html | 200 +
...TransactionServer.commitTx_args._Fields.html | 226 +
.../TTransactionServer.commitTx_args.html | 200 +
...ansactionServer.commitTx_result._Fields.html | 226 +
.../TTransactionServer.commitTx_result.html | 200 +
...nsactionServer.getSnapshot_args._Fields.html | 226 +
.../TTransactionServer.getSnapshot_args.html | 196 +
...actionServer.getSnapshot_result._Fields.html | 226 +
.../TTransactionServer.getSnapshot_result.html | 204 +
.../thrift/class-use/TTransactionServer.html | 117 +
...actionServer.invalidTxSize_args._Fields.html | 226 +
.../TTransactionServer.invalidTxSize_args.html | 196 +
...tionServer.invalidTxSize_result._Fields.html | 226 +
...TTransactionServer.invalidTxSize_result.html | 196 +
...sactionServer.invalidateTx_args._Fields.html | 226 +
.../TTransactionServer.invalidateTx_args.html | 200 +
...ctionServer.invalidateTx_result._Fields.html | 226 +
.../TTransactionServer.invalidateTx_result.html | 196 +
...ansactionServer.resetState_args._Fields.html | 226 +
.../TTransactionServer.resetState_args.html | 196 +
...sactionServer.resetState_result._Fields.html | 226 +
.../TTransactionServer.resetState_result.html | 192 +
...ransactionServer.startLong_args._Fields.html | 226 +
.../TTransactionServer.startLong_args.html | 196 +
...nsactionServer.startLong_result._Fields.html | 226 +
.../TTransactionServer.startLong_result.html | 196 +
...onServer.startShortTimeout_args._Fields.html | 226 +
...ransactionServer.startShortTimeout_args.html | 200 +
...Server.startShortTimeout_result._Fields.html | 226 +
...nsactionServer.startShortTimeout_result.html | 196 +
...ansactionServer.startShort_args._Fields.html | 226 +
.../TTransactionServer.startShort_args.html | 196 +
...sactionServer.startShort_result._Fields.html | 226 +
.../TTransactionServer.startShort_result.html | 196 +
.../TTransactionServer.status_args._Fields.html | 226 +
.../TTransactionServer.status_args.html | 196 +
...TransactionServer.status_result._Fields.html | 226 +
.../TTransactionServer.status_result.html | 196 +
...er.truncateInvalidTxBefore_args._Fields.html | 226 +
...tionServer.truncateInvalidTxBefore_args.html | 200 +
....truncateInvalidTxBefore_result._Fields.html | 226 +
...onServer.truncateInvalidTxBefore_result.html | 200 +
...onServer.truncateInvalidTx_args._Fields.html | 226 +
...ransactionServer.truncateInvalidTx_args.html | 200 +
...Server.truncateInvalidTx_result._Fields.html | 226 +
...nsactionServer.truncateInvalidTx_result.html | 196 +
.../thrift/class-use/TTransactionType.html | 221 +
.../thrift/class-use/TVisibilityLevel.html | 221 +
.../distributed/thrift/package-frame.html | 132 +
.../distributed/thrift/package-summary.html | 646 ++
.../tephra/distributed/thrift/package-tree.html | 279 +
.../tephra/distributed/thrift/package-use.html | 498 ++
.../apache/tephra/examples/BalanceBooks.html | 396 +
.../tephra/examples/class-use/BalanceBooks.html | 117 +
.../apache/tephra/examples/package-frame.html | 20 +
.../apache/tephra/examples/package-summary.html | 165 +
.../apache/tephra/examples/package-tree.html | 130 +
.../org/apache/tephra/examples/package-use.html | 117 +
.../hbase/HBase10ConfigurationProvider.html | 291 +
.../hbase/HBase11ConfigurationProvider.html | 291 +
.../hbase/HBase96ConfigurationProvider.html | 291 +
.../hbase/HBase98ConfigurationProvider.html | 291 +
.../tephra/hbase/SecondaryIndexTable.html | 330 +
.../tephra/hbase/TransactionAwareHTable.html | 1285 ++++
.../class-use/HBase10ConfigurationProvider.html | 117 +
.../class-use/HBase11ConfigurationProvider.html | 117 +
.../class-use/HBase96ConfigurationProvider.html | 117 +
.../class-use/HBase98ConfigurationProvider.html | 117 +
.../hbase/class-use/SecondaryIndexTable.html | 117 +
.../hbase/class-use/TransactionAwareHTable.html | 117 +
.../hbase/coprocessor/CellSkipFilter.html | 534 ++
.../hbase/coprocessor/TransactionFilters.html | 299 +
.../hbase/coprocessor/TransactionProcessor.html | 620 ++
.../TransactionVisibilityFilter.html | 594 ++
.../coprocessor/class-use/CellSkipFilter.html | 117 +
.../class-use/TransactionFilters.html | 117 +
.../class-use/TransactionProcessor.html | 117 +
.../class-use/TransactionVisibilityFilter.html | 117 +
.../tephra/hbase/coprocessor/package-frame.html | 23 +
.../hbase/coprocessor/package-summary.html | 161 +
.../tephra/hbase/coprocessor/package-tree.html | 145 +
.../tephra/hbase/coprocessor/package-use.html | 117 +
.../org/apache/tephra/hbase/package-frame.html | 25 +
.../apache/tephra/hbase/package-summary.html | 167 +
.../org/apache/tephra/hbase/package-tree.html | 143 +
.../org/apache/tephra/hbase/package-use.html | 117 +
.../tephra/inmemory/DetachedTxSystemClient.html | 576 ++
.../inmemory/InMemoryTransactionService.html | 477 ++
.../tephra/inmemory/InMemoryTxSystemClient.html | 577 ++
.../tephra/inmemory/MinimalTxSystemClient.html | 571 ++
.../class-use/DetachedTxSystemClient.html | 117 +
.../class-use/InMemoryTransactionService.html | 159 +
.../class-use/InMemoryTxSystemClient.html | 117 +
.../class-use/MinimalTxSystemClient.html | 117 +
.../apache/tephra/inmemory/package-frame.html | 23 +
.../apache/tephra/inmemory/package-summary.html | 163 +
.../apache/tephra/inmemory/package-tree.html | 137 +
.../org/apache/tephra/inmemory/package-use.html | 154 +
.../tephra/metrics/DefaultMetricsCollector.html | 456 ++
.../apache/tephra/metrics/MetricsCollector.html | 317 +
.../tephra/metrics/TxMetricsCollector.html | 443 ++
.../class-use/DefaultMetricsCollector.html | 117 +
.../metrics/class-use/MetricsCollector.html | 238 +
.../metrics/class-use/TxMetricsCollector.html | 159 +
.../apache/tephra/metrics/package-frame.html | 25 +
.../apache/tephra/metrics/package-summary.html | 160 +
.../org/apache/tephra/metrics/package-tree.html | 146 +
.../org/apache/tephra/metrics/package-use.html | 203 +
.../org/apache/tephra/package-frame.html | 67 +
.../org/apache/tephra/package-summary.html | 412 ++
.../org/apache/tephra/package-tree.html | 201 +
.../org/apache/tephra/package-use.html | 536 ++
.../persist/AbstractTransactionLog.Entry.html | 334 +
.../tephra/persist/AbstractTransactionLog.html | 477 ++
.../AbstractTransactionStateStorage.html | 360 +
.../tephra/persist/CommitMarkerCodec.html | 306 +
.../tephra/persist/HDFSTransactionLog.html | 367 +
.../HDFSTransactionLogReaderSupplier.html | 269 +
.../persist/HDFSTransactionLogReaderV1.html | 325 +
.../persist/HDFSTransactionLogReaderV2.html | 327 +
.../persist/HDFSTransactionLogReaderV3.html | 327 +
.../persist/HDFSTransactionStateStorage.html | 606 ++
.../org/apache/tephra/persist/HDFSUtil.html | 273 +
.../tephra/persist/LocalFileTransactionLog.html | 363 +
.../LocalFileTransactionStateStorage.html | 579 ++
.../persist/NoOpTransactionStateStorage.html | 608 ++
.../tephra/persist/TransactionEdit.State.html | 398 +
.../apache/tephra/persist/TransactionEdit.html | 739 ++
.../tephra/persist/TransactionEditCodecs.html | 296 +
.../apache/tephra/persist/TransactionLog.html | 290 +
.../tephra/persist/TransactionLogReader.html | 256 +
.../tephra/persist/TransactionLogWriter.html | 270 +
.../tephra/persist/TransactionSnapshot.html | 534 ++
.../tephra/persist/TransactionStateStorage.html | 462 ++
.../persist/TransactionVisibilityState.html | 297 +
.../class-use/AbstractTransactionLog.Entry.html | 161 +
.../class-use/AbstractTransactionLog.html | 167 +
.../AbstractTransactionStateStorage.html | 167 +
.../persist/class-use/CommitMarkerCodec.html | 117 +
.../persist/class-use/HDFSTransactionLog.html | 117 +
.../HDFSTransactionLogReaderSupplier.html | 117 +
.../class-use/HDFSTransactionLogReaderV1.html | 117 +
.../class-use/HDFSTransactionLogReaderV2.html | 117 +
.../class-use/HDFSTransactionLogReaderV3.html | 117 +
.../class-use/HDFSTransactionStateStorage.html | 117 +
.../tephra/persist/class-use/HDFSUtil.html | 117 +
.../class-use/LocalFileTransactionLog.html | 117 +
.../LocalFileTransactionStateStorage.html | 117 +
.../class-use/NoOpTransactionStateStorage.html | 117 +
.../class-use/TransactionEdit.State.html | 174 +
.../persist/class-use/TransactionEdit.html | 347 +
.../class-use/TransactionEditCodecs.html | 117 +
.../persist/class-use/TransactionLog.html | 227 +
.../persist/class-use/TransactionLogReader.html | 202 +
.../persist/class-use/TransactionLogWriter.html | 169 +
.../persist/class-use/TransactionSnapshot.html | 321 +
.../class-use/TransactionStateStorage.html | 225 +
.../class-use/TransactionVisibilityState.html | 300 +
.../apache/tephra/persist/package-frame.html | 48 +
.../apache/tephra/persist/package-summary.html | 303 +
.../org/apache/tephra/persist/package-tree.html | 188 +
.../org/apache/tephra/persist/package-use.html | 351 +
.../apache/tephra/rpc/RPCServiceHandler.html | 232 +
.../tephra/rpc/ThriftRPCServer.Builder.html | 310 +
.../org/apache/tephra/rpc/ThriftRPCServer.html | 361 +
.../tephra/rpc/class-use/RPCServiceHandler.html | 198 +
.../rpc/class-use/ThriftRPCServer.Builder.html | 185 +
.../tephra/rpc/class-use/ThriftRPCServer.html | 159 +
.../org/apache/tephra/rpc/package-frame.html | 25 +
.../org/apache/tephra/rpc/package-summary.html | 167 +
.../org/apache/tephra/rpc/package-tree.html | 139 +
.../org/apache/tephra/rpc/package-use.html | 185 +
.../org/apache/tephra/runtime/ConfigModule.html | 279 +
.../apache/tephra/runtime/DiscoveryModules.html | 286 +
.../tephra/runtime/TransactionClientModule.html | 279 +
.../runtime/TransactionInMemoryModule.html | 280 +
.../tephra/runtime/TransactionModules.html | 285 +
.../TransactionStateStorageProvider.html | 235 +
.../org/apache/tephra/runtime/ZKModule.html | 279 +
.../tephra/runtime/class-use/ConfigModule.html | 117 +
.../runtime/class-use/DiscoveryModules.html | 117 +
.../class-use/TransactionClientModule.html | 117 +
.../class-use/TransactionInMemoryModule.html | 117 +
.../runtime/class-use/TransactionModules.html | 117 +
.../TransactionStateStorageProvider.html | 117 +
.../tephra/runtime/class-use/ZKModule.html | 117 +
.../apache/tephra/runtime/package-frame.html | 26 +
.../apache/tephra/runtime/package-summary.html | 175 +
.../org/apache/tephra/runtime/package-tree.html | 140 +
.../org/apache/tephra/runtime/package-use.html | 117 +
.../apache/tephra/snapshot/BinaryDecoder.html | 310 +
.../apache/tephra/snapshot/BinaryEncoder.html | 304 +
.../tephra/snapshot/DefaultSnapshotCodec.html | 396 +
.../apache/tephra/snapshot/SnapshotCodec.html | 270 +
.../tephra/snapshot/SnapshotCodecProvider.html | 336 +
.../apache/tephra/snapshot/SnapshotCodecV2.html | 326 +
.../apache/tephra/snapshot/SnapshotCodecV3.html | 298 +
.../apache/tephra/snapshot/SnapshotCodecV4.html | 327 +
.../snapshot/class-use/BinaryDecoder.html | 169 +
.../snapshot/class-use/BinaryEncoder.html | 199 +
.../class-use/DefaultSnapshotCodec.html | 176 +
.../snapshot/class-use/SnapshotCodec.html | 190 +
.../class-use/SnapshotCodecProvider.html | 183 +
.../snapshot/class-use/SnapshotCodecV2.html | 169 +
.../snapshot/class-use/SnapshotCodecV3.html | 117 +
.../snapshot/class-use/SnapshotCodecV4.html | 117 +
.../apache/tephra/snapshot/package-frame.html | 30 +
.../apache/tephra/snapshot/package-summary.html | 202 +
.../apache/tephra/snapshot/package-tree.html | 146 +
.../org/apache/tephra/snapshot/package-use.html | 200 +
.../tephra/util/ConfigurationFactory.html | 290 +
.../tephra/util/ConfigurationProvider.html | 285 +
.../tephra/util/HBaseVersion.Version.html | 411 ++
.../tephra/util/HBaseVersion.VersionNumber.html | 313 +
.../org/apache/tephra/util/HBaseVersion.html | 322 +
.../util/HBaseVersionSpecificFactory.html | 351 +
.../org/apache/tephra/util/TxUtils.html | 381 +
.../util/class-use/ConfigurationFactory.html | 117 +
.../util/class-use/ConfigurationProvider.html | 177 +
.../util/class-use/HBaseVersion.Version.html | 172 +
.../class-use/HBaseVersion.VersionNumber.html | 157 +
.../tephra/util/class-use/HBaseVersion.html | 117 +
.../class-use/HBaseVersionSpecificFactory.html | 117 +
.../apache/tephra/util/class-use/TxUtils.html | 117 +
.../org/apache/tephra/util/package-frame.html | 29 +
.../org/apache/tephra/util/package-summary.html | 185 +
.../org/apache/tephra/util/package-tree.html | 147 +
.../org/apache/tephra/util/package-use.html | 178 +
.../tephra/visibility/DefaultFenceWait.html | 252 +
.../org/apache/tephra/visibility/FenceWait.html | 231 +
.../tephra/visibility/VisibilityFence.html | 341 +
.../visibility/class-use/DefaultFenceWait.html | 117 +
.../tephra/visibility/class-use/FenceWait.html | 175 +
.../visibility/class-use/VisibilityFence.html | 117 +
.../apache/tephra/visibility/package-frame.html | 25 +
.../tephra/visibility/package-summary.html | 161 +
.../apache/tephra/visibility/package-tree.html | 135 +
.../apache/tephra/visibility/package-use.html | 152 +
.../tephra/zookeeper/TephraZKClientService.html | 765 ++
.../class-use/TephraZKClientService.html | 117 +
.../apache/tephra/zookeeper/package-frame.html | 20 +
.../tephra/zookeeper/package-summary.html | 137 +
.../apache/tephra/zookeeper/package-tree.html | 134 +
.../apache/tephra/zookeeper/package-use.html | 117 +
...eadedSelectorServerWithFix.AcceptThread.html | 345 +
...SelectorServerWithFix.Args.AcceptPolicy.html | 336 +
.../TThreadedSelectorServerWithFix.Args.html | 528 ++
...dedSelectorServerWithFix.SelectorThread.html | 383 +
...erverWithFix.SelectorThreadLoadBalancer.html | 264 +
.../server/TThreadedSelectorServerWithFix.html | 521 ++
...eadedSelectorServerWithFix.AcceptThread.html | 117 +
...SelectorServerWithFix.Args.AcceptPolicy.html | 183 +
.../TThreadedSelectorServerWithFix.Args.html | 209 +
...dedSelectorServerWithFix.SelectorThread.html | 173 +
...erverWithFix.SelectorThreadLoadBalancer.html | 174 +
.../TThreadedSelectorServerWithFix.html | 117 +
.../org/apache/thrift/server/package-frame.html | 25 +
.../apache/thrift/server/package-summary.html | 159 +
.../org/apache/thrift/server/package-tree.html | 166 +
.../org/apache/thrift/server/package-use.html | 167 +
.../overview-frame.html | 38 +
.../overview-summary.html | 216 +
.../apidocs-0.8.0-incubating/overview-tree.html | 536 ++
.../apidocs-0.8.0-incubating/package-list | 18 +
.../resources/background.gif | Bin 0 -> 2313 bytes
.../apidocs-0.8.0-incubating/resources/tab.gif | Bin 0 -> 291 bytes
.../resources/titlebar.gif | Bin 0 -> 10701 bytes
.../resources/titlebar_end.gif | Bin 0 -> 849 bytes
.../serialized-form.html | 1707 +++++
.../apidocs-0.8.0-incubating/stylesheet.css | 474 ++
src/site/resources/images/tephra_logotype.png | Bin 0 -> 12676 bytes
src/site/site.xml | 106 +
589 files changed, 169962 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/1047fad6/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 4455efb..de257a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -392,7 +392,7 @@
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
- <version>0.10</version>
+ <version>0.11</version>
<executions>
<execution>
<id>rat-check</id>
@@ -614,6 +614,144 @@
</plugins>
</build>
</profile>
+
+ <profile>
+ <id>site</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>3.4</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.doxia</groupId>
+ <artifactId>doxia-core</artifactId>
+ <version>1.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.doxia</groupId>
+ <artifactId>doxia-module-markdown</artifactId>
+ <version>1.6</version>
+ </dependency>
+ <dependency>
+ <groupId>lt.velykis.maven.skins</groupId>
+ <artifactId>reflow-velocity-tools</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.velocity</groupId>
+ <artifactId>velocity</artifactId>
+ <version>1.7</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>0.11</version>
+ <executions>
+ <execution>
+ <id>rat-check</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ <configuration>
+ <excludes>
+ <exclude>build-number.txt</exclude>
+ <exclude>README.rst</exclude>
+ <exclude>RELEASING.rst</exclude>
+ <exclude>**/target/**</exclude>
+ <exclude>**/.git/**</exclude>
+ <exclude>.gitignore</exclude>
+ <exclude>**/.idea/**</exclude>
+ <exclude>**/*.iml</exclude>
+ <exclude>**/.project</exclude>
+ <exclude>**/.classpath</exclude>
+ <exclude>**/.settings/**</exclude>
+ <exclude>src/site/resources/**</exclude>
+ </excludes>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.doxia</groupId>
+ <artifactId>doxia-core</artifactId>
+ <version>1.6</version>
+ <exclusions>
+ <!-- Exclude xerces to remove XML parsing warnings (RAT-158) -->
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>2.7</version>
+ <reportSets>
+ <reportSet>
+ <reports/>
+ </reportSet>
+ <reportSet>
+ <id>aggregate</id>
+ <inherited>false</inherited>
+ <reports>
+ <report>index</report>
+ <report>mailing-list</report>
+ <report>scm</report>
+ <report>issue-tracking</report>
+ <report>project-team</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.9.1</version>
+ <configuration>
+ <failOnError>false</failOnError>
+ <links>
+ <link>http://download.oracle.com/javase/7/docs/api/</link>
+ </links>
+ <bottom>
+ <![CDATA[Copyright © 2016 <a href="http://www.apache.org">The Apache Software Foundation</a>. All rights reserved.]]>
+ </bottom>
+ </configuration>
+ <reportSets>
+ <!--<reportSet>-->
+ <!--<reports>-->
+ <!--<report>javadoc</report>-->
+ <!--</reports>-->
+ <!--</reportSet>-->
+ <reportSet>
+ <id>aggregate</id>
+ <inherited>false</inherited>
+ <reports>
+ <report>aggregate</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <version>2.14.1</version>
+ </plugin>
+ </plugins>
+ </reporting>
+ </profile>
</profiles>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/1047fad6/src/site/markdown/GettingStarted.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/GettingStarted.md b/src/site/markdown/GettingStarted.md
new file mode 100644
index 0000000..ff03018
--- /dev/null
+++ b/src/site/markdown/GettingStarted.md
@@ -0,0 +1,463 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<head>
+ <title>Getting Started</title>
+</head>
+
+## Getting Started
+You can get started with Tephra by building directly from the latest source code:
+
+```sh
+ git clone https://git-wip-us.apache.org/repos/asf/incubator-tephra.git
+ cd incubator-tephra
+ mvn clean package
+```
+
+After the build completes, you will have a full binary distribution of Tephra under the
+`tephra-distribution/target/` directory. Take the `tephra-<version>.tar.gz` file and install
+it on your systems.
+
+For any client applications, add the following dependencies to any Apache Maven POM files (or your
+build system's equivalent configuration), in order to make use of Tephra classes:
+
+```xml
+ <dependency>
+ <groupId>org.apache.tephra</groupId>
+ <artifactId>tephra-api</artifactId>
+ <version>${tephra.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tephra</groupId>
+ <artifactId>tephra-core</artifactId>
+ <version>${tephra.version}</version>
+ </dependency>
+```
+
+Since the HBase APIs have changed between versions, you will need to select the
+appropriate HBase compatibility library.
+
+For HBase 0.96.x:
+
+```xml
+ <dependency>
+ <groupId>org.apache.tephra</groupId>
+ <artifactId>tephra-hbase-compat-0.96</artifactId>
+ <version>${tephra.version}</version>
+ </dependency>
+```
+
+For HBase 0.98.x:
+
+```xml
+ <dependency>
+ <groupId>org.apache.tephra</groupId>
+ <artifactId>tephra-hbase-compat-0.98</artifactId>
+ <version>${tephra.version}</version>
+ </dependency>
+```
+
+For HBase 1.0.x:
+
+```xml
+ <dependency>
+ <groupId>org.apache.tephra</groupId>
+ <artifactId>tephra-hbase-compat-1.0</artifactId>
+ <version>${tephra.version}</version>
+ </dependency>
+```
+
+If you are running the CDH 5.4, 5.5, or 5.6 version of HBase 1.0.x (this version contains API incompatibilities
+with Apache HBase 1.0.x):
+
+```xml
+ <dependency>
+ <groupId>org.apache.tephra</groupId>
+ <artifactId>tephra-hbase-compat-1.0-cdh</artifactId>
+ <version>${tephra.version}</version>
+ </dependency>
+```
+
+For HBase 1.1.x or HBase 1.2.x:
+
+```xml
+ <dependency>
+ <groupId>org.apache.tephra</groupId>
+ <artifactId>tephra-hbase-compat-1.1</artifactId>
+ <version>${tephra.version}</version>
+ </dependency>
+```
+
+## Deployment and Configuration
+Tephra makes use of a central transaction server to assign unique transaction IDs for data
+modifications and to perform conflict detection. Only a single transaction server can actively
+handle client requests at a time, however, additional transaction server instances can be run
+simultaneously, providing automatic failover if the active server becomes unreachable.
+
+### Transaction Server Configuration
+The Tephra transaction server can be deployed on the same cluster nodes running the HBase HMaster
+process. The transaction server requires that the HBase libraries be available on the server's
+Java `CLASSPATH`.
+
+The transaction server supports the following configuration properties. All configuration
+properties can be added to the `hbase-site.xml` file on the server's `CLASSPATH`:
+
+
+| Name | Default | Description |
+|-----------------------------|------------|-----------------------------------------------------------------|
+| `data.tx.bind.port` | 15165 | Port to bind to |
+| `data.tx.bind.address` | 0.0.0.0 | Server address to listen on |
+| `data.tx.server.io.threads` | 2 | Number of threads for socket IO |
+| `data.tx.server.threads` | 20 | Number of handler threads |
+| `data.tx.timeout` | 30 | Timeout for a transaction to complete (seconds) |
+| `data.tx.long.timeout` | 86400 | Timeout for a long running transaction to complete (seconds) |
+| `data.tx.cleanup.interval` | 10 | Frequency to check for timed out transactions (seconds) |
+| `data.tx.snapshot.dir` | | HDFS directory used to store snapshots of tx state |
+| `data.tx.snapshot.interval` | 300 | Frequency to write new snapshots |
+| `data.tx.snapshot.retain` | 10 | Number of old transaction snapshots to retain |
+| `data.tx.metrics.period` | 60 | Frequency for metrics reporting (seconds) |
+
+To run the Transaction server, execute the following command in your Tephra installation:
+
+```sh
+ ./bin/tephra start
+```
+
+Any environment-specific customizations can be made by editing the `bin/tephra-env.sh` script.
+
+
+### Client Configuration
+Since Tephra clients will be communicating with HBase, the HBase client libraries and the HBase cluster
+configuration must be available on the client's Java `CLASSPATH`.
+
+Client API usage is described in the Client APIs section.
+
+The transaction service client supports the following configuration properties. All configuration
+properties can be added to the `hbase-site.xml` file on the client's `CLASSPATH`:
+
+| Name | Default | Description |
+|----------------------------------------|-----------|-----------------------------------------------|
+| `data.tx.client.timeout` | 30000 | Client socket timeout (milliseconds) |
+| `data.tx.client.provider` | pool | Client provider strategy: <ul><li>"pool" uses a pool of clients</li><li>"thread-local" a client per thread</li></ul> Note that "thread-local" provider can have a resource leak if threads are recycled |
+| `data.tx.client.count` | 50 | Max number of clients for "pool" provider |
+| `data.tx.client.obtain.timeout` | 3000 | Timeout (milliseconds) to wait when obtaining clients from the "pool" provider |
+| `data.tx.client.retry.strategy` | backoff | Client retry strategy: "backoff" for back off between attempts; "n-times" for fixed number of tries |
+| `data.tx.client.retry.attempts` | 2 | Number of times to retry ("n-times" strategy) |
+| `data.tx.client.retry.backoff.initial` | 100 | Initial sleep time ("backoff" strategy) |
+| `data.tx.client.retry.backoff.factor` | 4 | Multiplication factor for sleep time |
+| `data.tx.client.retry.backoff.limit` | 30000 | Exit when sleep time reaches this limit |
+
+
+### HBase Coprocessor Configuration
+
+In addition to the transaction server, Tephra requires an HBase coprocessor to be installed on all
+tables where transactional reads and writes will be performed.
+
+To configure the coprocessor on all HBase tables, add the following to `hbase-site.xml`:
+
+```xml
+ <property>
+ <name>hbase.coprocessor.region.classes</name>
+ <value>org.apache.tephra.hbase.coprocessor.TransactionProcessor</value>
+ </property>
+```
+
+You may configure the `TransactionProcessor` to be loaded only on HBase tables that you will
+be using for transaction reads and writes. However, you must ensure that the coprocessor is
+available on all impacted tables in order for Tephra to function correctly.
+
+### Using Existing HBase Tables Transactionally
+
+Tephra overrides HBase cell timestamps with transaction IDs, and uses these transaction
+IDs to filter out cells older than the TTL (Time-To-Live). Transaction IDs are at a higher
+scale than cell timestamps. When a regular HBase table that has existing data is
+converted to a transactional table, existing data may be filtered out during reads. To
+allow reading of existing data from a transactional table, you will need to set the
+property `data.tx.read.pre.existing` as `true` on the table's table descriptor.
+
+Note that even without the property `data.tx.read.pre.existing` being set to `true`,
+any existing data will not be removed during compactions. Existing data simply won't be
+visible during reads.
+
+### Metrics Reporting
+
+Tephra ships with built-in support for reporting metrics via JMX and a log file, using the
+[Dropwizard Metrics](http://metrics.dropwizard.io) library.
+
+To enable JMX reporting for metrics, you will need to enable JMX in the Java runtime
+arguments. Edit the `bin/tephra-env.sh` script and uncomment the following lines, making any
+desired changes to configuration for port used, SSL, and JMX authentication:
+
+```sh
+ export JMX_OPTS="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=13001"
+ export OPTS="$OPTS $JMX_OPTS"
+```
+
+To enable file-based reporting for metrics, edit the `conf/logback.xml` file and uncomment the
+following section, replacing the `FILE-PATH` placeholder with a valid directory on the local
+filesystem:
+
+```xml
+ <appender name="METRICS" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>/FILE-PATH/metrics.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+ <maxHistory>30</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>%d{ISO8601} %msg%n</pattern>
+ </encoder>
+ </appender>
+ <logger name="tephra-metrics" level="TRACE" additivity="false">
+ <appender-ref ref="METRICS" />
+ </logger>
+```
+
+The frequency of metrics reporting may be configured by setting the `data.tx.metrics.period`
+configuration property to the report frequency in seconds.
+
+
+## Client APIs
+
+The `TransactionAwareHTable` class implements HBase's `HTableInterface`, thus providing the same APIs
+that a standard HBase `HTable` instance provides. Only certain operations are supported
+transactionally. These are:
+
+| Methods Supported In Transactions |
+|---------------------------------------------------------------------------------------------------|
+| `exists(Get get)` |
+| `exists(List<Get> gets)` |
+| `get(Get get)` |
+| `get(List<Get> gets)` |
+| `batch(List<? extends Row> actions, Object[] results)` |
+| `batch(List<? extends Row> actions)` |
+| `batchCallback(List<? extends Row> actions, Object[] results, Batch.Callback<R> callback)` [0.96] |
+| `batchCallback(List<? extends Row> actions, Batch.Callback<R> callback)` [0.96] |
+| `getScanner(byte[] family)` |
+| `getScanner(byte[] family, byte[] qualifier)` |
+| `put(Put put)` |
+| `put(List<Put> puts)` |
+| `delete(Delete delete)` |
+| `delete(List<Delete> deletes)` |
+
+Other operations are not supported transactionally and will throw an ``UnsupportedOperationException`` if invoked.
+To allow use of these non-transactional operations, call ``setAllowNonTransactional(true)``. This
+allows you to call the following methods non-transactionally:
+
+| Methods Supported Outside of Transactions |
+|---------------------------------------------------------------------------------------------------------|
+| `getRowOrBefore(byte[] row, byte[], family)` |
+| `checkAndPut(byte[] row, byte[] family, byte[] qualifier, byte[] value, Put put)` |
+| `checkAndDelete(byte[] row, byte[] family, byte[] qualifier, byte[] value, Delete delete)` |
+| `mutateRow(RowMutations rm)` |
+| `append(Append append)` |
+| `increment(Increment increment)` |
+| `incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount)` |
+| `incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, Durability durability)` |
+| `incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, boolean writeToWAL)` |
+
+Note that for `batch` operations, only certain supported operations (`get`, `put`, and `delete`)
+are applied transactionally.
+
+### Usage
+
+To use a `TransactionalAwareHTable`, you need an instance of `TransactionContext`.
+`TransactionContext` provides the basic contract for client use of transactions. At each point
+in the transaction lifecycle, it provides the necessary interactions with the Tephra Transaction
+Server in order to start, commit, and rollback transactions. Basic usage of
+`TransactionContext` is handled using the following pattern:
+
+```java
+ TransactionContext context = new TransactionContext(client, transactionAwareHTable);
+ try {
+ context.start();
+ transactionAwareHTable.put(new Put(Bytes.toBytes("row"));
+ // ...
+ context.finish();
+ } catch (TransactionFailureException e) {
+ context.abort();
+ }
+```
+
+1. First, a new transaction is started using `TransactionContext.start()`.
+1. Next, any data operations are performed within the context of the transaction.
+1. After data operations are complete, `TransactionContext.finish()` is called to commit the
+ transaction.
+1. If an exception occurs, `TransactionContext.abort()` can be called to rollback the
+ transaction.
+
+`TransactionAwareHTable` handles the details of performing data operations transactionally, and
+implements the necessary hooks in order to commit and rollback the data changes (see
+`TransactionAware`).
+
+### Example
+
+To demonstrate how you might use `TransactionAwareHTable`\s, below is a basic implementation of a
+`SecondaryIndexTable`. This class encapsulates the usage of a `TransactionContext` and provides a simple interface
+to a user:
+
+```java
+ /**
+ * A Transactional SecondaryIndexTable.
+ */
+ public class SecondaryIndexTable {
+ private byte[] secondaryIndex;
+ private TransactionAwareHTable transactionAwareHTable;
+ private TransactionAwareHTable secondaryIndexTable;
+ private TransactionContext transactionContext;
+ private final TableName secondaryIndexTableName;
+ private static final byte[] secondaryIndexFamily =
+ Bytes.toBytes("secondaryIndexFamily");
+ private static final byte[] secondaryIndexQualifier = Bytes.toBytes('r');
+ private static final byte[] DELIMITER = new byte[] {0};
+
+ public SecondaryIndexTable(TransactionServiceClient transactionServiceClient,
+ HTable hTable, byte[] secondaryIndex) {
+ secondaryIndexTableName =
+ TableName.valueOf(hTable.getName().getNameAsString() + ".idx");
+ HTable secondaryIndexHTable = null;
+ HBaseAdmin hBaseAdmin = null;
+ try {
+ hBaseAdmin = new HBaseAdmin(hTable.getConfiguration());
+ if (!hBaseAdmin.tableExists(secondaryIndexTableName)) {
+ hBaseAdmin.createTable(new HTableDescriptor(secondaryIndexTableName));
+ }
+ secondaryIndexHTable = new HTable(hTable.getConfiguration(),
+ secondaryIndexTableName);
+ } catch (Exception e) {
+ Throwables.propagate(e);
+ } finally {
+ try {
+ hBaseAdmin.close();
+ } catch (Exception e) {
+ Throwables.propagate(e);
+ }
+ }
+
+ this.secondaryIndex = secondaryIndex;
+ this.transactionAwareHTable = new TransactionAwareHTable(hTable);
+ this.secondaryIndexTable = new TransactionAwareHTable(secondaryIndexHTable);
+ this.transactionContext = new TransactionContext(transactionServiceClient,
+ transactionAwareHTable,
+ secondaryIndexTable);
+ }
+
+ public Result get(Get get) throws IOException {
+ return get(Collections.singletonList(get))[0];
+ }
+
+ public Result[] get(List<Get> gets) throws IOException {
+ try {
+ transactionContext.start();
+ Result[] result = transactionAwareHTable.get(gets);
+ transactionContext.finish();
+ return result;
+ } catch (Exception e) {
+ try {
+ transactionContext.abort();
+ } catch (TransactionFailureException e1) {
+ throw new IOException("Could not rollback transaction", e1);
+ }
+ }
+ return null;
+ }
+
+ public Result[] getByIndex(byte[] value) throws IOException {
+ try {
+ transactionContext.start();
+ Scan scan = new Scan(value, Bytes.add(value, new byte[0]));
+ scan.addColumn(secondaryIndexFamily, secondaryIndexQualifier);
+ ResultScanner indexScanner = secondaryIndexTable.getScanner(scan);
+
+ ArrayList<Get> gets = new ArrayList<Get>();
+ for (Result result : indexScanner) {
+ for (Cell cell : result.listCells()) {
+ gets.add(new Get(cell.getValue()));
+ }
+ }
+ Result[] results = transactionAwareHTable.get(gets);
+ transactionContext.finish();
+ return results;
+ } catch (Exception e) {
+ try {
+ transactionContext.abort();
+ } catch (TransactionFailureException e1) {
+ throw new IOException("Could not rollback transaction", e1);
+ }
+ }
+ return null;
+ }
+
+ public void put(Put put) throws IOException {
+ put(Collections.singletonList(put));
+ }
+
+
+ public void put(List<Put> puts) throws IOException {
+ try {
+ transactionContext.start();
+ ArrayList<Put> secondaryIndexPuts = new ArrayList<Put>();
+ for (Put put : puts) {
+ List<Put> indexPuts = new ArrayList<Put>();
+ Set<Map.Entry<byte[], List<KeyValue>>> familyMap = put.getFamilyMap().entrySet();
+ for (Map.Entry<byte [], List<KeyValue>> family : familyMap) {
+ for (KeyValue value : family.getValue()) {
+ if (value.getQualifier().equals(secondaryIndex)) {
+ byte[] secondaryRow = Bytes.add(value.getQualifier(),
+ DELIMITER,
+ Bytes.add(value.getValue(),
+ DELIMITER,
+ value.getRow()));
+ Put indexPut = new Put(secondaryRow);
+ indexPut.add(secondaryIndexFamily, secondaryIndexQualifier, put.getRow());
+ indexPuts.add(indexPut);
+ }
+ }
+ }
+ secondaryIndexPuts.addAll(indexPuts);
+ }
+ transactionAwareHTable.put(puts);
+ secondaryIndexTable.put(secondaryIndexPuts);
+ transactionContext.finish();
+ } catch (Exception e) {
+ try {
+ transactionContext.abort();
+ } catch (TransactionFailureException e1) {
+ throw new IOException("Could not rollback transaction", e1);
+ }
+ }
+ }
+ }
+```
+
+## Known Issues and Limitations
+
+- Currently, column family `Delete` operations are implemented by writing a cell with an empty
+ qualifier (empty `byte[]`) and empty value (empty `byte[]`). This is done in place of
+ native HBase `Delete` operations so the delete marker can be rolled back in the event of
+ a transaction failure -- normal HBase `Delete` operations cannot be undone. However, this
+ means that applications that store data in a column with an empty qualifier will not be able to
+ store empty values, and will not be able to transactionally delete that column.
+- Column `Delete` operations are implemented by writing a empty value (empty `byte[]`) to the
+ column. This means that applications will not be able to store empty values to columns.
+- Invalid transactions are not automatically cleared from the exclusion list. When a transaction is
+ invalidated, either from timing out or being invalidated by the client due to a failure to rollback
+ changes, its transaction ID is added to a list of excluded transactions. Data from invalidated
+ transactions will be dropped by the `TransactionProcessor` coprocessor on HBase region flush
+ and compaction operations. Currently, however, transaction IDs can only be manually removed
+ from the list of excluded transaction IDs, using the `org.apache.tephra.TransactionAdmin` tool.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/1047fad6/src/site/markdown/HowToContribute.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/HowToContribute.md b/src/site/markdown/HowToContribute.md
new file mode 100644
index 0000000..381a048
--- /dev/null
+++ b/src/site/markdown/HowToContribute.md
@@ -0,0 +1,71 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<head>
+ <title>How to Contribute</title>
+</head>
+
+## Contributing to Apache Tephra
+
+The Apache Tephra team welcome all types of contributions, whether they are bug reports, feature requests,
+documentation, or code patches.
+
+### Reporting Issues
+
+To report bugs or request new features, please open an issue in the
+[Apache Tephra JIRA](https://issues.apache.org/jira/browse/TEPHRA). You can also use the
+[dev mailing list](mail-lists.html) for general questions or discussions.
+
+### Contributing Code
+
+We prefer contributions through [GitHub](https://github.com/apache/incubator-tephra) pull requests. Please follow
+these steps to get your contributions in:
+
+1. Open a new issue or pick up an existing one in the [Apache TEPHRA JIRA](https://issues.apache.org/jira/browse/TEPHRA)
+ about the patch that you are going to submit.
+2. If you are proposing public API changes or big changes, please attach a design document to the JIRA. You
+ can also use the [dev mailing list](mail-lists.html) to discuss it first. This will help us understand your needs
+ and best guide your solution in a way that fits the project.
+3. [Fork](https://help.github.com/articles/fork-a-repo) the
+ [Apache Tephra GitHub repo.](https://github.com/apache/incubator-tephra)
+4. Make the changes and send a [pull request](https://help.github.com/articles/using-pull-requests) from your
+ forked repo to the Apache Tephra repo.
+5. Please prefix your pull request title with the JIRA issue ID; for example, `(TEPHRA-35) Added invalid transaction pruning`.
+6. Please complete the pull request description with additional details as appropriate.
+7. Once sent, code review will be done through the pull request.
+8. Once all review issues are resolved, we will merge the changes into the `master` branch of the Apache Tephra repo.
+
+### How to Merge Code Changes
+
+Committer can merge code changes that are already reviewed into the `master` branch with the following steps:
+
+1. Make sure the GitHub pull request is squashed into one commit. If not, ask the patch contributor to help doing so.
+
+2. Download the patch file from GitHub. You can append `.patch` to the end of the GitHub pull request URL to get the patch file.
+
+ curl -L -O https://github.com/apache/incubator-tephra/pull/${PR_NUMBER}.patch
+3. Edit the patch file and add the following line in the commit message for closing the pull request.
+
+ This closes #${PR_NUMBER} from GitHub.
+4. Apply the patch and push it back to remote repo. Make sure you apply it on the latest `master` branch.
+
+ git checkout master
+ git pull origin master
+ git am --signoff < ${PR_NUMBER}
+ git push origin master
+5. Close the JIRA issue associated with the patch.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/1047fad6/src/site/markdown/ReleaseGuide.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/ReleaseGuide.md b/src/site/markdown/ReleaseGuide.md
new file mode 100644
index 0000000..050d21c
--- /dev/null
+++ b/src/site/markdown/ReleaseGuide.md
@@ -0,0 +1,220 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<head>
+ <title>Release Guide</title>
+</head>
+
+This page describes the step-by-step process of how to perform an official Apache Tephra version release,
+including deploying the release artifacts to Maven repositories and the additional administrative
+steps to complete the release process.
+
+## Prerequisites
+
+### Maven Settings File
+Prior to performing an Apache Tephra release, you must have an entry such as this in your
+`~/.m2/settings.xml` file to authenticate when deploying the release artifacts:
+
+```xml
+ <?xml version="1.0" encoding="UTF-8"?>
+ <settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"
+ xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <servers>
+ <server>
+ <id>apache.snapshots.https</id>
+ <username>USERNAME</username>
+ <password>PASSWORD</password>
+ </server>
+ <server>
+ <id>apache.releases.https</id>
+ <username>USERNAME</username>
+ <password>PASSWORD</password>
+ </server>
+ </servers>
+ </settings>
+```
+
+Replace `USERNAME` and `PASSWORD` with the correct values for your user account. See the
+[Maven Encryption Guide](http://maven.apache.org/guides/mini/guide-encryption.html) for details
+on how to avoid storing the plaintext password in the `settings.xml` file.
+
+### PGP Key
+You will also need to have created a PGP (or GPG) key pair, which will be used in signing the release
+artifacts. For more information on using the Maven GPG plugin, see this
+[introduction](http://blog.sonatype.com/2010/01/how-to-generate-pgp-signatures-with-maven/) from Sonatype and
+the Maven GPG Plugin [usage page](https://maven.apache.org/plugins/maven-gpg-plugin/usage.html).
+You may also want to run gpg-agent in order to avoid being prompted multiple times for the GPG key passphrase when
+performing a release.
+
+
+## Performing the Release
+
+### Ensure Local Branch is Up-to-date
+First, make sure your local copy of the `master` branch is up-to-date with all changes:
+
+```sh
+ git checkout master
+ git pull
+```
+
+### Create the Release Branch
+Next, create a release branch from `master`:
+
+```sh
+ git checkout -b release/N.N.N
+```
+
+replacing `N.N.N` with the desired release version.
+
+### Prepare the Release
+While on the release branch, prepare the release:
+
+```sh
+ mvn clean release:prepare -P apache-release
+```
+
+This will prompt you for the release version and the git tag to use for the release. By
+convention, we use `vN.N.N` for the release tag (ie. v0.6.0 for release 0.6.0).
+
+### Perform the Release
+Perform the release by running:
+
+```sh
+ mvn release:perform -P apache-release
+```
+
+This will checkout the source code using the release tag, build the release and deploy it to the
+repository.apache.org repository. Also it creates a source tarball
+`apache-tephra-0.8.0-incubating-SNAPSHOT-source-release.tar.gz` under the `target` directory.
+
+### Prepare Release Artifacts
+1. Checkin the source release tarball, together with the signature, md5 and sha512 files found in
+ `target/` directory
+ to `dist.apache.org/repos/dist/dev/incubator/tephra/${RELEASE_VERSION}-incubating-rc1/src/`.
+1. Create a CHANGES.txt file to describe the changes in the release and checkin the file to
+ `dist.apache.org/repos/dist/dev/incubator/tephra/${RELEASE_VERSION}-incubating-rc1/CHANGES.txt`.
+1. Close the staging repository at <https://repository.apache.org>
+
+
+### Update POM Version in master
+Update the POMs in `master` by:
+
+```sh
+ git checkout master
+ git merge release/N.N.N
+ git push origin master
+```
+
+### Vote for the Release in Dev Mailing List
+Create a vote in the dev@tephra mailing list, and wait for 72 hours for the vote result.
+Here is a template for the email:
+
+```
+ Subject: [VOTE] Release of Apache Tephra-${RELEASE_VERSION}-incubating [rc1]
+ ============================================================================
+
+ Hi all,
+
+ This is a call for a vote on releasing Apache Tephra ${RELEASE_VERSION}-incubating, release candidate 1. This
+ is the [Nth] release of Tephra.
+
+ The source tarball, including signatures, digests, etc. can be found at:
+ https://dist.apache.org/repos/dist/dev/incubator/tephra/${RELEASE_VERSION}-incubating-rc1/src
+
+ The tag to be voted upon is v${RELEASE_VERSION}-incubating:
+ https://git-wip-us.apache.org/repos/asf?p=incubator-tephra.git;a=shortlog;h=refs/tags/v${RELEASE_VERSION}-incubating
+
+ The release hash is [REF]:
+ https://git-wip-us.apache.org/repos/asf?p=incubator-tephra.git;a=commit;h=[REF]
+
+ The Nexus Staging URL:
+ https://repository.apache.org/content/repositories/orgapachetephra-[STAGE_ID]
+
+ Release artifacts are signed with the following key:
+ [URL_TO_SIGNER_PUBLIC_KEY]
+
+ KEYS file available:
+ https://dist.apache.org/repos/dist/dev/incubator/tephra/KEYS
+
+ For information about the contents of this release, see:
+ https://dist.apache.org/repos/dist/dev/incubator/tephra/${RELEASE_VERSION}-incubating-rc1/CHANGES.txt
+
+ Please vote on releasing this package as Apache Tephra ${RELEASE_VERSION}-incubating
+
+ The vote will be open for 72 hours.
+
+ [ ] +1 Release this package as Apache Tephra ${RELEASE_VERSION}-incubating
+ [ ] +0 no opinion
+ [ ] -1 Do not release this package because ...
+
+ Thanks,
+ [YOUR_NAME]
+```
+
+### Consolidate Vote Result
+After the vote is up for 72 hours and having at least three +1 binding votes and no -1 votes,
+close the vote by replying to the voting thread. Here is a template for the reply email:
+
+```
+ Subject: [RESULT][VOTE] Release of Apache Tephra-${RELEASE_VERSION}-incubating [rc1]
+ ==================================================================================
+
+ Hi all,
+
+ After being opened for over 72 hours, the vote for releasing Apache Tephra
+ ${RELEASE_VERSION}-incubating passed with n binding +1s and no 0 or -1.
+
+ Binding +1s:
+ [BINDING_+1_NAMES]
+
+ I am going to create a vote in the general@ list.
+
+ Thanks,
+ [YOUR_NAME]
+```
+
+### Vote for the Release from IPMC
+1. Create a vote in the general@ mailing list for the IPMC to vote for the release.
+1. Wait for 72 hours for the vote result. Use the same template as the dev vote, with the addition
+ of links to the dev vote and result mail thread.
+1. After the vote in general@ is completed with at least three +1 binding votes, close the vote by
+ replying to the voting thread.
+
+### Release the Staging Repository in Artifactory
+Release the artifact bundle in Artifactory:
+
+1. Login to <https://repository.apache.org>.
+1. Go to "Staging Repos".
+1. Find the "orgapachetephra" repo with the Tephra release. Be sure to expand the contents of the
+ repo to confirm that it contains the correct Tephra artifacts.
+1. Click on the "Release" button at top, and enter a brief description, such as "Apache Tephra N.N.N
+ release".
+
+## Announcing and Completing the Release
+Mark the release as complete in JIRA (in the Apache Tephra Administration section):
+
+1. Add a release for the next version, if necessary
+1. Set a release date and release the released version
+
+Release the source tarball:
+
+1. Copy the release artifacts and CHANGES.txt from the dev to release directory at
+ `dist.apache.org/repos/dist/release/incubator/tephra/${RELEASE_VERSION}-incubating`
+
+Finally, announce the release on the mailing lists: dev@tephra and announce@
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/1047fad6/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md
new file mode 100644
index 0000000..7247389
--- /dev/null
+++ b/src/site/markdown/index.md
@@ -0,0 +1,116 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<head>
+ <title>Home</title>
+</head>
+
+## What is Apache Tephra <sup>(TM)</sup>
+__Transactions for Apache HBase <sup>(TM)</sup>__: Apache Tephra provides globally consistent
+transactions on top of Apache HBase. While HBase provides strong consistency with row- or
+region-level ACID operations, 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.
+
+## How It Works
+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](http://en.wikipedia.org/wiki/Snapshot_isolation) of concurrent transactions.
+
+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
+- __TransactionProcessor 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.
+
+### Transaction Server
+A central transaction manager generates a globally unique, time-based transaction ID for each
+transaction that is started, and maintains the state of all in-progress and recently committed
+transactions for conflict detection. While multiple transaction server instances can be run
+concurrently for automatic failover, only one server instance is actively serving requests at a
+time. This is coordinated by performing leader election amongst the running instances through
+[Apache ZooKeeper](https://zookeeper.apache.org). The active transaction server instance will
+also register itself using a service discovery interface in ZooKeeper, allowing clients to
+discover the currently active server instance without additional configuration.
+
+### Transaction Client
+A client makes a call to the active transaction server in order to start a new transaction. This
+returns a new transaction instance to the client, with a unique transaction ID (used to identify
+writes for the transaction), as well as a list of transaction IDs to exclude for reads (from
+in-progress or invalidated transactions). When performing writes, the client overrides the
+timestamp for all modified HBase cells with the transaction ID. When reading data from HBase, the
+client skips cells associated with any of the excluded transaction IDs. The read exclusions are
+applied through a server-side filter injected by the `TransactionProcessor` coprocessor.
+
+### TransactionProcessor Coprocessor
+The `TransactionProcessor` coprocessor is loaded on all HBase tables where transactional reads
+and writes are performed. When clients read data, it coordinates the server-side filtering
+performed based on the client transaction's snapshot. Data cells from any transactions that are
+currently in-progress or those that have failed and could not be rolled back ("invalid"
+transactions) will be skipped on these reads. In addition, the `TransactionProcessor` cleans
+up any data versions that are no longer visible to any running transactions, either because the
+transaction that the cell is associated with failed or a write from a newer transaction was
+successfully committed to the same column.
+
+More details on how Tephra transactions work and the interactions between these components can be
+found in our [Transactions over HBase](http://www.slideshare.net/alexbaranau/transactions-over-hbase)
+presentation.
+
+## Is It Building?
+Status of CI build at Travis CI: [![Build Status](https://travis-ci.org/apache/incubator-tephra.svg?branch=master)](https://travis-ci.org/apache/incubator-tephra)
+
+## Requirements
+### Java Runtime
+The latest [JDK or JRE version 1.7.xx or 1.8.xx](http://www.java.com/en/download/manual.jsp)
+for Linux, Windows, or Mac OS X must be installed in your environment; we recommend the Oracle JDK.
+
+To check the Java version installed, run the command:
+
+ $ java -version
+
+Tephra is tested with the Oracle JDKs; it may work with other JDKs such as
+[Open JDK](http://openjdk.java.net), but it has not been tested with them.
+
+Once you have installed the JDK, you'll need to set the `JAVA_HOME` environment variable.
+
+### Hadoop/HBase Environment
+Tephra requires a working HBase and HDFS environment in order to operate. Tephra supports these
+component versions:
+
+| Component | Source | Supported Versions |
+|---------------|---------------|---------------------------------------------------------|
+| __HDFS__ | Apache Hadoop | 2.0.2-alpha through 2.7.x |
+| | CDH or HDP | (CDH) 5.0.0 through 5.7.0 or (HDP) 2.0, 2.1, 2.2 or 2.3 |
+| | MapR | 4.1 (with MapR-FS) |
+| __HBase__ | Apache | 0.96.x, 0.98.x, 1.0.x, 1.1.x and 1.2.x |
+| | CDH or HDP | (CDH) 5.0.0 through 5.7.0 or (HDP) 2.0, 2.1, 2.2 or 2.3 |
+| | MapR | 4.1 (with Apache HBase) |
+| __ZooKeeper__ | Apache | Version 3.4.3 through 3.4.5 |
+| | CDH or HDP | (CDH) 5.0.0 through 5.7.0 or (HDP) 2.0, 2.1, 2.2 or 2.3 |
+| | MapR | 4.1 |
+
+__Note:__ Components versions shown in this table are those that we have tested and are
+confident of their suitability and compatibility. Later versions of components may work,
+but have not necessarily have been either tested or confirmed compatible.
+
+Ready to try out Apache Tephra? Checkout the [Getting Started Guide](GettingStarted.html)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/1047fad6/src/site/markdown/releases/0.8.0-incubating.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/releases/0.8.0-incubating.md b/src/site/markdown/releases/0.8.0-incubating.md
new file mode 100644
index 0000000..68fc26f
--- /dev/null
+++ b/src/site/markdown/releases/0.8.0-incubating.md
@@ -0,0 +1,28 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<head>
+ <title>Apache Tephra Release 0.8.0-incubating</title>
+</head>
+
+### Release Notes - Apache Tephra - 0.8.0-incubating
+
+This is the first Apache Incubator release of Tephra.
+
+### Source tar-ball download
+[Source and signatures](http://www.apache.org/dyn/closer.cgi/incubator/tephra/0.8.0-incubating/src)