|
|
|
|
|
by vidarh
3140 days ago
|
|
Yes, upper bound. Lower bound on time it takes for the transaction to be globally available. You're right that there are operations that you can increase throughput of, and I was imprecise in that you are right you can order them "after the fact", but that's not very interesting. The scenario I had in mind was where clients talking to different nodes are issuing transactions that depend on the same items of data. In that case you either need to obtain a lock, in which case you best case need to wait for the latency interval (plus a margin or largest possible clock skew) to see if the other side wants a lock on the same object, or you need to be optimistically firing off transactions, but the best case then is that you just get your transaction in right before the remote side start operating on it, and they happen to just fire off another transaction, and so on. In reality there'd be slowdowns. If you're dealing with uncontended objects, you can do much better on average, but you can't guarantee better than the latency between nodes. There are certainly tons of special cases where you can optimize. |
|