北川广海の梦
北川广海の梦
life's not out to get you
Home
Archives
Links
Me
Movie
Home
Archives
Links
Me
Movie
最新文章
Dgraph Raft RPC实现分析
Dgraph Raft RPC 实现分析 在raft集群中,各个节点的通信都是基于RPC实现的。各个节点需要通过rpc,实现消息的同步、心跳、快照传输等。etcd的raft库实现了核心算法。而具体的网络通信,需要应用自行实现。 etcd的raft example采用了http传输。dgraph则通过
数据库
64
0
0
2023-06-20
Dgraph数据库 raft wal实现
dgraph的raft算法,是基于etcd raft库实现的,其代码比较有参考价值。本文将分析其raft log storage部分的实现。
数据库
Golang
62
0
0
2023-04-18
colorful日志
日志日志输出在开发过程中是必不可少的。而不同级别的日志,能够帮助我们对信息进行区分,更容易抓住重点。常见的日志级别:error、warn、info、debug等那么在许多时候 我们看到不同级别日志输出不同的颜色,这背后的秘密其实就是 ANSI转义序列
Rust
杂项
105
0
0
2023-03-22
SQL的执行过程简析
对于这个执行过程,过去总是模糊不清,含糊的知道,会有SQL语法解析,执行计划分析等等。近日在工作中有相关学习,故写此文记录。
数据库
106
0
0
2023-03-17
前缀树实现
基于Golang,效率可能并不能达到O(N),因为要支持字母外的其他字符,所以子节点的长度并不固定,这里用的是链表存储。所以在进入到下一子节点前,需要遍历这个子节点链表。然而,如果是纯英文,则可以通过ASCII直接定位了,效率和内存都更有优势。 下面是代码: package main import
数据结构
171
0
0
2023-02-12
Golang Mutex互斥锁原理
首先回顾一下Java中的锁的一些特性。在面试时,我们常被问道Java的锁升级过程:即一个锁的初始是不加锁的,而当只有一个线程来尝试获取这把锁的时候,它会变为偏向锁,(在锁对象头中存储线程id)这样可以对应的线程可以直接获得锁。而当有更多线程(2个)尝试获取锁时,它会转变为一个轻量级锁...
Golang
226
0
0
2023-02-10
Golang map数据结构与渐进式rehash
HashMap是日常开发中最常用的数据结构之一,由于其独特的性质,在许多场景其都能发挥作用,例如去重,快速判断存在性,甚至表示一个对象。而不同平台对于hashmap有着不同的实现,本文将分析Golang语言中的map实现原理。首先来回顾一下Java中的HashMap...
Golang
759
0
0
2022-12-07
Golang类型系统、接口与类型断言
普通结构体 type Man struct{ name string } func (m *Man) Speak(){ } 我们定义了一个简单的结构体,它有一个name字段,并且为它实现了一个Speak的方法。这个对象在运行时的元数据如下 runtime._type结构,描述了类型的大小,
Golang
326
0
0
2022-12-05
Golang GC 三色标记法与混合屏障
Golang采用了三色标记与混合写入屏障技术,经历几个版本的不断优化,最终实现了几乎完全无STW。本文将分析Golang的GC实现思想。
Golang
604
0
0
2022-11-25
SQL Server实现Join原理
Join操作 关系型数据库中,Join操作非常常见。正是由于对多表联合查询的支持,各个表之间的关系、关联,正是通过join实现。 Join操作可以理解为,将两张表,通过某一个字段,联合为一张表。 班级表中,记录了班级的班主任是谁。学生表中记录了学生的个人信息,已经学生所属哪个班级。以此可将学生和班级
数据库
362
0
0
2022-05-07
上一页
下一页