-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CloudJump: Optimizing Cloud Databases for Cloud Storages #28
Comments
Prefetch:当第一个满足条件的 B-Tree 页面被定位时,其后续的兄弟页面有较大可能被需要,因此提前预取可以抹去云存储较高的 I/O 开销。 |
锁粒度细化:由于云存储的访问延时高,因此持有锁的时间会变长,线程间同步开销更大。因此需要尽量让持有锁的粒度更细,最好能不加锁,这样所有线程可以最大程度并发。
|
数据打散:在分布式存储中,分配 chunk 时放置在相同或不同的节点上有着不同的优势。放在相同节点上,则更省机器;放在不同的节点上,则利用了更多硬件资源,因此组合带宽更高。WAL 日志写入经过分片拆分后可以写入到多个节点上,从而最大化带宽利用。 |
绕开为单机而设计的缓存:随着 RO 的数量越来越多,维护缓存一致性的代价也越来越高。索性绕开缓存,使用其它手段提升性能,从而使 RO 数量增大时数据库的性能能够 scale。 |
基于优先级的 I/O 调度。数据库的四种主要的 I/O 类型:
由于存储层不识别 I/O 的类型,非重要的 I/O 可能会 delay 重要的 I/O。在数据库内需要根据不同类型的 I/O 有不同优先级的队列。 另外由于云存储的单次 block size 通常比 local SSD 要大,因此 I/O 请求发出时应该在数据库内被对齐。 |
拜读下现老板大作,货很干。
本地存储和云存储有着明显的不同。基于本地存储设计的数据库被搬到云存储上以后会有哪些问题,如何优化?
p3432-chen.pdf
The text was updated successfully, but these errors were encountered: