社区
PostgreSQL
帖子详情
PG用来存储大量图片性能如何?
dinid
2014-06-13 10:27:26
目前约有8TB的图片,每张图片约为200-500KB,如果使用pg9.3或9.4,性能如何?会不会随着容量上升,pg性能会下降很多?
...全文
253
1
打赏
收藏
PG用来存储大量图片性能如何?
目前约有8TB的图片,每张图片约为200-500KB,如果使用pg9.3或9.4,性能如何?会不会随着容量上升,pg性能会下降很多?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
小笨和漂向北方
2014-07-10
打赏
举报
回复
yes, then partition/shard
分布式高
性能
日志复制服务 DistributedLog.zip
DL是一个高
性能
的日志复制服务,提供了持久化、复制以及强一致性的功能,这对于构建可靠的分布式系统都是至关重要的,如复制状态机(replicated-state-machines)、通用的发布/订阅系统、分布式数据库以及分布式队列。DistributedLog会分类维护记录的序列(sequences of records),并将其称为Log(又叫做Log Stream),将记录写入到DL Log的进程称之为Writer,从Log中读取并处理记录的进程称之为Reader。因此,它整体的软件栈如下所示:具体来讲,它包含如下几个组成部分:LogLog是有序的、不可变的日志记录(log record),它的数据结构如下所示:日志记录每条日志记录都是一个字节序列。日志记录会按照序列写入到日志流中,并且会分配一个名为DLSN(分布式序列号,DistributedLog Sequence Number)的唯一序列号。除了DLSN以外,应用程序还可以在构建日志记录的时候设置自己的序列号,应用程序所定义的序列号称为TransactionID(txid)。不管是DLSN还是TransactionID都能用来定位Reader,使其从特定的日志记录开始读取。Log分段(Log Segments)Log会被分解为Log分段,每个分段中包含了其记录的子集。Log分段是分布式的,应该放到Log分段
存储
中(如BookKeeper)。DistributedLog会基于配置好的策略来轮询每个Log分段,要么是可配置的时间段(如每两个小时),要么是可配置的最大规模(如每128MB)。所以Log的数据将会分为同等大小的Log分段,并且均匀分布到Log分段
存储
节点上。这样,Log的
存储
就不会局限于单台服务器的限制,同时,能够在集群中分散读取的流量。Log的数据可以永远保存,直到应用程序显式地将其截断,也可以在一个可配置的时间段内保存。对于构建复制状态机来说,显式截断会非常有用,如分布式数据库。在数据何时能够截断这一点上,它们往往有着严格的控制。基于时间保留Log对于实时分析的场景更为有用,它们只关心一定时间内的数据。命名空间属于同一组织的Log流通常会归类在同一个命名空间(namespace)下,并据此进行管理。DL的命名空间基本上就是用来定位Log流在何处的。应用程序可以在某个命名空间下创建和删除流,也能将某个流截断到给定的序列号上(DLSN或TransactionID均可以)。WriterWriter会将数据写入到它们所选择的Log中。所有的记录都会按照顺序添加到Log之中。序列号是由Writer所负责的,这就意味着对于某个Log,在给定的时间点上,只能有一个激活的Writer。当出现网络分区(network partition),导致两个Writer试图往同一个Log进行写入的时候,DL会保证其正确性,这是通过Log分段
存储
的屏障(fencing)来实现的。Writer由名为Write Proxy的服务层来提供和管理,Write Proxy用来接受
大量
客户端的fan-in写入。ReaderReader会从它们所选择的Log中读取记录,这会在一个给定的位置开始。这个给定的位置可以是DLSN,也可以是TransactionID。Reader将会严格按照Log的顺序读取记录。在同一个Log中,不同的Reader可以在不同的起始位置读取记录。与其他的订阅/发布系统不同,DistributedLog并不会记录/管理Reader的位置,它将跟踪的任务留给了应用程序本身,因为不同的应用在跟踪和协调位置上可能会有不同的需求,很难用一种方式就将这些需求全部解决。在应用程序层面,借助各种
存储
(如ZooKeeper、FileSystem或Key/Value
存储
)能够很容易地跟踪Reader的位置。Log记录可以缓存在名为Read Proxy的服务层中,从而应对
大量
Reader的读取。Fan-in与Fan-outDistributedLog的核心支持单Writer、多Reader的语义。服务层构建在DistributedLog Core之上,支持
大量
的Writer和Reader。服务层包含Write Proxy和Read Proxy,Write Proxy管理Log的Writer,并且在机器宕机时,能够对它们进行故障恢复。它能够从众多来源聚集Writer,允许不必关心Log的所有权(又称为Fan-in)。Read Proxy通过将记录放到缓存中,优化了Reader的读取路径,以应对成百上千的Reader读取同一个Log流的状况。作为一个日志服务,DistributedLog的优势可以总结为:高
性能
:面对
大量
的并发日志时,在可持久化的Writer上DL能够提供毫秒级的延迟,同时还能应对上千客户端每秒
大量
的读取和写入操作。持久化和一致性:消息会持久化到磁盘上,并且以副本的形式
存储
多份,从而避免丢失。通过严格的顺序,保证Writer和Reader之间的一致性。各种工作负载:DL支持各种负载,包括延迟敏感的在线事务处理(OLTP)应用(如分布式数据库的WAL和基于内存的复制状态机)、实时的流提取和计算以及分析处理。多租户:针对实际的工作负载,DL的设计是I/O隔离的,从而支持多租户的大规模日志。分层架构:DL有一个现代化的分层设计,它将有状态的
存储
层与无状态的服务提供层进行了分离,能够使
存储
的扩展独立于CPU和内存,因此支持大规模的写入fan-in和读取fan-out。
PostgreSQL系统概述_
PG
数据库内核分析学习笔记
PostgreSQL系统概述_
PG
数据库内核分析学习笔记
PG
简介和发展历程
PG
以一种先进的对象-关系数据库管理系统(ORDBMS), 它不仅支持关系数据库的各种功能, 而且还具备类, 继承等对象数据库的特征. 它是目前功能最强大, 特性最丰富的和结构最复杂的开源数据库管理系统, 其中有些特性甚至连商业数据库都不具备. 什么是对象数据库? 面向对象数据库系统(OODBS)支持定义和操作OODB...
PostgreSQL(
PG
)15从入门到精通
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。 通过本门课程的学习,让学员逐渐掌握
PG
数据库运维方法,轻松应对各类求职及DBA日常维护。
[译]解锁TOAST的秘密:如何优化PostgreSQL的大型列
存储
以最佳
性能
和可扩展性
解锁TOAST的秘密:如何优化PostgreSQL的大型列
存储
以最佳
性能
和可扩展性PostgreSQL是一个很棒的数据库,但如果要
存储
图像、视频、音频文件或其他大型数据对象时,需要TOAST以获得最佳
性能
。本文主要介绍使用TOAST技术来提高
性能
和可扩展性。
PG
使用固定大小的页面,这就给
存储
大值带来了巨大挑战。为解决这个问题,大数据值被压缩并分成多个较小的块。这个过程自动完成,不会显著影响数据库的...
2019全球PostgreSQL生态报告出炉,
PG
为何从RDBMS中脱颖而出?丨文末送书
墨墨导读:本文是近期ScaleGrid发布的2019
PG
趋势报告,从不同的角度解读了PostgreSQL如何在众多优秀的RDBMS中脱颖而出,原文:https://sc...
PostgreSQL
954
社区成员
1,459
社区内容
发帖
与我相关
我的任务
PostgreSQL
PostgreSQL相关内容讨论
复制链接
扫一扫
分享
社区描述
PostgreSQL相关内容讨论
sql
数据库
数据库架构
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章