Dynamo: Amazon’s Highly Available Key-value Store
本文对Dynamo的设计和实现涉及的技术进行了总结。Dynamo是一个高可用、可扩展和提供最终一致性的KV存储系统。为了实现高可用要求,Dynamo牺牲了某些故障场景下的一致性。Dynamo的经典设计使它被誉为NoSQL数据库的“开山之作”。其设计理念至今仍然值得细细体会。
Just for fun.
本文对Dynamo的设计和实现涉及的技术进行了总结。Dynamo是一个高可用、可扩展和提供最终一致性的KV存储系统。为了实现高可用要求,Dynamo牺牲了某些故障场景下的一致性。Dynamo的经典设计使它被誉为NoSQL数据库的“开山之作”。其设计理念至今仍然值得细细体会。
TimeUnion是一个为混合云存储服务量身定制的高效时间序列管理系统。提出统一的数据模型来表示独立的时间序列和时间序列组,能够处理时间序列的不同用例。引入对时间序列的内存高效数据结构。提出了时间分区LSM树,它具有定制的架构、压缩机制、乱序数据处理和对时间序列数据的动态级别大小调整。
之前的并发控制机制要么是通过延迟,要么是通过中止事务来保证可串行性。如果系统中保存了每一数据项的旧版本,并能识别出每个事务应该读到哪个版本,就可以避免这些问题。
当预期事务执行过程中会频繁出现线程争用时,就需要使用锁对资源使用加以限制,因此锁是一种悲观策略。如果预期争用并不是那么频繁,就可以使用更乐观的算法。时间戳顺序协议通过给每个事务指定时间戳来实现事务串行化,因而在使用资源前不需要申请锁。
查询优化器是SQL Server针对用户的请求进行内部优化,生成(或重用)执行计划并传输给存储引擎来操作数据,最终返回结果给用户的组件。查询优化器是关系型数据库管理系统的核心之一,决定对特定的查询使用哪些索引、哪些关联算法、从而使其高效运行,它是优化器中最重要的组件之一。