simplicity is prerequisite for reliability

最近几周一直在魔改一个重要的生产系统,给这个系统加上了一个嵌入式的关系数据库,在内存中缓存一些结构化的数据,使得应用在和数据库之间发生网络隔离的时候也能做一些关键操作。既然是缓存就会涉及到缓存失效、同步、一致性等一系列问题,好在我可以充分利用业务特性来实现最终一致性,但是还是在数据同步上遇到了一个有趣的问题:如何将数据库中有记录被删除这件事情通知到应用,使得缓存中的相关记录也被删除?

Read More...

背景

从上周开始我就一直在做数据清洗的工作,这次算是体会到了什么叫做“抛开数据量谈实现就是耍流氓”。

我设计方案和调试代码连接的都是日常环境的数据库,里面的单表数据量在百级,无论我怎么实现都是瞬间洗完。到了性能测试的时候用的就是性能库,双 11 之前@W君做性能测试的时候,往里面写入了 2000W 的数据,足够我战个痛快。

上一篇文章《{% post_link trick-of-paging-query %}》中我解决了分页查询遇到的性能问题,整个数据清洗代码的性能虽有提升,但是十分有限。这说明了其实分页查询不是性能最热点,路漫漫其修远兮。

Read More...