0%

本文采用wolai制作: 原文link: https://www.wolai.com/ravenxrz/eVCDgKnqMXKwptcKfKnVPo

原文名: Taurus Database: How to be Fast, Available, and Frugal in the Cloud

TODO:

  • [ ] aurora和polardb的复制方式是什么

重点:

存算分离,和Aurora和Socrates 类似,采用新的复制和恢复算法,提供更高可用性, 存储分为logstore和pagestore,logstore采用强一致性写入,pagestore采用最终一致性写入。 架构上:关键路径网络小于等于一跳网络,采用append only存储。

阅读全文 »

本文采用wolia制作,原文link: https://www.wolai.com/ravenxrz/9RuzaMAipvQTqAjnGiydYn

原文名字:mClock: Handling Throughput Variability for Hypervisor IO Scheduling

作者提出一种mlock算法,用于优化VM中对IO分配。

📌一句话总结mclock算法:用户分配的带宽要么等于所设置的Reservation值,要么等于按照Weight分配的结果,要么等于Limit值。当按照Weight分配的结果大于用户所设置的Reservation时,则用户最终分配的带宽为按照Weight分配的结果;当按照Weight分配的结果小于用户所设置的Reservation时,则带宽分配的结果等于Reservation;当按照Weight分配的结果大于用户所设置的Limit时,则带宽分配的结果等于Limit。

阅读全文 »

📌wolai制作,原文:https://www.wolai.com/ravenxrz/d4CYcWtC6M86RQyVAuKT2d

花了1~2 week的时间过完了经典的C网络库muduo实现,和学习LevelDB的时候不同,那个时候主要学习C的编程知识,而muduo主要学习的是设计,当然还有一些编程技巧。本篇总结下通过muduo学习到了哪些内容。

阅读全文 »

📌本文采用wolai制作,link: https://www.wolai.com/ravenxrz/ty4wvA5PaaHLbgDs4oofRE

前面几篇文章已经把muduo最核心的链路分析完成,包括事件循环、线程池、连接监听、建立,处理的全链路。本篇分析一些其他工具类,包含三个:Buffer、日志和定时器。

阅读全文 »

📌本文采用wolai制作, link.

前文已经分析了完整的 事件循环 和 新建连接 流程,相当于下层基础设施已经完毕,现在看上层应用咋玩的。

阅读全文 »

📌本文采用wolai制作, link

前文muduo源码分析1-事件循环(上)分析了EventLoop及其相关类的基本原理,但是还残留了一个问题,即EventLoop的线程模型是怎么样的?

阅读全文 »

📌本文采用wolai制作,原文链接:https://www.wolai.com/ravenxrz/wQ6VWz7rhYAK4NWReW5ziB

std::thread 是c11后引入的标准线程库。作为c中最重要的线程封装库,有必要打开看看。

注:本文所有分析基于 gcc-8.5.0 源码

一些重要结论:

📌由此可以得到一个重要结论:给std::thread传入的参数是没有引用效果的。 如果要用引用,请使用std::ref

📌此处可知,thread::get_id 返回的是 pthread_t, 该值被pthread_create初始化,所以并不代表linux下的thread id

📌thread不支持copy语义,仅支持move语义, 且move operator=的前提是,当前线程已经不是joinable的,否则会有资源泄露。

阅读全文 »