postgresql - 如果在高负载情况下使用 HDFS 作为文件系统部署 PostgreSQL 会发生什么?
问题描述
这是一个故意愚蠢的问题。但我只是好奇——如果我使用 FUSE 绑定作为卷安装 HDFS 并使用存储在该 HDFS 卷上的集群启动 PostgreSQL 并开始写入大量数据和/或进行高强度读取会发生什么?
解决方案
首先,我不认为这是一个愚蠢的问题,话虽如此,让我们使用一些定义,我们可以从那一点继续:
保险丝:
FUSE 是一个用户空间文件系统框架。它由一个内核模块、一个用户空间库和一个挂载实用程序(fusermount)组成。
HDFS(Hadoop分布式文件系统):
分布在许多联网计算机或节点之间的文件系统。HDFS 具有容错性,因为它在文件系统上存储了多个文件副本,默认复制级别为 3。
所以我认为你的问题@Gill Bates 的简短版本是:HDFS 是否会影响 Postgres DB 的性能(当然假设 Postgres 集群存储在HDFS
)?
简短的回答是,取决于您的配置,但很可能是的,如上所述,您可以将其HDFS
视为文件系统,当然,Postgres 将数据存储在文件系统中,因此它会受到您所在文件系统的影响使用,假设您执行多个操作read/write
,拥有分布式文件系统的一大优势HDFS
是支持文件的多个副本,这大大减少了许多客户端访问单个文件的常见瓶颈,从而有助于更好地扩展。
所以直接回答你的问题:如果我开始写入大量数据和/或进行高强度阅读会发生什么?
无论您的文件系统是什么HDFS
(这可以帮助您更好地扩展并同时为您的文件系统增加容错能力),可以直接确定/影响您的数据库在压力测试下响应的好坏的参数是:
- 索引
- 分区
- 检查站
- 真空,分析(使用填充因子)
- 查询定义
当然,也取决于您的堆栈(您的服务器提供/主机有多好),根据我的经验,这些事实可能会影响更多您的 Postgres DB(附在一些链接下方,可能有助于澄清更多)。
希望以上内容有助于澄清!
推荐阅读
- regex - 使用搜索运算符仅查找是否存在匹配项
- delphi - Error in FMX.Treeview function TTreeViewContent.GetLastVisibleObjectIndex
- python - 如何在 BeautifulSoup 中获得所需的值?
- java - 如何在 Java 中转换图像,就像在 Python 中对 Keras 所做的那样?
- tensorflow.js - 是否可以设置随机数生成器种子来获得可重复的训练?
- c# - How to Initialize object property
- r - Generate a frequency dataframe out of an input dataframe
- python - 为什么我的程序不计算最后一场比赛的得分?
- sql - SQL 触发器,结果未分组
- c++ - Open Visual Studio with solution and specific file and line