On Feb 15, 2013, at 1:41 AM, David Barbour <dmbarb...@gmail.com> wrote:
> 
> A technique I've seen used (albeit, only once or twice) is to batch updates 
> from multiple connections, and run batches at 20+Hz while there is demand for 
> them. This only requires one connection from the server to its database, and 
> allows you to respond and close each HTTP connection in a predictable amount 
> of time, and allows you to ensure the updates are committed before replying. 
> The limitation of this technique is that you can't have ad-hoc updates, since 
> those would be too difficult to batch consistently and sensibly.
> 
> It's a bit specialized, but is able to handle a lot of updates. 


Distributed database engines that do this natively are becoming popular. They 
are usually referred to as "short transaction processing" databases and 
workloads. By forcing all open transactions to commit or rollback several times 
a second it is possible to guarantee strict serializability in a distributed 
database if you can package your transactions within that window. There are a 
few variations on the idea.

Traditional transaction processing databases allowed transactions to be open 
for an unbounded period of time. There are stories passed around among DBAs of 
zombie transactions that had been open for months or years. For large-scale 
distributed databases, the cost of coordinating the transaction state is 
prohibitive and limits the total transaction throughput. Some clever person 
noticed that if you can strictly bound the transaction length then it makes the 
distributed transaction problem much simpler. Conveniently, many transaction 
processing applications can be made to fit within the STP database model.

An STP database engine can support orders of magnitude more transaction 
throughput than a conventional OLTP database. The tradeoff is that the 
transaction latency is higher. 10-100 milliseconds seems to be the zone where 
latency is acceptable but you can still fit most transactions into that window.


_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to