Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Raft QA Folding Raft 只在非拜占庭的条件下才能正常工作非拜占庭条件 是指所有的服务器都是 宕机-停止 模型:即每个服务器要么严格遵循 Raft 协议,要么停止服务。例如,服务器断电就是一个非拜占庭条件,此时服务器会停止执行指令,则 Raft 也会停止运行,且不会发送错误结果给客户端。拜占庭故障是指有些服务器不好好...

Volatile,Atomic与Memory barrier 参考链接 三者的关联C++ 中的 volatile 关键字,std::atomic 变量及手动插入内存屏障指令(Memory Barrier)均是为了避免内存访问过程中出现一些不符合预期的行为。这三者的适用场景与区别如下: 如果需要原子性的访问支持,只能选择 atomic; 如果仅需保证内存访问不会被编译器优化掉,优先考虑 v...
CPP

CPU缓存架构 寄存器:在每个核心上,有160个用于整数和144个用于浮点的寄存器单元。访问这些寄存器只需1个时钟周期这构成了对执行核心来说最快的内存。编译器会将本地变量和函数参数分配到这些寄存器上。当使用超线程技术( hyperthreading )时,这些寄存器可以在超线程协同下共享。 内存排序缓冲:MOB由一个64长度的load缓冲和36长度的store缓冲组成。这些缓冲用于记录等...
OS

摘要MapReduce既是一种编程模型,也是一种与之关联的、用于处理和产生大数据集的实现。用户要特化一个map程序去处理key/value对,并产生中间key/value对的集合,以及一个reduce程序去合并有着相同key的所有中间key/value对。许多实际的任务都可以用这种模型来表示 用这种函数式风格写出的程序自动就拥有了在一个大的PC机集群上并行执行的...

在数据主键有序的基础上,只为少部分数据建立索引,从而在查询时能够圈定出大致的范围,再在范围内利用适当的查找算法找到目标数据。 空间占用小,查询相对慢 Sparse Index in Kafka单个Kafka的TopicPartition中,消息数据会被切分成段(segment)来存储,扩展名为.log。log文件的切分时机由大小参数log.segment.bytes(默认值1G)和时间参数l...

进程与线程的区别老八股版本 一个线程属于一个进程,一个进程包含多个线程 进程是资源分配的基本单位 有独立的地址空间,拥有CPU资源、内存资源、文件资源等 线程是CPU调度的基本单位 私有(线程上下文):线程栈(但能通过指针被另一个线程修改),寄存器,程序计数器 共享:进程地址空间中除线程上下文之外的所有内容:堆、全局变量、静态变量、代码段、文件等公共资源 数据共享:进程有独立的地址...
OS

ZooKeeper 由 Yahoo 开发,后来捐赠给了 Apache ,现已成为 Apache 顶级项目。ZooKeeper 是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于 Paxos 算法的 ZAB 协议完成的。其主要功能包括:配置维护、分布式同步、集群管理、分布式事务等。 ZABZookeeper 架构作为一个优秀高效且可靠的分布式协调框架,Zoo...

未完成页面FetchPage()NumNodes()MemoryBytes() Stop Kill Pause -> Resume Send deliver, dispatch, announce, distribute, route find search, extract, locate, recover start launch, create, begin, op...

Current1234# 忽略当前路径下的 PROJECT 的更新svn propset svn:ignore <PROJECT> .# 执行 svn up 导致 与 git 冲突后,解决冲突并保留本地当前(git)版本svn resolve --accept working <PROJECT> 配合Phabricator工作流12345## 保存修改svn ad...