承载双十量不是单纯一个数据库问题,是要综合负载均衡,流控反压,缓存,中间件,流式计算,业务特性和用户行为,银行等上下游系统等诸多领域的复杂系统解决方案,数据库只是其中一个环节。
从技术上来说,将数据库系统的事务处理能力进一步提升的方法无非那么几种。
是scale out,垂直分库和水平分库是互联网公司大量使用的技术手段,缺点是二阶段提交的分布式事务效率低下,sql兼容性的覆盖率低。可以在isolation降级的思路上另辟蹊径。
第二是内存和NVM,很早就有memsql,配合使用新的数据结构,例如近几年出现的succinct data structures, masstree等。
第三是提高数据库在多核上的处理能力,现代服务器都是多socket NUMA架构的处理器系统,其思想是把每个core上的线程看做分布式系统的一个节点,用分布式技术例如lamport clock、vector clock来解决序的问题。
第四是多点写,parallel database流派,代表是Oracle RAC。
作者:鸣嵩
链接:https://www.zhihu.com/question/67034794/answer/248460491
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。