最新 | 最热门 | 最高评价

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

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

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

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

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

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

+0  企业级SSD硬盘fsync速度

Tag: 计算机架构
ideawu 发于 2021年08月27日 20:42 | 点击: 247 | 展开摘要
小数据测试, 以便对硬盘 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

-1  生产者消费者模式的系统性能分析方法

Tag: 计算机架构
ideawu 发于 2021年08月21日 12:04 | 点击: 164 | 展开摘要
前一篇文章介绍了生产者消费者编程模式, 一种非常流行且强大的编程模式. 本文将分析采用这种模式的系统的性能分析方法, 以做性能优化.

系统性能分析主要关注这几个指标:

qps/rps(queries per second, requests per second) - 每秒处理请求数, 也即吞吐量(throughput), 一般也称为处理速度的大小, 通俗也称为性能

latency - 单次请求处理的耗时. 一般关注平均值(avg), 最大值(max), 最小值(min

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

+0  生产者消费者编程模式

Tag: 计算机架构
ideawu 发于 2021年08月15日 09:42 | 点击: 113 | 展开摘要
相信很多人都知道"生产者消费者"编程模式, 也使用过这种模式, 但是, 可能只是本能不自觉地使用过, 未必对这种模式有清晰和深刻的理解. 特别是级联生产者消费者模式, 更是强大无比. 很多人可能没有意识到, Golang 语言的核心思想正是生产者消费者模式, 也即 go routine + channel.

假设有一个功能, 处理某个任务需要进行3个步骤, 那么代码可以这样写:

func worker(t *Task) {
step1(t)
step2(t

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

+0  复杂软件系统开发的第一原则: KISS

Tag: IT技术和评论 | 计算机架构
ideawu 发于 2021年07月23日 21:44 | 点击: 131 | 展开摘要
俗话说:

Keep It Simple, Stupid!

由于大部分新手程序员在从学生转换成为工程师之前, 都经过所谓的"算法"编程训练, 特别是不少人还主动进行大量的"刷题"行为, 因此, 对"性能"的追求被潜移默化地植入了所有程序员的基因, 这就造成了程序员往往把细节上的所谓性能优化放到第一优先的位置.

这种片面追求细节性能, 从而缺少大局观的思维, 其实是非常错误的. 比如 C++ 程序员, 几乎把性能优化等同于减少内存拷贝和无锁(lock free), 认为内存

查看全文: http://www.udpwork.com/item/17983.html
|<<<1>>>| 一共1页, 5条记录