PostgreSQL线上沙龙第二期精彩回顾
PG基于非易失性内存优化探索
2)现在的PG架构是面向磁盘的,磁盘的顺序写性能远比随机写高。所以将数据页的随机写转换成WAL日志顺序写以满足数据库性能。同时每次事务提交时,确保WAL日志先刷盘,脏页由后台checkpoint进程和BgWriter进程将脏页异步刷盘。宕机重启后通过WAL日志恢复这样的事务:已提交但脏页未刷盘,从而达到事务的原子性。
3)NVM是一种新硬件,有非易失性的特性,并且速度特别快(顺序和随机的性能都差不多),可字节寻址。根据其特性,可考虑去掉WAL模块,每次事务提交时,直接将数据页刷盘;但需要考虑宕机重启时,将未提交但部分数据页刷下去的事务回滚。
4)感兴趣的同学可以阅读2016年VLDB上的论文《WriteBehind Logging》,
http://www.vldb.org/pvldb/vol10/p337-arulraj.pdf,详细理解如何去掉redo日志的一种解决方案。
3. 在您的测试过程中有没有考虑过磁盘格式的不同对数据库性能的影响?以前工作中我们曾经测试过不同的磁盘格式对性能影响差别挺大的。
目前PMEM-aware 文件系统由ext4-dax、xfs-dax等。所以测试时采用了ext4和ext4的dax模式,将磁盘格式化为ext4,分别针对原生PG和通过pmdk改造后的PG进行测试。感兴趣的话,可以测试不同磁盘格式ext4、xfs等对比性能。
PG+PostGIS在矢量切片中的应用
矢量切片指的是对矢量数据按金字塔形式进行切割,每一块中包含对应范围的矢量数据。将矢量切片在前端进行渲染后,可以很好的解决传统栅格瓦片样式动态修改、属性查询等问题,同时对于大数据量在前端渲染的效率也得到了大大的提升。本期沙龙,来自国信司南的刘航老师为大家分享了基于PG+PostGIS的矢量切片技术,主要包括矢量切片简介,PostGIS安装注意事项,PostGIS矢量切片实践等内容。
PostGIS生产出来的切片为标准的MVT格式,只要GIS平台支持MVt格式的矢量切片就可以对接PG的矢量切片。PostGIS提供对应的制作矢量切片的函数,具体的服务可以由自己封装,例如Node.js、Java、Go等。
3. 大数据量的情况下进行实时矢量切片渲染的性能怎么样?有哪些优化方式
大数据量下在小级别由于包含数据非常大,所以要考虑对线面化简,对点抽稀,在大数据量下大级别情况,对表建好对应的索引,性能还是可以的,对于前端显示还是很流畅的。同时可以考虑PG数据库的分布式集群等方案。
4. 这展示的图,是用什么展示出来的啊?
前端采用的是MapboxGLJS库,底图为天地图栅格瓦片,上面的数据为矢量切片。
5. 多点连接出来不就是面了么?那要实现运动或者行车轨迹怎么做?
PG可以存储点、线、面三种数据类型,多点可以为多个点,或者一条线,或者封闭后才可以是面,具体的运动要根据业务设计进行实时返回数据,并在前端实时显示等。
老鸟带你选择数据库
Austin答疑互动摘录
不要只从技术来比较,更多的情况要从业务角度来考虑。互联网企业中业务比较成熟的还是MySQL。对传统企业来说,PG是非常合适的。
2. 云化时代未来DBA会不会越来越少?越来越需要源码级别DBA?
END
PPT和视频获取方式:识别下方二维码,进入公众号,回复“沙龙第二期”,即可获得下载链接。