自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式一致性raft算法基础要点

3.leader原则上只能根据过半原则确认当前term的日志是否需要应用到状态机,而不能当上leader后,立即把历史term的日志应用到状态机,应该间接应用历史日志(即必须存在当前term的新日志且达到应用状态机条件,此时由于需要按照日志的顺序应用,所以顺带把历史的日志应用到状态机,然后应用当前term这条日志)。在成员变更前是3节点的集群,集群中的节点为A、B和C,其中节点A为leader节点. 现在向集群中增加节点D和E,加入成功后变成5节点集群。下面结合上述变更图,从时间角度进行一个分析。

2024-02-07 10:27:32 935 1

原创 基于TCMU实现自定义iscis接口

参照tcmu-runner/file_example.c 将相应接口实现,在对应接口函数调用集群操作函数;(需要链接开源框架编译生成libtcmu以及包含头文件 “libtcmu.h” “tcmu-runner.h”)3.如果报错没有rdb,可以增加参数控制:cmake -DCMAKE_INSTALL_PREFIX=/mydir/ -Dwith-rbd=false。将编译输出自己新加的handler(比如handler_redfs.so)拷贝到/usr/local/lib64/tcmu-runner。

2024-02-07 10:02:39 182 1

原创 std::unordered_map和std::map性能区别和使用场景

(2)unordered_map实际上是hash_map的实现,理论上它的查询复杂度是O(1);(4)不要求有顺序的访问所有元素的情况下,我们应该尽量使用unordered_map;(3)当数据量不大,且我们需要有序的访问键值对时,可以考虑使用map;(1)map底层是采用红黑树实现的,它的查询复杂度是O(lgn);一万个元素插入,两者性能相差一倍。

2023-11-29 13:57:23 491 1

原创 boost::condition 和 boost::condition_variable区别

都是 Boost 库中用于实现条件变量的类。条件变量是一种同步原语,通常用于实现等待/通知机制,以便在多线程环境中协调线程之间的操作。如果您正在使用较旧的 Boost 版本或者需要与特定的编译器和平台兼容,那么。总的来说,如果您正在使用较新的 Boost 版本并且想要使用更现代的条件变量接口,那么。或其他互斥量类型一起使用,但提供了更现代的接口和更多的功能。或其他互斥量类型一起使用,用于保护共享数据的访问。可能是一个更合适的选择。是较新的类,并被视为。等方法来等待条件满足。

2023-11-06 19:50:16 125

原创 TCP网络常见调优参数之一:select/epoll限制

select对应于内核中的sys_select调用,sys_select首先将第二三四个参数指向的fd_set拷贝到内核,然后对每个被SET的描述符调用进行poll,并记录在临时结果中(fdset),如果有事件发生,select会将临时结果写到用户空间并返回;客户端采用短连接,临时创建的socket描述符值假设为10,使用完后,close掉,下次再创建socket,系统分配的socket描述符依然是10,所以客户端短连接情况下,socket的值大小很难增长到1024以上。

2023-10-31 13:48:19 73 1

原创 TCP网络常见调优参数之一:SO_LINGER算法

具体现象是对于一个处理大量短连接的服务器,如果是由服务器主动关闭客户端的连接,将导致服务器端存在大量的处于TIME_WAIT状态的socket,甚至比处于Established状态下的socket多的多,严重影响服务器的处理能力,甚至耗尽可用的socket,停止服务。测试过程中也发现偶尔recv返回值为0的情况,这种情况应该是我们期望的结果,recv返回0的时候,说明接收到了http客户端主动close后发出的FIN报文,只有主动关闭的socket的一方才会有TIME_WAIT状态。

2023-10-31 13:41:51 368 1

原创 TCP网络常见调优参数之一:Nagle算法

但是服务端先接收到协议头后,由于TCP延迟ACK机制默认也是开启的,所以服务端接收完协议头并没有及时回复ACK,而是在超时范围内等待,如果服务端收到下一个网络包或者有应答数据返回给客户端时才立即回复ACK,本方案中网络交互模型恰好是服务端Recv完协议头后,又继续Recv数据体,此时因为没有及时ACK,导致与客户端互相依赖性的等待,最终40ms超时后才可以继续交互。2) 如果没有响应数据,ACK的发送将会有一个延迟,以等待看是否有响应数据可以一起发送,这称是"Delayed Ack"。

2023-10-31 11:29:49 88 1

原创 TCP网络常见调优参数之一:tcp_tw_recycle

判断第二个包是重复报文,丢弃之反映出来的情况就是在云存储上抓包,发现有SYN包,但就是不回ACK包,因为SYN包已经被丢弃了。在一些高并发的 TCP Server上,为了能够快速回收time_wait的状态socket,打开了 tcp_tw_reccycle ,内核就会检查tcp包时间戳,但无法保证客户端是否NAT后面过来的请求,发来的包的时间戳是可能乱跳的,所以服务器端就把带了“倒退”的时间戳的包当作是“recycle的tw连接的重传数据,不是新的请求”,于是丢掉不回包,造成大量丢包。

2023-10-31 11:10:37 607 1

原创 读取配置文件并修改其中字符串后保存配置文件

【代码】读取配置文件并修改其中字符串后保存配置文件。

2023-10-31 10:54:50 32 1

原创 使用SQLite的SQL解析器来解析嵌套查询SQL语句并在每个子查询语句中添加新的查询条件

【代码】使用SQLite的SQL解析器来解析嵌套查询SQL语句并在每个子查询语句中添加新的查询条件。

2023-10-27 10:30:44 99 1

原创 Visual Studio遇见Assist+X常见问题

Assist+X无法使用常见问题

2023-10-26 10:43:11 326 1

原创 windows bluetooth

// wificonnect.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"  #ifndef UNICODE#define UNICODE#endif#include #include  #include  #include  #include    // Need to link with shel

2014-09-26 22:21:18 1713

原创 ftp client

// Native wifi.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#ifndef UNICODE#define UNICODE#endif#include #include #include #include #include #include #include #include #inc

2014-09-21 23:02:44 948

bluetooth实例学习

bluetooth实例学习,参考新手研究,蓝牙api

2014-10-08

blutoothdialog

win8 蓝牙连接demo,值得借鉴,如何启动蓝牙驱动,查找蓝牙设备,连接以及发送接收数据

2014-09-25

空空如也

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

TA关注的人

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