上一页 1 2 3 4 5 6 7 ··· 15 下一页
摘要: 在分布式系统中,每一个机器节点虽然都能明确的知道自己在事务操作中的结果是成功或失败,但无法直接获取其他节点的操作结果。因此在分布式环境中,为了保持事务的 ACID 特性,就需要增加一个“协调者”来管理其他节点(“参与者”)事务的提交和回滚。基于这个思想,衍生出二阶段提交 2PC 和三阶段提交 3PC 阅读全文
posted @ 2023-08-15 09:27 Joey-Wang 阅读(244) 评论(0) 推荐(0)
摘要: 从 TCP 聊起 作为一个程序员,假设我们需要在A电脑的进程发一段数据到B电脑的进程,我们一般会在代码里使用 socket 进行编程。 此时我们可选项一般也就 TCP 和 UDP 二选一。TCP 可靠,UDP 不可靠。除非是马总这种神级程序员(早期 QQ 大量使用UDP),否则,只要稍微对可靠性有些 阅读全文
posted @ 2023-08-15 02:57 Joey-Wang 阅读(118) 评论(0) 推荐(0)
摘要: 论文 《In Search of an Understandable Consensus Algorithm》,发表于2014年 相比于 Paxos,Raft 最大的特性就是易于理解。为了达到这个目标,Raft主要做了两方面的事情: 问题分解:把共识算法分为三个子问题,分别是领导者选举 (leade 阅读全文
posted @ 2023-08-13 14:28 Joey-Wang 阅读(240) 评论(0) 推荐(0)
摘要: 为什么需要共识算法 一台服务器给客户端提供服务时,这种服务是很不稳定的,因为如果这台服务器宕机,服务马上就不再可用。因此,通常情况下会使用增加服务器副本的方式来保证系统的高可用。图中增加两个副本,和原来的服务器一起构成了一个分布式系统。 此时存在下面的一系列问题: 如何确保增加的副本可以发挥作用,即 阅读全文
posted @ 2023-08-12 00:12 Joey-Wang 阅读(63) 评论(0) 推荐(0)
摘要: 事务的 ACID 特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持续性(Durability)。 分布式系统无法严格地满足 ACID 特性,如果满足严格的 ACID 必然会导致分布式系统变得无法使用。所以可用性和一致性是一个无法两全其美的方案。 阅读全文
posted @ 2023-08-11 23:31 Joey-Wang 阅读(131) 评论(0) 推荐(0)
摘要: 若想在 ClickHouse 中执行一个 SQL 文件,可以使用 clickhouse-client 命令,添加 --query 参数: $ clickhouse-client --query="$(cat /path/to/file.sql)" # /path/to/file.sql 是 SQL 阅读全文
posted @ 2023-06-15 17:30 Joey-Wang 阅读(2070) 评论(0) 推荐(0)
摘要: 这是 Ubuntu 22.04 的新特性,现在是 apt-get 安装过程的一个步骤,是由 needrestart 命令触发,默认情况是交互性质的,也就是会中断在这里需要手动要处理提示。 解决的方法是 修改 /etc/needrestart/needrestart.conf 文件,将 #$nrcon 阅读全文
posted @ 2023-05-14 18:25 Joey-Wang 阅读(2897) 评论(0) 推荐(0)
摘要: 1 创建线程 C++11 之前原生不支持多线程,C++11起逐步引入了对线程的支持。 std::thread 在 <thread> 头文件中声明,因此使用 std::thread 时需要包含 <thread> 头文件。 #include <iostream> #include <thread> vo 阅读全文
posted @ 2023-04-25 23:48 Joey-Wang 阅读(357) 评论(0) 推荐(0)
摘要: Project #0 - C++ Primer 是个前期热身项目,考察对 C++ 的掌握。 要求实现一个并发 Trie 支持的 kv 存储,存储 map 到任何类型的 value 的 string key。Trie 中的每个节点存储一个键的单个字符,并且可以有多个子节点,这些子节点表示不同的可能的下 阅读全文
posted @ 2023-04-24 22:47 Joey-Wang 阅读(936) 评论(0) 推荐(0)
摘要: ## Predicate pushdown to SeqScan 将 SeqScan 算子上层的 Filter 算子结合进 SeqScan 里,这样仅需锁住符合 Predicate 的行。 更改 SeqScanExecutor 的 `Next()` 函数: ```c++ auto SeqScanEx 阅读全文
posted @ 2023-04-24 17:00 Joey-Wang 阅读(109) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 15 下一页