[返回] [最新] [最热门] [最高评价]

什么是分布式一致性

在工程实践上, 分布式一致性和多副本有关系, 如果没有多副本, 就没有分布式一致性的问题.

多副本的定义: 多副本可以放在多台机器上, 也可以放在同一个进程内的不同内存地址内, 或者一个副本在内存, 一个副本在硬盘. 只要同一个对象出现在多处, 或者在多处被引用, 就是多副本.

各个副本的写入操作序列必须先经过共识, 按同样的顺序写入, 因此所有副本的状态将是最终一致的(相同). 但是, 有可
...

ideawu 2021-09-05 10:49 | 查看: 675

记一次关于系统性能的有趣讨论

有个同事问我:"你开发的分布式数据库系统, 如何避免 scan 扫描操作返回了 pending 事务状态的数据?"

我说:"把数据扫描出来, 然后逐个判断过滤掉 pending 状态的数据."

我感到奇怪, 对于他的问题, 解决方案非常显然啊. 解决方案非常直观, 兵来将挡水来土掩, 我相信他也能想到, 不想要的数据当然要剔除掉, 否则呢? 那么, 他的问题的点在哪?

没错, 他接着问了:"
...

ideawu 2021-09-04 10:29 | 查看: 527

Some hints on Dataproc

When running a job in the cluster of Dataproc, it reported:

java.util.concurrent.ExecutionException: java.lang.ClassNotFoundException: Failed to find data source: BIGQUERY.

The reason is I havenR
...

ROBIN DONG 2021-09-03 11:54 | 查看: 513

科技爱好者周刊(第 174 期):全能程序员 vs 特长程序员

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。

封面图

浙江普陀山客运中心最近获得2021年度凡尔赛建筑奖。(via)

本周话题:全能程序员 vs 特长程序员

我读过一些篮球报道,里面说 NBA 球队不
...

阮一峰 2021-09-03 08:30 | 查看: 423

Binlog 和 Redolog 的区别

在开发分布式数据库的过程中, Binlog 和 Redolog 是非常重要的两个概念, 两者的作用似乎相同, 但实际上各有各的使用场景. 从多副本复制一致性的角度看, Binlog 用于强一致性, Redolog 用于最终一致性.

Binlog 可包含非幂等的指令, 例如 incr 指令. Redolog 只能包含幂等的指令, 例如 set 指令.

全球跨地域同步最终一致, 能不能复制 Bin
...

ideawu 2021-09-02 21:29 | 查看: 364

Go泛型是怎么实现的?

Go 1.17中你就可以使用泛型了,可以参考我3月份的文章:Go 泛型尝鲜, 编译的时候需要加-gcflags=-G=3参数,而当前master分支,默认已经支持泛型,不需要加-G=3参数了。

你可以通过下面的步骤尝试go最新分支:

1
2

go get golang.org/dl/gotip
gotip download

编译代码的时候使用gotip替换go命令即可。

随着Go 1.1
...

鸟窝 2021-08-31 18:36 | 查看: 382

一个select死锁问题

话说前几天我遇到了一个死锁问题,当时想了一些办法糊弄过去了,不过并没有搞明白问题的细节,周末想起来便继续研究了一下,最终便有了这篇文章。

让我们搞一段简单的代码来重现一下当时我遇到的问题:

package main

import "sync"

func main() {
var wg sync.WaitGroup
foo := make(chan int)
bar := make(c
...

老王 2021-08-29 21:12 | 查看: 353

企业级SSD硬盘fsync速度

小数据测试, 以便对硬盘 fsync 的速度有一个大概的了解. 结果:

rate
latency
备注

4044/s
0.247ms
Intel SATA SSD

19720/s
0.051ms
Intel NVMe SSD

结论: SATA 盘的 QPS 是 4000, NVMe 的 QPS 是 20000.

如果要开发一个分布式 KV 数据库, 那么对于每一个客户端请求, 至少进行
...

ideawu 2021-08-27 20:42 | 查看: 409

科技爱好者周刊(第 173 期):网络收音机的设计

这里记录每周值得分享的科技内容,周五发布。

本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容。

周刊讨论区的帖子《谁在招人?》,提供大量程序员就业信息,欢迎访问或发布工作/实习岗位。

封面图

上海的很多老小区,由于历史原因,有很多密密麻麻的架空电线,非常影响美观。江阴路今年的社区更新,尝试将架空线包裹进入人造的绿色藤蔓。(via)

本周话
...

阮一峰 2021-08-27 08:36 | 查看: 426

C++ Latch 实现

Latch(Binary Semaphore) 不同于信号量(Counting Semaphore), 也不同于条件变量, 它是一种合并信号成一个标记的通信方式, 可用于实现 Batch 操作. 例如, 两个线程围绕一个标记, 一个设置(生产者), 一个复位(消费者). 如果标记已设置, 则消费者立即复位然后返回. 如果标记未设置, 则消费者等待标记被设置.

在生产者消费者编程模式中, 生产者产
...

ideawu 2021-08-26 21:10 | 查看: 409

最适合程序员的笔记软件

程序员的笔记软件,应该满足下面几个条件。

(1)跨平台,同时支持桌面电脑(Windows,Mac,Linux)和手机(Android,iOS)。

(2)随时同步,打开任何一台机器,都能接着上一次的工作继续写。

(3)实时存储,如果软件突然关闭,也不会丢失内容。

(4)支持 Markdown 格式,便于后期直接发布。

(5)支持推送到远程 Git 仓库,产生历史版本,同时作为远程备份。
...

阮一峰 2021-08-26 08:42 | 查看: 385

IFITL -- 美国早期光纤接入网的牺牲品

IFITL: Integrated Fiber In The Loop 是 Bell South 的早期产品,大约在 2000 年左右推出,是一种 FTTC 的产品。

技术上,他是多模主动光纤从电话局 CO (Central Office) 直通到路边的信息箱的。信息箱内放置一台 10M 交换机。光口上联,从信息箱到家庭是额外单独布线的户外五类线。端口密度自然是一个光口对应最多 4 个用户。这基
...

Difan Zhang 2021-08-24 16:00 | 查看: 280

...更多...