报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

数据库新闻汇总:ActiveRecord 数据分片,更快的 Postgres IO

  • 2008-07-23
  • 本文字数:712 字

    阅读完需:约 2 分钟

本次数据库新闻汇总有,FiveRun 最近开源的 ActiveRecord 数据分片插件 DataFabric;如何用 Postgres 异步客户端 API 和 Ruby 1.9 的 Fibers 来加速 Postgres 数据访问。

ActiveRecord 的数据分片

数据分片(Sharding)是一种将数据库打散成小块,然后分布到多台服务器上的技术,可以提高性能和可伸缩性。数据如何分割在很大程度上取决于应用的具体情况,比如 eBay 可以按照商品类别来划分。

ActiveRecord 本身并不支持数据分片,于是才有了 FiveRuns 的 DataFabric 。DataFabric 是一个 ActiveRecord 插件,它为数据模型增加了数据分片和复制的能力。

在模型中加入分片相当简单,它在 README 里给出了这样的例子:

<pre id="ga9a11">class MyHugeVolumeOfDataModel < ActiveRecord::Base<p>  data_fabric :replicated => true, :shard_by => :city</p><p>end </p>详细信息请参阅 FiveRuns 博客或者 DataFabric GitHub 仓库

更快的 Postgres IO

另一则数据库新闻是 Muhammed Ali 将 Ruby 的 Postgres 访问速度提高了约 40%。他用 Postgres 的异步客户端 API 和 Ruby 1.9 Fibers 实现了一个非阻塞的连接池和 fiber 池。从用户程序的角度看,交互过程是这样的:

[……] 当一个 fiber 调用 cpool.exec,查询被送到池中处理,该 fiber 被挂起,让路给 其他 fiber。 其他 fiber 到达 cpool.exec 的时候也同样会挂起。稍后你会在事件循环中收到查询结束的通知(但顺序不定),然后与已结束查询相关联的 fiber 将恢复执行。

Muhammed 还打算将之与 EventMachine 做更好的集成,也许能更进一步提升速度。请参阅 Muhammad 的博客,他将在上面给出代码的介绍和分析详情。

查看英文原文: Databases Roundup: Data Sharding for ActiveRecord and Faster Postgres IO

2008-07-23 01:16984
用户头像

发布了 225 篇内容, 共 67.2 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

ARTS打卡week#1

对方正在输入…

ARTS 打卡计划

LeetCode | 1. Two Sum 两数之和

Puran

Python C# 算法 LeetCode arts

【vue-openlayers】弹窗

德育处主任

html Vue 大前端 openlayers ol

Java 最新的JDK14.0.1调试成功

程李文华

谈谈控制感(13):为什么是旁观者清?

史方远

读书笔记 个人成长 心理学 随笔杂谈

工作的创新能力

punkboy

产品 重新理解创业 产品经理 创新突破 创新

微信小程序开发 | 如何在小程序中使用自定义 icon 图标

彭宏豪95

微信小程序 学习 编程 大前端 IT

【译】5 个你需要知道的 JavaScript 小技巧

零和幺

Java 大前端 技巧

centos7分区命令parted的用法(大于2T)

唯爱

ARTS 01 - 技术人的理想主义

jerry.mei

算法 Vue 练习 ARTS 打卡计划 ARTS活动

【大厂面试02期】Redis过期key是怎么样清理的?

NotFound9

Java 数据库 redis 架构 后端

同一浏览器只允许登录一个账号

AR7

Vue 大前端

路漫漫其修远兮

无心水

洞悉MySQL底层架构:游走在缓冲与磁盘之间

帅旋

MySQL 数据库 MVCC

【Sentry搭建之 docker-compose】

卓丁

DevOps Docker-compose CI/CD sentry

深入理解JVM内存管理 - 堆和栈

Skye

堆栈 深入理解JVM VM参数

架构演变之路:为何要搞微服务架构?

帅旋

Kubernetes 微服务 dubbo SpringCloud

带你学够浪:Go语言基础系列 - 8分钟学控制流语句

程序员柠檬

后台开发 Go 语言

重学 Java 设计模式:实战适配器模式

小傅哥

设计模式 小傅哥 重构 代码质量 代码坏味道

游戏夜读 | 如何管理公司?

game1night

程序员的晚餐 | 6 月 2 日 红烧鸡爪的味道

清远

美食

有的线程它死了,于是它变成一道面试题。

why技术

源码分析 面试 jdk源码 线程池

什么时候去面试

escray

程序员都惧怕的故障域

松花皮蛋me

Java 问题处理

LeetCode | 2. Reverse Integer 整数反转

Puran

Python C# 算法 LeetCode arts

SpringBatch系列入门之Tasklet

稻草鸟人

spring SpringBatch 批处理

一文入门JVM虚拟机

Simon郎

深入理解JVM

分布式事务 - 理论模型

Java收录阁

分布式事务

坚持ARTS-week2

王钰淇

ARTS 打卡计划

初识 LeetCode

Puran

LeetCode arts

Java 走过的创新25年

田晓旭

Java25周年

数据库新闻汇总:ActiveRecord数据分片,更快的Postgres IO_Ruby_Mirko Stocker_InfoQ精选文章