- 博客(17)
- 收藏
- 关注
原创 rocketmq源码
RocketMQbroker零拷贝对外内存池broker零拷贝利用channel.map将文件映射到byteBuffer对外内存池考虑到读写分离,写在堆外内存上,读在mappedFile对应的byteBuffe上。需要额外的内存
2022-03-28 00:07:10
147
原创 binary_search模板
//取左中位数int binary_search(vector<int> nums, int target) { int left = 0; int right = nums.size()-1; while (left < right) { int mid = left + (right - left) / 2; if (target > nums[mid]) { left = mid + 1; } else { right = mid; }
2020-07-22 20:42:54
156
原创 sql语句模板
select distinct top n *from t1 inner join t2 on ... join t3 on ...where ...group by ... having ...order by ...
2020-07-21 21:55:23
466
原创 O_NONBLOCK、O_NDELAY和TCP_NODELAY
O_NONBLOCK和O_NDELAY所产生的结果都是使I/O变成非搁置模式(non-blocking),在读取不到数据或是写入缓冲区已满会马上return,而不会搁置程序动作,直到有数据或写入完成。它们的差别在于设立O_NDELAY会使I/O函式马上回传0,但是又衍生出一个问题,因为读取到档案结尾时所回传的也是0,这样无法得知是哪中情况;因此,O_NONBLOCK就产生出来,它在读取不到数据时会回传-1,并且设置errno为EAGAIN。不过需要注意的是,在GNU C中O_NDELAY只是为了与BSD
2020-07-12 16:39:22
1230
原创 leveldb笔记
1.skiplist.cc:insert函数中的更新节点是从下往上更新的,原因是:插入节点的整个过程并不是原子的,在每一层插入节点才是原子的。所以有个值得注意的点是在节点插入时我们采用从下到上的方式,因为对于 SkipList 来说,key 在 SkipList 内意味着 key 一定在 level 0,所以如果从上到下插入的话可能出现幻读,即在上层查找比较的时候存在这个 key,但是当下降到 level 0 时发现这个 key 并不存在。2.memory order:skiplist中memory
2020-05-21 16:56:05
138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人