资讯专栏INFORMATION COLUMN

Apache Ignite——新一代数据库缓存系统

xingpingz / 1956人阅读

摘要:近日,在上撰文,为大家介绍了新一代数据库缓存系统,由工程师编译。还提供了一种叫做的数据库异步更新模式。此外,可选地将数据同步到缓存层同样是一大优势。最后,可以支持任何底层数据库存储同样让成为数据库缓存的首先。

【编者按】飞速增长的数据需要大量存储,对这些数据的管理也不是一件容易的事。但相比于存储和管理,如何处理数据才是开发人员真正的挑战。对于TB级别数据的存储和处理通常会让开发人员陷入速度、可扩展性和开销的矛盾困境中。近日,Dmitriy Setrakyan 在 Dzone 上撰文,为大家介绍了新一代数据库缓存系统 Apache Ignite,由 OneAPM 工程师编译。

以下为译文

将数据存储在缓存中能够显著地提高应用的速度,因为缓存能够降低数据在应用和数据库中的传输频率。Apache Ignite 允许用户将常用的热数据储存在内存中,它支持分片和复制两种方式,让开发者可以均匀地将数据分布式到整个集群的主机上。同时,Ignite 还支撑任何底层存储平台,不管是 RDBMS、NoSQL,又或是 HDFS。

在集群配置好之后,数据集增加只需在 Ignite 集群中增加节点而不需要重启整个集群。节点数目可以无限增加,所以 Ignite 的扩展性是无穷的。在 Ignite 的配置上有下面这几个选项可供选择:

Write-Through 和 Read-Through

在 Write-Through 模式中,缓存中的数据更新会被同步更新到数据库中。 Read-Through 则是指请求的数据在缓存中不可用时,会自动从数据库中拉取。

Write-Behind Caching

Ignite 还提供了一种叫做 Write-Behind Caching 的数据库异步更新模式。默认情况下, Write-Through 中每一次更新都会对数据库发起一次请求。如果使用 Write-Behind Caching 后写,对缓存的更新会整合成批次然后再发送给数据库。这对改删频繁的应用来说可以达到相当的性能提升。

自动化持久数据

Ignite 提供了易用的 schema 映射工具,从而系统可以自动地与数据库整合。这一工具可以自动地连接数据库,并生成所有需要的 XML OR-mapping 配置以及 Java 域模型 POJOs。

SQL 查询

查询 Ignite 缓存很简单,使用的就是标准的 SQL。Ignite 支持所有的 SQL 函数、聚合和 group 操作,甚至支持分布式 SQL JOINs。下面 Ignite 中一个 SQL 查询示例:

IgniteCache cache = ignite.cache("mycache");
// ‘Select’ query to concatenate the first and last name of all persons.
SqlFieldsQuery sql = new SqlFieldsQuery(
"select concat(firstName, " ", lastName) from Person");
// Execute the query on Ignite cache and print the result.
try (QueryCursor> cursor = cache.query(sql)) {
for (List row : cursor)
System.out.println("Full name: " + row.get(0));
}

小结

Apache Ignite 是一个聚焦分布式内存计算的开源项目,它在内存中储存数据,并分布在多个节点上以提供快速数据访问。此外,可选地将数据同步到缓存层同样是一大优势。最后,可以支持任何底层数据库存储同样让 Ignite 成为数据库缓存的首先。

想要了解更多信息、文档、示例,请移步 Apache Ignite 官网。

原文链接:Apache Ignite for Database Caching

OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。想阅读更多技术文章,请访问 OneAPM 官方博客

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/17494.html

相关文章

  • Vert.x入坑须知(2)

    摘要:这一点其实是非常不妥的,有潜在的安全问题。这次,在项目中终于采用了以它为基础的集群方案。相反,使用一个周期,但针对每个生成一个一次性的,模拟随机发送。同时,要记得用完之后立即释放。 当初创建简书账号的时候曾立下宏愿,希望保持周更,无奈现实残酷,整个5月都处于忙忙碌碌的状态,居然令这个本来并不算太宏伟的目标难以为继,最终导致5月份交了白卷!【好吧,我承认,是我意志不够坚定,太懒了,;)】...

    xialong 评论0 收藏0
  • 缓存架构的理论分析

    摘要:但实际情况是缓存是大型网站的标配。以上分析告诉我们缓存架构要满足冷热分离的特征不满足,因为冷数据可能挤走热数据。另外,众所周知,缓存架构还要满足读写分离的特征也不满足,因为写操作会争抢读操作的资源。这种风格需要缓存系统的支持。 问题背景 略谈服务端缓存设计 一文说到缓存不是必须的,因为数据库本身就利用了内存。但实际情况是缓存是大型网站的标配。 虽然经验显示RDBMS最快时只需0~1ms...

    jeffrey_up 评论0 收藏0
  • 缓存架构的理论分析

    摘要:但实际情况是缓存是大型网站的标配。以上分析告诉我们缓存架构要满足冷热分离的特征不满足,因为冷数据可能挤走热数据。另外,众所周知,缓存架构还要满足读写分离的特征也不满足,因为写操作会争抢读操作的资源。这种风格需要缓存系统的支持。 问题背景 略谈服务端缓存设计 一文说到缓存不是必须的,因为数据库本身就利用了内存。但实际情况是缓存是大型网站的标配。 虽然经验显示RDBMS最快时只需0~1ms...

    APICloud 评论0 收藏0

发表评论

0条评论

xingpingz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<