DemandCube / NeverwinterDP_Legacy

NeverwinterDP - The Data Pipeline for Hadoop and Data Systems
GNU Affero General Public License v3.0
30 stars 12 forks source link

2 Phases commit transactions #453

Open tuan08 opened 9 years ago

tuan08 commented 9 years ago

Reliability requirements

Performancel requirements:

tuan08 commented 9 years ago

A sample or performance requirement taken from the link https://cwiki.apache.org/confluence/display/KAFKA/Transactional+Messaging+in+Kafka#TransactionalMessaginginKafka-ProducerIDsandstategroups

Furthermore, we have the following requirements pertaining to performance, usability and implementation complexity: The implementation should be scalable. E.g., a dedicated log per transaction is unacceptable. Performance: The throughput of a transactional producer should be comparable to that of a non-transactional producer. Acceptable latency. E.g., avoid copying the transactional data as much as possible. Any implementation should not make the partition unavailable (say, due to locking) for an unreasonable period of time. Client simplicity: Favor a scheme that lend to a simpler client-side implementation (even if it adds more complexity to the broker). For example, it is acceptable (but not ideal) for a consumer implementation to (internally) buffer and subsequently discard messages from uncommitted transactions. i.e., if the chosen implementation allows the broker to materialize messages from uncommitted transactions in the data logs.