最新 | 最热门 | 最高评价

-1  什么是分布式一致性

Tag: 分布式 | 数据库 | Paxos | Raft
ideawu 发于 2021年09月05日 10:49 | 点击: 2330 | 展开摘要
在工程实践上, 分布式一致性和多副本有关系, 如果没有多副本, 就没有分布式一致性的问题.

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

各个副本的写入操作序列必须先经过共识, 按同样的顺序写入, 因此所有副本的状态将是最终一致的(相同). 但是, 有可能单独地读取某个副本, 这就导致读操作在不同副本上发生的顺序并不相同, 这显然会

查看全文: http://www.udpwork.com/item/18147.html

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

Tag: IT技术和评论 | 计算机架构
ideawu 发于 2021年09月04日 10:29 | 点击: 1697 | 展开摘要
有个同事问我:"你开发的分布式数据库系统, 如何避免 scan 扫描操作返回了 pending 事务状态的数据?"

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

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

没错, 他接着问了:"我 scan 的时候只想返回 key, 但是, 要判断状态, 是不是还得去读取

查看全文: http://www.udpwork.com/item/18148.html

+0  Some hints on Dataproc

Tag: bigdata | GCP | Hive | PySpark
ROBIN DONG 发于 2021年09月03日 11:54 | 点击: 1791 | 展开摘要
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 haven’t added the Jar file for BigQuery. Af

查看全文: http://www.udpwork.com/item/18151.html

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

Tag: Weekly
阮一峰 发于 2021年09月03日 08:30 | 点击: 1811 | 展开摘要
这里记录每周值得分享的科技内容,周五发布。

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

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

封面图

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

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

我读过一些篮球报道,里面说 NBA 球队不喜欢"全能型球员",更喜欢"特长型球员"。

所谓"特长型球员",指的是其他方面

查看全文: http://www.udpwork.com/item/18150.html

+0  Binlog 和 Redolog 的区别

Tag: 数据库
ideawu 发于 2021年09月02日 21:29 | 点击: 1560 | 展开摘要
在开发分布式数据库的过程中, Binlog 和 Redolog 是非常重要的两个概念, 两者的作用似乎相同, 但实际上各有各的使用场景. 从多副本复制一致性的角度看, Binlog 用于强一致性, Redolog 用于最终一致性.

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

全球跨地域同步最终一致, 能不能复制 Binlog 呢? 绝对不行! 使用 incr 和 set 指令的组合, 在不同的地域

查看全文: http://www.udpwork.com/item/18149.html

-1  Go泛型是怎么实现的?

Tag: Go
鸟窝 发于 2021年08月31日 18:36 | 点击: 2313 | 展开摘要
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.17的发布,最近也涌现了很多的介绍Go泛型的文章,基本上都是简单介绍的文章。



查看全文: http://www.udpwork.com/item/18153.html

-1  一个select死锁问题

Tag: Technical | Golang
老王 发于 2021年08月29日 21:12 | 点击: 2057 | 展开摘要
话说前几天我遇到了一个死锁问题,当时想了一些办法糊弄过去了,不过并没有搞明白问题的细节,周末想起来便继续研究了一下,最终便有了这篇文章。

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

package main

import "sync"

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

查看全文: http://www.udpwork.com/item/18152.html

+1  企业级SSD硬盘fsync速度

Tag: 计算机架构
ideawu 发于 2021年08月27日 20:42 | 点击: 1438 | 展开摘要
小数据测试, 以便对硬盘 fsync 的速度有一个大概的了解. 结果:

rate
latency
备注

4044/s
0.247ms
Intel SATA SSD

19720/s
0.051ms
Intel NVMe SSD

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

如果要开发一个分布式 KV 数据库, 那么对于每一个客户端请求, 至少进行 1 次日志 fsync. 为了提高吞吐量(QPS), 日志模块必须进行 batc

查看全文: http://www.udpwork.com/item/18118.html

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

Tag: Weekly
阮一峰 发于 2021年08月27日 08:36 | 点击: 1752 | 展开摘要
这里记录每周值得分享的科技内容,周五发布。

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

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

封面图

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

本周话题:网络收音机的设计

最近,我为家里的老人买了一台网络收音机。

老人的年纪很

查看全文: http://www.udpwork.com/item/18124.html

+0  C++ Latch 实现

Tag: C/C++语言编程
ideawu 发于 2021年08月26日 21:10 | 点击: 2057 | 展开摘要
Latch(Binary Semaphore) 不同于信号量(Counting Semaphore), 也不同于条件变量, 它是一种合并信号成一个标记的通信方式, 可用于实现 Batch 操作. 例如, 两个线程围绕一个标记, 一个设置(生产者), 一个复位(消费者). 如果标记已设置, 则消费者立即复位然后返回. 如果标记未设置, 则消费者等待标记被设置.

在生产者消费者编程模式中, 生产者产生任务, 任务被加入队列中, 同时通过 Latch 告知消费者. 使用 Latc

查看全文: http://www.udpwork.com/item/18110.html

+0  最适合程序员的笔记软件

Tag: Developer
阮一峰 发于 2021年08月26日 08:42 | 点击: 1533 | 展开摘要
程序员的笔记软件,应该满足下面几个条件。

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

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

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

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

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

我一直在寻找符合这些条件的工具,但是市场上大部分的笔记软件,都不支持上面的第5点

查看全文: http://www.udpwork.com/item/18125.html

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

Tag: misc
Difan Zhang 发于 2021年08月24日 16:00 | 点击: 1426 | 展开摘要
IFITL: Integrated Fiber In The Loop 是 Bell South 的早期产品,大约在 2000 年左右推出,是一种 FTTC 的产品。

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

听起来这是没什么问题,只是端口密

查看全文: http://www.udpwork.com/item/18140.html
|<<<1234567>>>| 一共1357页, 16273条记录