有没有人为memcache创建了关系数据库风格的前端?

时间:2010-02-08 19:30:49

标签: database web-applications memcached

我不确定我的问题是否完全清楚,所以让我潜入并给你一个很长的版本:

最近有人说,在讨论高容量Web应用程序时,“磁盘是新磁带”。网站管理员使用庞大的memcache服务器集群在客户端和服务器之间进行无磁盘I / O往返。为了实现这一点,应用程序开发人员必须将RDBMS视为通用数据存储,抛弃有价值的功能,如外键约束,检查约束以及级联更新和删除。

但是,如果你可以将你的memcache集群放在数据库接口的另一端,在应用软件领域(PHP,Ruby,Python ......)以及RDBMS内部呢?可以将其视为大型分布式内存数据库缓存。为了说清楚,我所说的是拥有可以将几乎整个数据库存储在内存中的memcache集群类型,从数据库读取时保证100%的缓存命中率,而不管SELECT语句的参数如何。然后,在编写应用程序代码时,您不仅可以忘记内存缓存,还可以开始像处理关系数据库管理系统一样处理数据存储,并按照RDBMS传统方式鼓励使用规范化和JOINS。

在保持/恢复RDBMS的数据完整性优势的同时,性能提升可能值得深入研究。

有没有人知道有人已经这样做的项目,也许作为一个开源项目,他们可能会修改开源RDBMS,如PostGRE或MySQL?我没有找到任何东西,我也不知道这些程序是如何构建的,或者是否有可能实现这样的存储引擎。

1 个答案:

答案 0 :(得分:0)

您应该查看CAP理论:

http://www.julianbrowne.com/article/viewer/brewers-cap-theorem

请记住,如果其中一个memcache服务器重新启动,您会有点恼火。即使您使用了所有内存缓存服务器,您仍然会受到网络速度的限制,然后可能会出现网络拥塞问题。

还有其他设备,如fusionIO卡和其他纯RAM硬盘也可以解决这个问题,例如hypersystem的ram磁盘。 Ooohh喔,。我希望我的公司可以负担得起这些......

-daniel