
MongoDB的野性难驯:我花了三年摸透WiredTiger的那些疯狂设计
一场半夜的P0故障,让我把MongoDB的存储层扒了个精光 那天凌晨两点,监控告警群炸了。长话短说,线上一套MongoDB分片集群,读写延迟突然飙升到20秒,CPU 100%,磁盘IO打满。我们是做内容平台的,用户上传的稿子、评论、元数据全...

一场半夜的P0故障,让我把MongoDB的存储层扒了个精光 那天凌晨两点,监控告警群炸了。长话短说,线上一套MongoDB分片集群,读写延迟突然飙升到20秒,CPU 100%,磁盘IO打满。我们是做内容平台的,用户上传的稿子、评论、元数据全...

你还在把 Redis 当缓存用?那玩意早过时十年了——不,是我说早了,其实缓存才是它最不值一提的本事。但你打开任何一份架构图,Redis 就在那,像水管里的 O 型圈,不大,没了它整个系统直接崩给你看。最近一个朋友把自建 Redis 废掉迁...

B树 vs LSM:磁盘的物理极限 数据库之所以慢,根源在于磁盘。机械硬盘的寻道时间,大约10毫秒。10毫秒,CPU已经飞过几百万个时钟周期。所以,读写性能的终极瓶颈,就在于磁盘访问次数。 SQL 数据库,惯用 B树。B树像一本精心编排的字...

分区。听着像地理课的概念。但今天,它正在撕裂全球商业的旧地图——不是比喻,是真的撕。说实话,去年在深圳见一个做硬件的朋友,他摊开一张世界地图,用红笔划了三个圈:美洲、欧非、亚太。说,今后我们的货,没法跨越这些圈了。我头皮一麻。 为什么是现在...

数据库拆分的需求往往出现在一种尴尬的境况——当你发现单表行数突破亿级,索引开始肿胀,查询像在泥浆里游泳。最初你以为只是索引设计不当,直到发现连主键查找都慢得离谱。那感觉,大概就像试图在图书馆里找一本没有被索引的书。于是你考虑Sharding...

为什么是现在?供应链都崩了,你还在玩单机? 数据分片这词,听着特高冷。说白了,就是把大表拆散,扔到不同机器上。可这事突然火到发烫,为什么?——因为全球供应链都打成筛子了,你还指望一个巨型数据库能抗住?笑话。去年我不是帮一个跨境物流客户救火嘛...

那天凌晨3点,我盯着监控大盘上的主从延迟曲线——突然飙到半小时。心里一万匹草泥马奔腾而过。老板电话马上就响了,对吧?主从复制,这个几乎每个后端工程师都烂熟于心的词,关键时刻总给你“惊喜”。 说实话,很多团队用主从复制,无非就是读写分离、数据...

数据量蹭蹭涨。老板拍桌子问为什么查询这么慢。你盯着那个慢查询日志后背发凉。这时候有人冒出来一句“读写分离吧”——听上去就像万金油。对吧?但真这么简单?我见过太多团队把读写分离当免死金牌,最后把自己挂得更惨。问题从来不在技术,在脑子。 为什么...

周六凌晨三点,电话响了。老板在那头吼:“系统挂了!用户都登不上!” 我一个激灵,爬起来看监控——数据库CPU 100%。单库,单表,几千万的数据,撑不住了。那是我第一次真正动念头:得分库分表了。 网上搜了一圈,大部分文章都是概念性的,讲什么...

去年圣诞,一家欧洲快时尚巨头的后台崩了。不是被黑客攻击,也不是流量激增——仅仅因为一条SQL语句,跑了94秒。94秒,足够咖啡凉透,足够用户关掉页面投奔竞品。而这场事故的直接损失,财务算了一周:270万欧元。慢查询,这个被无数CTO视为“技...