暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

Oracle 23c True Cache的启示

白鳝的洞穴 2023-10-19
2058
因为信创的原因,今年Oracle 23C的发布在国内似乎比较寂静,讨论 Oracle 新功能的文章也比较少。 昨天我发了一篇关于Oracle的文章,下午就有朋友和我打趣说:“都什么时代了,你还在关注Oracle啊!”。说实在的,作为数据库产业圈子里的人,哪怕今后不怎么用Oracle了,也不能放弃关注Oracle。国产数据库想要发展得好,不能关起门来闭门造车,向最强的竞争对手学习,了解 Oracle 都在哪个方向上发力, 才能让自己进步得更快。我个人有个感觉,当我们离 Oracle 越来越远的时候,Oracle 似乎也在更快速地变得更好。
         
今天下午一个国产数据库厂家的朋友给我转发了一篇关于Oracle 23c分布式数据库的文章。他看了以后觉得在分布式数据库上 Oracle 似乎一下子变得很强大了,因此他有点怀疑这篇文章所述内容的真实性。
         
我在网上搜索了一下,转发了Oracle  官方关于 Globally Distributed Database的文档给他。他看了以后,确认了 Oracle的这个Globally Distributed Database 确实是很牛逼的。Oracle的深厚的技术积累和厚重的财力让它在很多后发领域里都可以很快的追赶上来。我记得2016年参加Oracle CAB的时候,Oracle Sharding Database土得让Andy都觉得不大好意思多说,没想到几年过去,一个颠覆性的分布式Oracle数据库就再次出现在我们面前了。
         
除了Globally Distributed Database,Oracle True Cache是一个没有被大家过多关注的新功能。我觉得这也应该是 Oracle 23C 里的一个重量级功能,可以比较简便地在大多数用户高性能低延时应用中满足他们的部分需求。

这个功能与Oracle的Heatwave有异曲同工之妙。True Cache是Oracle主库的一个只读内存强一致性缓冲副本,可以是完整的,也可以是部分的。Oracle数据库中有一部分数据需要被缓冲到内存中,经常性被读取访问。这些数据会被复制到一个强一致性的内存实例中,并直接被用户的 SQL 透明访问, 这就是True Cache。True Cache 的出现可以让一些用户的 Redis 访问被更便捷的 SQL 访问所替代,也让一些想用 Redis 而怕更改应用体系架构的用户得到了解放,在不用改变使用习惯的前提下,他们也能享受内存数据库访问数据的低延时。
         
Oracle提供了True Cache技术后,又为应用开发提供了极其便利的使用手段。通过Oracle 23C的 JDBC引擎经过配置后,JDBC驱动程序可以在主数据库和True Cache实例上自适应访问数据,应用程序仅维护一个逻辑连接, 它同时识别主数据库和 True Cache 实例。如果JDBC驱动成熟处于只读模式,查询可以在 True Cache 实例上执行,否则查询在主数据库上执行。
读写分离是横向扩展数据库能力的十分常用的方法,而以前我们采用的方法大多数是主从数据库,因为怕复制的延时问题,因此往往采用异步复制的方式。异步复制场景下,因为数据一致性问题,导致应用处理起来十分麻烦,这也限制了此类应用场景的发展。而实际上需要做读写分离的场景完全不需要全量复制整个数据库。Oracle True Cache的只读数据是在内存中的,可以提供更高的访问性能,同时也可以减少同步复制的延时。而通过JDBC引擎等实现统一访问,也大大降低了应用适配的难度。
         
今天一大早就要出差,当天做个北京往返,因此今天就简单的写一点吧。实际上23C的新特性给我的感触很深,我觉得国产数据库厂商的朋友们很有必要认真研究一下。

文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论