相聚巴厘岛| PG Conf.Asia 2019 DAY1简报



2019亚洲PG大会在印度尼西亚巴厘岛举行,其主旨是PostgreSQL社区与PostgreSQL商业用户的完美碰撞。本次PostgreSQL大会在三天半的时间(9.8~9.11)内在美丽的海滩上讲述Postgres的故事。

9月8日是闭门会议,开发者们提出了他们在PostgreSQL的最新研究方向,并展开深入讨论。9月9日是正式会议的第一天,在会议开幕式之后,包括Bruce Momjian在内的speaker进行了15个场次的演讲。9月10日更是干货满满的一天,会有17个场次的演讲徐徐展开。9月11日是最后一天,主办方带领与会者到Jendela Bali Resto举行会议闭幕式。


闭门会议

闭门会议讨论了‘全局分区表索引’、‘Postgres连接协议压缩’等内容。

1591239116934848.png


将分区表索引改为全局索引

开发者们希望通过将分区表索引改为全局索引来提升分区表性能,然而这需要在分区表的索引项中添加每个分区表的标示,开发者对这个改变的利弊进行了深入的讨论。

1591239146508662.png


Postgres连接协议压缩

开发者认为需要将客户端和服务器的数据交互协议进行压缩,用以提高效率。然而在经过一番讨论后,认为这可能只是将负载转移到了CPU而无法达到理想的效果,需要进一步探讨。

1591239177495694.png


DAY 1 议题

  • Bruce Momjian—民主数据库

  • Ivan Pachenko—Postgres作为企业级数据库的挑战

  • Kohei KAIGAI—日本的Postgres用户和生态

  • Amit LANGOTE—Postgres的分区表

  • Muhammad HAROON—业务连续性和故障恢复

  • Taiki KONDO—插件TDE

  • Etsuro FUJITA &Tatsuro YAMADA—FDW:数据集成的强大工具

  • Masahiko SAWADA—数据库透明加密和秘钥管理

  • Takahiro KOBAYASHI—使用Kubernetes构建PostgreSQL服务

  • Sangwook KIM—AppOS:可扩展文件I / O的PostgreSQL扩展

  • Drs. Sudarko Ph.D—印尼的PG教育应用

  • Ibrar AHMED—调优Postgres的同时,还需要调优linux

  • Julien ROUHAUD—全面分析数据库性能

  • Kohei KAIGAI—火力全开处理TB级别的日志数据

  • Yugo NAGATA—在PostgreSQL上实现增量视图维护


Bruce Momjian—民主数据库

在Bruce Momjian的演讲中,他阐述了什么是民主和民主的产生,他认为Postgres是一个民主的数据库,世界各地的PGer在共同为Postrges的发展而努力,在这种集思广益的模式下,OpenSource软件与CloseSource软件相比在功能、性能、可靠性等方面都有得天独厚的优势。

1591239213343490.png

1591239238867319.png


Ivan Pachenko—Postgres作为企业级数据库的挑战

Postgres在俄罗斯的使用非常广泛,在其给出的统计中,Postgres在俄罗斯的使用率遥遥领先。然而Postgres面临着一些亟需解决的问题,引发与会者深思。1.Postgres内置横向扩展问题。2. 复制的问题(逻辑复制和流复制) 3. 极限问题(大表,大bytea,事务耗尽)4.可靠性(内置备份解决方案,内置故障转移,checksum和自我诊断)

1591239298510281.png


Kohei KAIGAI—日本的Postgres用户和生态

他首先介绍了自己从2003年开始的Postgres生涯,然后向与会者介绍了Postgres在日本的用户群体和生态。

1591239324909414.png


Amit LANGOTE—Postgres的分区表

十多年来,Postgres已经允许用户在他们的数据库中实现表分区,但在Postgres 10发生之前这样做并不容易。2017年发布了Postgres 10,这个版本采取了措施来改善用户在表分区的体验,采用专门的语法实现了表分区,并自动执行各种关键任务,如元组路由,设置分区约束等。2018年发布的Postgres 11,修复了许多Postgres 10分区限制,提供分区索引,有限形式的唯一和外键约束,更新行移动,更快的分区修剪等。Postgres 11使得用户可以方便的将分区表应用于实际生产过程中。将大量数据放入分区的人可能会发现它的一些限制,Postgres 11无法处理超过几百个分区,而用户希望它可以处理数千个分区。今年即将发布的Postgres 12在一定程度上改善了这种情况,因此人们现在可以使用多达几千个分区来处理常见的用例集。随着各种性能改进,还将有新功能,进一步缩小功能差距。在本次演讲中,我还将解释用户在各种版本的Postgres可以做的事情,包括最新版本12。

1591239355469103.png


Muhammad HAROON—业务连续性和故障恢复

现在,数据库已经成为软件业务的重要的一个组成部分。数据库从一个故障中快速恢复对业务的持续性来说是至关重要的,停机时间可以直接转换为收入损失。如果将业务运行在Postgres上,本演讲涵盖了需要了解的业务连续性矩阵的重要主题。本演讲还介绍了业务关键PostgreSQL后端的集群架构,使用PostgreSQL的核心功能以及Barman,Backup和Recovery Manager实现零到一百个业务连续性。


Taiki KONDO—插件TDE

随着从RDBMS窃取数据的犯罪增加,保护这些数据的需求也日益激烈。PostgreSQL的透明数据加密(TDEforPG)由NEC公司主导开发的一款开源工具,具有透明数据加密功能,可以为这种需求提供解决方案。迄今为止,TDEforPG是唯一使用OSS的免费解决方案。TDEforPG最初是作为pgcrypto的包装器实现的。现在,作为可插拔存储的扩展重新实现。在本演示中,介绍了TDEforPG作为可插拔存储的新功能以及从实验阶段获得的知识。

1591239417601383.png


Etsuro FUJITA &Tatsuro YAMADA—FDW:数据集成的强大工具

目前,很多公司有多个数据存储形式,可满足不同的需求和用途,可能包括PostgreSQL,Oracle和Microsoft SQL Server等关系数据存储。和非关系数据存储,如平面文件和Hadoop系统,这些组织面临的一些问题是将如何集成这些数据存储中的数据,以使其业务能够更有效地处理数据。PostgreSQL提供外部数据包装器(FDW)来访问外部数据源;通过FDW,用户可以通过SQL将数据集成到多个数据存储中,就好像数据存储在单个PostgreSQL服务器中而不会复制数据一样。在本次演讲中,解释了FDW的概念,展示FDW的工作原理。然后,讨论了两个在PG代码中的FDW,file_FDW用于平面文件的FDW,以及postgres_fdw,用于远程PostgreSQL服务器的FDW,包括PostgreSQL 12中的新功能和最新的用例,例如sharding。最后,把oracle_fdw(Oracle的FDW)描述为第三方FDW中最先进和最知名的FDW,包括其迁移用例和未来路线图。

1591239467247058.png


Masahiko SAWADA—数据库透明加密和秘钥管理

数据加密是保护数据免受窃听和盗窃等威胁的有效方法之一。在存储诸如信用卡号,用户的个人信息等机密信息时必不可少。此外,诸如PCI DSS,GDPR等各种数据保护标准和规定也需要它。演讲人一直在研究通过为PostgreSQL实现内置透明数据加密(TDE)来使PostgreSQL更安全。在本次演讲中,首先介绍了一些有关数据库加密的研究。然后,介绍了内置TDE实现的一些细节,以及它如何保护用户数据。还介绍了使用密钥管理系统的强大加密密钥管理,这是数据加密的另一个重要特性。

1591239521920111.png


Takahiro KOBAYASHI—使用Kubernetes构建PostgreSQL服务

如今,您可以看到Kubernetes构建的功能强大且灵活的应用程序平台的许多用例。由于Kubernetes被称为平台的平台,因此各种各样的服务依赖于其自我修复和声明性设置等功能来扩展生态系统。那么PostgreSQL呢?在本次会议中,分享了对Kubernetes如何赋予PostgreSQL稳定性和弹性的评估。今天,我们已经有许多有用的工具,可以让我们提供PostgreSQL作为服务。其中,介绍了Kubernetes集群中的流复制和存储冗余的示例。


Sangwook KIM—AppOS:可扩展文件I / O的PostgreSQL扩展

通用操作系统会牺牲数据库性能以保持通用性。这种性能影响已经变得特别突出,现代硬件,如高性能SSD。另一方面,需要大量工作来在数据库引擎内定制或构建类似操作系统的功能,例如用户级CPU和磁盘I / O调度,以满足性能需求。在本次演讲中,介绍了AppOS,这是一个实现为可扩展文件I / O的PostgreSQL扩展的库操作系统。对于写密集型工作负载,AppOS将PostgreSQL吞吐量提高了13倍,第99个响应时间高达32倍,无需更改代码或硬件更新。具体来说,解释了为什么Linux I / O堆栈对PostgreSQL性能有问题。接下来,介绍了AppOS的核心概念和内部。最后,分享了AppOS for PostgreSQL的几个用例和性能结果。


Drs. Sudarko Ph.D—印尼的PG教育应用

由于教育部门不同部门的各种需求,由高等教育部署和开发的软件需要很大的灵活性。本演讲介绍了PostgreSQL在印度尼西亚教育部门的各种部署。


Ibrar AHMED—调优Postgres的同时,还需要调优linux

PostgreSQL是领先的开源数据库之一。默认的PostgreSQL配置不针对任何特定工作负载进行调整。默认配置的设计使PostgreSQL可以使用最少的资源在任何系统上运行。因此,PostgreSQL的默认安装无法在高性能计算机上提供最佳性能,因为它设置为使用所有可用资源。PostgreSQL提供的机制允许您根据工作负载和计算机规范调整数据库。但是,在PostgreSQL之外,我们可以调整Linux内核以允许数据库加载以最佳方式工作。在本次演讲中,听众学习了如何调整一些PostgreSQL参数,并看到该调优的效果,重点展示如何调优Linux以获得更好的Postgres性能。由于有许多Linux内核参数可以调整以提高PostgreSQL的性能,因此还分享了调整某些Linux参数时获得的基准测试结果。


Julien ROUHAUD—全面分析数据库性

PostgreSQL越来越成熟,并且在更大的环境中使用。但与此同时,随着新功能和优化的增加,管理变得越来越复杂,有时难以诊断性能问题。例如,访问操作系统级别指标,查询使用情况统计信息以及有关内部事件(如等待或设置更改)的各种信息,这些信息过去很难检索和分析。幸运的是,新的性能指标和统计数据视图也会定期添加到核心或者通过第三方扩展。本演讲介绍了其中的几个扩展,解释他们可以访问哪些信息,以及如何利用它们来挖掘您在生产中可以遇到的瓶颈。本演示文稿将重点关注的扩展是:

  • pg_stat_statements(有关查询用法的统计信息)

  • pg_stat_kcache(磁盘/ CPU使用情况统计信息)

  • pg_wait_sampling(等待事件的统计信息)

  • pg_qualstats(有关查询使用WHERE / JOIN子句的统计信息)

  • pg_track_settings(跟踪配置更改)

  • hypopg(假设索引)

此外,PoWA将作为组合它们并充分利用它们的功能的示例。这是一个定期存储这些扩展以空间高效格式提供的指标的工具,以及一个Web应用程序,它可以使用深入分析方法表示不同仪表板上的所有收集的指标,并且还可以自动分析数据以进行建议优化,例如缺少索引。但是,每个扩展和其他扩展当然可以独立使用来进行性能分析。


Kohei KAIGAI—火力全开处理TB级别的日志数据

本演讲介绍了我们如何处理超过10GB/s查询执行吞吐量的TB级日志数据处理,以及为什么它使系统配置简单,并帮助用户管理工作。它是硬件和软件的组合解决方案。SSD-to-GPU直接SQL技术提高了快速NVME存储的最高性能,并在数据到达主机系统的CPU / RAM之前通过GPU上的SQL执行消除了不必要的数据。Arrow_Fdw可以扫描Apache Arrow格式的平面文件;这是面向列的数据存储之一。此外,通过使用Arrow_Fdw和JOIN / GROUP BY下拉,表分区允许非常有效地管理时间序列数据(如日志)。这些技术的结合将PostgreSQL的位数据处理性能提升到了下一阶段。目前,我们至少观察到25GB / s的有效查询执行性能。PostgreSQL处理大于100GB/s的大型IoT/M2M级日志数据并不是一个梦想。


Yugo NAGATA—在PostgreSQL上实现增量视图维护

物化视图是一种在DB中存储视图定义查询结果的功能,以实现更快的查询响应。但是,在修改基本关系后,需要进行视图维护以使内容保持最新。REFRESH MATERIALIZED VIEW命令是为此目的而准备的,但这必须从头开始重新计算内容,并且效率不高。视图维护(IVM)是一种有效维护物化视图的技术,它只计算和应用物化视图的增量更改,而不是重新计算。此功能尚未在PostgreSQL上实现。在本次演讲中,建议在PostgreSQL上实现IVM,讨论了我们如何做到这一点的想法。此外,解释了我们提议实施的最新状态。

社区公众号二维码
相关内容