2021-07-16
:: [Gray King]
实际串行执行⌗
解决并发问题最直接的方法:在一个线程上按照顺序方式每次执行一个事务。
为什么可行:
- 内存越来越便宜,可以将事务需要的数据都放在内存中。
- OLTP 事务通常执行很快,只产生少量的读写操作。通常较长时间的分析操作通常是只读。
事务为了充分利用单线程所做的调整:
- 采用存储过程封装事务,Redis 采用 Lua
- 分区
- 事务必须简短而高效。
- 事务所需数据都在内存。
- 写入吞吐量必须低,否则需要采用分区,最好没有跨分区事务。
- 要支持跨分区事务必须确保跨分区事务占比很小。