加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

当数据“自然可分区”时,跨机器对PostgreSQL进行分区的现代方法

发布时间:2020-12-13 16:21:06 所属栏目:百科 来源:网络整理
导读:在经历了几年的“NoSQL”空间之后,现在我遇到了一个本质上非常“关系”的问题. 今天我看到的数据存储与以前完全不同.像Riak这样的事情已经让我失去了一种方式,我不能再容忍单点失败,“维持下去”等等.当然,(或者我希望),我还没有完全失去理智.这是一个个人项
在经历了几年的“NoSQL”空间之后,现在我遇到了一个本质上非常“关系”的问题.
今天我看到的数据存储与以前完全不同.像Riak这样的事情已经让我失去了一种方式,我不能再容忍单点失败,“维持下去”等等.当然,(或者我希望),我还没有完全失去理智.这是一个个人项目,并不完全(或尚未)具有极高的要求.

大多数分片解决方案都没有给我我想要的东西(至少在一瞥),可能是因为我的问题很容易解决.至少在概念层面上(忽略了RDBM本身带来的限制).

>我有少量的“共享”数据,可以自由复制.它没有硬一致性的要求.这可以存储在类似发电机的数据库中,并且可以无限扩展.但是如果可能的话,我仍然希望使用单个数据库.
>我有很多“每用户”数据.也就是说 – 许多用户,每个用户都拥有绝对合理的数据,非常适合存储在单个PostgreSQL节点上.我们最多谈论的是数千条记录.
>我从不需要查询跨用户,我不需要跨用户原子性.

这听起来非常容易实现.至少当我用“NoSQL眼睛”看着它时.

以下是我天真的创意想法:

>在极端情况下,我可以将整个用户序列化为Riak中的单个键/值.当然,几兆字节数据的持续de / serialization将会很慢,这就是我考虑使用PostgreSQL的原因.很多Riak K / V是不行的,因为我需要每个用户数据中的原子性/事务.
>我可以为每个用户使用SQLite数据库,并使用GlusterFS之类的东西来实现冗余/可用性.这可能是我要选择的解决方案,如果我使用PostgreSQL找不到同样好的东西.优点:可以很好地降低/提高规模;缺点:我更喜欢PostgreSQL的类型和严格性而不是SQLite

那么,我理想情况下会从PostgreSQL分片解决方案中请求:

>自动保存每个用户数据的多个副本(在不同的计算机上).能够为每个用户/分片动态切换主节点(如果先前的主节点发生故障).
>通过添加/删除服务器节点,能够动态地向上/向下扩展.大多数人都喜欢Riak.
>不要求我的应用程序知道要与哪些节点通信以及何时进行通信.

Postgres-XL正试图在2014年解决这个问题.他们直接针对PostgreSQL上的大数据,他们有来自Stado的开发人员.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读