Linux page allocation failure 的问题处理 - lowmem_reserve_ratio
背景 Linux把物理内存划分为三个层次来管理:存储节点(Node)、管理区(Zone)和页面(Page)。 每一个Node,系统又将其分为多个Zone,x86架构下,node被分为ZONE_DMA、ZONE_NORMAL、ZONE_HIGHMEM,而64位x86架构下有ZONE_DMA、ZONE_DMA32、...
背景 Linux把物理内存划分为三个层次来管理:存储节点(Node)、管理区(Zone)和页面(Page)。 每一个Node,系统又将其分为多个Zone,x86架构下,node被分为ZONE_DMA、ZONE_NORMAL、ZONE_HIGHMEM,而64位x86架构下有ZONE_DMA、ZONE_DMA32、...
背景 pipelinedb是基于PostgreSQL的一个流式计算数据库,纯C代码,效率极高(32c机器,单机日处理流水达到了250.56亿条)。同时它具备了PostgreSQL强大的功能基础,正在掀起一场流计算数据库制霸的腥风血雨。 在物联网(IoT)有非常广泛的应用场景,越来越多的用户开始从其他的流计算平台...
背景 数据库的可靠性是关系数据库的命脉之一,为了保证数据库的可靠性,重做日志是非常关键的技术,消除随机写,确保事务成功提交前,事务产生的日志都已经落盘。 因为每个变更产生的REDO都要落盘,所以REDO WRITE在某些情况下也很容易成为瓶颈,REDO WRITE也产生了很多优化技术。 Oracle log ...
背景 随着移动互联网的发展,数据爆炸性增长,企业对数据产生价值的渴望越来越多。 比如很多APP中会埋点(已经不是什么秘密),以此收集用户的行为数据,用户的位置变化,上了什么网站,浏览了哪些网页,和什么人聊天。 又比如汽车类的应用,汽车的轨迹,油耗,停留的时间,最喜欢去的商圈等。 金融方面,用户的付费行为,和...
背景 PostgreSQL 和它的LOGO大象一样,给人非常强大的安全感。 就拿它的Feature来说,一个大的feature要打磨很多年才能正式的合并到master分支。 比如并行计算的特性,从9.4就开始准备,加入了work process和dynamic shared memory的功能,奠定了多进程并...
背景 人类是群居动物,随着人口的增长,联络方式越来越无界化,人与人,人与事件,人与时间之间形成了一张巨大的关系网络。 有许多场景就是基于这张巨大的关系网络的,比如。 1. 猎头挖人 作为IT人士或者猎头、HR,对Linkedin一定不陌生,领英网实际上就是一个维护人际关系的网站。 通过搜索你的一度人脉...
背景 当我们在数据库中执行一些比较大的查询,或者执行比较复杂的函数时,如果要知道执行到哪里了,预计还要多久。 怎么办呢? 有方法得到吗?当然有。 目前PostgreSQL支持的是传统的SQL执行方法,将(nonutility)语句parser后,根据parser tree生成plan tree, 然后根据pl...
背景 在数据库中哪些操作需要超级用户的权限才能执行? 这个问题翻文档可能翻不全面,或者是已经比较难以完成的任务。 但是从源码里面是比较好找出这个答案的。 权限 例如 postgres=# select * from pg_authid; rolname | rolsuper | ro...
背景 在英语中,名词通常都有复数,表示多个;形容词,过去式,动词等。 有large, larger, largest, stories, eating, did, doing, hacked这样的。 这可能会给分词带来一定的困扰,例如我们来看看PG默认的ts config怎么处理它的。 比如english ...
背景 想必大家都在图书馆借过书,小时候有好看的书也会在小伙伴之间传阅。 借书和数据泵有点类似,一份数据通过数据泵实时的分享给订阅者。 例如在IoT的场景中,有流式分析的需求,也有存储历史数据的需求,同时还有数据挖掘的需求,搜索引擎可能也需要同一份数据,还有一些业务可能也要用到同一份数据。 但是如果把数据统统...