自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (2)
  • 收藏
  • 关注

原创 Amazon Aurora(SIGMOD 2018)云数据库关键技术解读

说在前面本文主要介绍 《Amazon Aurora: On Avoiding Distributed Consensus for I/Os, Commits, and Membership Changes 》(SIGMOD 2018)这篇论文,这篇论文主要是关于Amazon Aurora分布式数据库中一些关键技术的实现思路。若想直到更多关于Aurora基础架构的,可参考 《Amazon Aur...

2019-09-26 22:59:28 2095

原创 zookeeper那些坑

伪集群启动失败即用./zkServer start XXX可以看到启动成功的提示,但是用zkServer.sh status XXX又提示该服务没有正常运行之类的提示。这里参考了网上的伪集群教程,用多个配置文件启动多个zkServer。而我配置文件中的dataDirectory包含了中文,先开始也怀疑是因为路径名包含了中文的原因。但是测单机的时候也能正常运行,用status指令检查也是正常。...

2019-09-22 10:18:45 296

原创 无锁队列、自旋锁队列、互斥锁队列性能对比测试

介绍无锁队列先大致介绍一下无锁队列。无锁队列的根本是CAS函数——CompareAndSwap,即比较并交换,函数功能可以用C++函数来说明:int compare_and_swap (int* reg, int oldval, int newval){ int old_reg_val = *reg; if (old_reg_val == oldval) *reg = n...

2019-07-31 12:43:01 2476 5

原创 一个完全解耦的对象池模型

先说想法我想尝试写一种对象池模型,使得所有经有new得到的对象实际上都会从一个链表中取,并在delete的时候把资源返回给链表。完整源码我写了一个demo来实现我的思路,思路不复杂,但想尽量写的精致。也希望有想法的看官能提点建议。源码见:https://github.com/HandsomeRosin/ObjectPool顺便在这里说明下,目前demo没实现new[]和delete[]的...

2019-05-29 17:17:55 245

原创 Boost.ASIO源码:从async_write看ASIO的异步IO逻辑

async_write有两个对外接口:template <typename AsyncWriteStream, typename Allocator, typename WriteHandler>inline BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void (boost::system::error_code, std::s...

2019-01-12 15:47:21 2639

原创 模板偏特化和默认模板参数的匹配顺序

在阅读Boost.ASIO的时候看到了下面这种写法:template <typename CompletionToken, typename Signature = void>class async_result{public://... typedef CompletionToken completion_handler_type; async_result&

2019-01-10 17:35:40 1634 1

原创 一个用于控制对象个数的基类

读到《More Effective C++》中的“计算对象个数的Base Class”一节时,感觉书中讲的例子很有特点,故在此记录下来,顺便按照个人的一点想法稍微改善一下。先讲需求,这里要设计一个可以控制某个类型所存在对象个数的基类,使得继承这个基类的类型可以极简地控制其某一时刻实例化的对象个数。《More Effective C++》书中对于这个基类的实现源码如下:template<...

2019-01-03 16:06:25 135

原创 Boost.ASIO源码:deadline_timer源码级解析(三)—— 从源码解释io_service::run()到底发生了什么

上一篇博客讲到了epoll_reactor的scheduler_timer函数,但是这个函数的操作逻辑其实很不明显,后面涉及到更深的逻辑,故在这里展开讲解。其实这篇文章的主题我也纠结了很久,不知道从何讲起,因为这个逻辑牵扯十分的深,整个io_service的运行逻辑几乎都有牵扯到,于是干脆就借此总结下io_service.run()的大致运行逻辑。前文回顾前面讲deadline_timer:...

2018-12-26 14:57:59 1514 1

原创 Boost.ASIO源码:deadline_timer源码级解析(二)——epoll_reactor定时器逻辑

前文回顾前面讲deadline_timer::async_wait()讲到了epoll_reactor::scheduler_timer(),那时候讲得很模糊,这里稍微展开再讲解一下。首先先回顾下scheduler_timer的源码:template <typename Time_Traits>void epoll_reactor::schedule_timer(timer_qu...

2018-12-21 17:56:58 841

原创 Boost.ASIO源码:deadline_timer源码级解析(一)

deadline_timer相关类介绍deadline_timer众所周知,是asio的一个核心定时器,支持同步定时触发和异步定时触发。具体有什么功能如何使用这里不作介绍,本文主要从deadline_timer的wait和async_wait入手,解释deadline_timer的实现逻辑。先解释下deadline_timer的大致结构。deadline_timer实际上是个别名,它的真正名字...

2018-12-21 14:43:18 1399

原创 Boost.ASIO源码:pthread包装类——posix_event小结

posix_event介绍该类用在scheduler中,用于唤醒阻塞的线程,下面代码中的conditionally_enabled_event实际上就是posix_event的包装类:class scheduler : public execution_context_service_base<scheduler>, public thread_context{//...

2018-12-19 12:38:19 574

原创 Boost.ASIO源码:epoll和套接字描述符包装类epoll_reactor之descriptor_state

io_service(在这里实现类为scheduler)需要一个监听描述符的epoll机制,而这个机制的实现,便是来源于epoll_reactor和descriptor_state,下面详细介绍。大致介绍descriptor_state保存所有描述符(就我观察应该都是socket描述符)的状态、处理函数handler、以及epoll相关数据等信息。而epoll_reactor算是Linux原生...

2018-12-01 14:11:11 2060

原创 Boost.ASIO源码:thread_info_base::allocate古怪的内存分配逻辑解析与猜想

自我感觉这个内存组织思路很有参考学习价值,故在此总结一下。thread_info_base介绍啥是thread_info要引出thread_info_base就得从scheduler说起,scheduler实际上就是io_service的一个实现,而众所周知(不知者百度),io_service中有一个公共队列和若干个与线程数对应的私有队列,当用户post了数据进来时,随机的某个空闲线程的私有...

2018-11-29 17:34:43 575

原创 Boost.ASIO源码:concurrency_hint与相关宏的值分析

大概介绍concurrency_hint本身只是一个整型数值,在Boost.ASIO里经常可以看到作为构造函数参数传给各种服务(明确下:execution_context::service的子类),指明这些服务有没有多线程或其它并发逻辑,非并行情况下甚至还能稍稍简化下函数的执行逻辑,如: if (more_handlers && !one_thread_) ...

2018-11-28 20:01:39 988

原创 Boost.ASIO源码:service_registry::use_service()详解以及相关type_traits解析

Boost.ASIO源码:service_registry::use_service详解以及相关type_traits解析这都是神仙写的代码吧use_service()的功能与内部逻辑init_key()详解enable_if和is_base_of中的细节这都是神仙写的代码吧没什么,这个标题只是忍不住表达一下对ASIO的惊叹。曾经看《STL源码剖析》对里面的type_traits的设计惊为天...

2018-11-28 15:29:50 961 1

EMF说明文档英文版

java的EMF的规范说明文档原版.

2019-01-24

UML规范文档

英文版的原版规范文档。 。

2018-12-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除