首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

《design data-intensive application》阅读笔记之一

于2017年末得知了一本神书《design data-intensive application》,读完即可惜,如果早拿到这本书,就不会纠结于很多分布式系统和数据库的书了。因为已通读完全书,觉得如果不写 一些东西,确实可惜了。希望中文版早日出来吧。 如果我们要设计一个data system,有什么是我们需要考虑的呢? 首先,应该是存储数据的database。且不论这些怎么存储,假设是一个txt文档。当这个txt文档数据量很小时,一眼就能看出我们需要的数据在哪了。当数据量随之增长时,眼睛就不够用了, 我们需要区分经常读取的数据(hot spot)和不怎么读取的数据,这部分经常读的数据,不可能存放在很慢的磁盘上了,每次读取都去需要全量加载,而是直接缓存放入内存,这就是cache。那么 突发紧急情况,我们又想读取那些老旧的数据,这部分数据肯定不会是存放在内存里,那么这时候我们就需要一个index去filter or search by keyword。除此之外,我们不会局限于这部分数据 我们还需要和其他的process交流,那么所谓的batch process和stream process应运而生。于是一个简单的data system诞生了。 可能我们在app上,我们会觉得我们只是按下一个按钮,但是仅仅是一个简单的data system,就已经如此让人惊叹了。对的,这仅仅只是一个简单的抽象,实际上,我们需要考虑如何保证 client看到的cache和stored data是一致的?如何确保某一台机器坏了,系统还能正常用?好了,你的boss突然想撒钱了,贪小便宜的client会使得你的系统load不断增长,这时你该如何保证? 不仅如此,client可不能忍受打开网页相应的缓慢,performance可不能放弃了。当然,还有各种各样神奇的问题在等着你。

02
领券