KalosAner Blog

欢迎大家讨论和批评!
「山穷水复疑无路,柳暗花明又一村。」

raft 算法中的集群成员变更问题

前言 在上一篇文章《分布式一致性算法之 raft 图解》中我们讲解了 raft 算法的领导者选举以及日志复制的问题,同时通过一个具体实例讲解了 raft 是如何通过“一切以领导者”为准来解决日志不一致的情况的。同时在文章结尾笔者也讲到 raft 算法包含的内容远不止这么多,甚至上述的一些问题都是 raft 中的 base(基础)问题。接下来,我们将会用一篇文章来继续讲解 raft 需要解决...

OLTP,OLAP,HTAP

OLTP (Online Transaction Processing), OLAP (Online Analytical Processing), and HTAP (Hybrid Transaction/Analytical Processing) are three commonly used database architectures that are designed to su...

Linux 程序连接不上 mysql

一、前言 在 Linux 上使用 C++ 写了一段代码,需要连接 mysql,该引入的头文件和动态库都已经下载好,但是还是连接失败。 1 2 3 _conn = mysql_init(nullptr); MYSQL *p = mysql_real_connect(_conn, server.c_str(), user.c_str(), password.c_str(), dbname....

VMware 上 Linux 虚拟机和主机复制粘贴

虚拟机和主机复制粘贴需要满足的条件: 1、安装 vm-tools 我是通过 VMware 安装的,除此之外也可以通过命令 apt-get install open-vm-tools-desktop 安装。 可以使用命令 systemctl status vmtoolsd 查看服务是否启动。 2、 开启时间同步 3、设置设备状态为“启动时连接”,并且设置“使用 ISO 映像文件”...

Linux安装Redis(超详细,附图)

一、Linux安装Redis服务 官网下载redis压缩包 1.将下载的redis压缩包上传到linux 2.创建redis文件夹,文件夹可任意目录,我这里创建在/usr/local目录下 3.进入redis目录,将压缩包移动到redis目录 4.解压redis 1 tar -zxvf redis-6.2.12.tar.gz 5.进入redis-6.2.12...

Linux 编译安装 muduo

一、下载 本机测试环境 ubuntu 20。 直接从 GitHub 上下载: 1 git clone https://github.com/chenshuo/muduo 【注意】:muduo库是基于boost开发的,所以需要先在Linux平台上安装boost库。 注意,muduo库源码编译会编译很多unit_test测试用例代码,编译耗时长,我们也用不到,vim编辑上面源码目录里...

Linux 安装 Boost

一、安装依赖 本机测试环境 ubuntu 20。 安装编译工具: 1 sudo apt install gcc g++ 安装依赖库: 1 sudo apt install mpi-default-dev libicu-dev libbz2-dev 二、编译安装 B2 是Boost.Build的简写,目的在于使得编译C++项目更加便捷. Boost库的源码编译采用了B2工具....

Linux 制作使用动态库

一、制作动态库 使用 C++ 程序制作动态库和直接编译这个程序的命令一样,只是参数稍微不同。如果代码里边用到了线程库在制作动态库的时候不需要链接 -lpthread 或者 -pthread,在使用的时候链接就行。下面是制作动态库的 Linux 命令: 1 g++ -fPIC -shared demo.cpp -o libdemo.so -std=c++11 动态库命名需要以 libx...

C++ 左值与右值

一、引言 左值(lvalue):表示具名对象或内存中已有的资源,通常可以在表达式中多次使用。例如,一个变量 a 或数组元素等都属于左值。 右值(rvalue):通常指临时对象或表达式求值结果,它们没有持久化存储,往往在使用后即被销毁。例如,函数返回的临时对象或字面常量。 拷贝:在拷贝构造和拷贝赋值中,程序会分配新的内存并将源对象中的数据完整地复制到目标对象中。...

Linux 信号机制

一、引言 Linux 信号机制是进程间通信的一种方式,用于在不同进程之间传递信息。它通过向目标进程发送一个特定的信号来触发目标进程执行相应的处理操作。Linux 内核中实现信号机制的关键是信号处理函数和信号传递,每个进程都有一个信号表来表示该进程对不同信号的默认处理方式。 信号的处理函数等都是进程间级共享的。 执行信号的动作称为信号递达,信号产生到递达之间的状态称为信号未决。当一个进程...