23C新特性:True Cache的介绍

发布时间 2023-11-25 01:05:33作者: 认真就输

我们的文章会在微信公众号“Oracle恢复实录”和博客网站“https://www.cnblogs.com/www-htz-pw/” 同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

随着交流23C的客户越来越多,最近自己也在系统的学习23C的新特性。今天要分享的是23C中True Cache的功能,看似是一个非常不起眼的功能,但是此功能给大家带来的价值是非常大的,并且也跟引入TAC等功能一样,无法开发修改业务逻辑或者业务代码即可使用True Cache的功能。关于True cache的详细说明请直接阅读由此功能的产品经理写的博客内容,连接为:https://blogs.oracle.com/database/post/introducing-oracle-true-cache。

下面是通过GPT自动翻译为中文的版本,不想看英语的,可以看下面的中文的版本。

随着我们的数字领域不断发展,提供实时响应已变得至关重要。延迟已成为新的故障,客户对速度的期望飙升。对于组织来说,调整其应用架构以满足不断增长的用户需求至关重要。

随着数据量呈指数级增长,业务逻辑变得更加复杂,确保最佳服务性能和响应时间对于提供出色用户体验至关重要。在追求卓越性能的过程中,缓存成为一种常见的解决方案,特别是考虑到大多数业务场景涉及更多读取操作而非写入操作。缓存通过将经常访问的数据存储在临时位置/缓存中,有效地减少了对数据库的依赖,从而实现了更快速、更高效的数据检索。

随着公司的扩张和风险的上升,缓存从仅仅是方便转变为绝对的必要条件。对于一个追求竞争力的大型企业而言,曾经足够的东西如今变得不可或缺。失败是不容许的。

在这篇博客中,我们将深入探讨甲骨文即将发布的 23c 版本中一种创新的缓存解决方案,称为 True Cache。通过 True Cache,甲骨文提供了一种先进的缓存解决方案,旨在解决现代业务应用面临的挑战。在本博客中,我们将探讨甲骨文 True Cache 的特性和能力,以及它如何使组织能够优化性能、减轻数据陈旧问题,并有效地管理缓存数据。此外,我们将深入探讨在应用程序中使用 True Cache 的方法、它的用例以及在各种业务场景中 True Cache 的好处。加入我们,一同踏上探索 True Cache 以及它对您的应用程序具有变革潜力的启蒙之旅。

什么是 True Cache?

现代应用程序通常需要在连接数量和可以缓存的数据量方面实现大规模的可扩展性。

一个常见的方法是在数据库前面放置缓存。这些缓存依赖于这样一个事实,即应用程序通常不需要看到最新的数据。例如,当有人浏览航班预订系统时,系统可以显示一秒钟前的航班数据。当有人预订航班时,系统则显示最新的数据。

MxGc5E

Oracle True Cache通过仅使用其缓冲区缓存中的数据来满足查询。与Oracle Active Data Guard类似,True Cache是主数据库的全功能只读复制,只是它基本上是无磁盘的。

在高层次上,它的工作原理如下:

  • 应用程序通过Oracle JDBC驱动器手动或半自动地将查询定向到True Cache。
  • True Cache实例通过使用其为其处理的数据库应用程序服务缓存的数据来满足查询。
  • 当发生缓存未命中时,True Cache实例从主数据库实例中获取块。
  • 当True Cache实例首次启动时,除了在缓存未命中期间获取块之外,它还会以大块的形式获取周围的块以进行预热。
  • 缓存了块之后,通过来自主数据库的重做应用进行自动更新,通常具有次秒级的滞后。这类似于在Oracle Data Guard配置中实时应用重做的方式。主数据库的重做块通过主数据库实例上的LGWR进程以异步模式不断地发送到True Cache备用重做日志文件中。
  • 对True Cache的查询仅返回最新的提交数据,即与重做应用滞后一致的数据。
  • 对True Cache实例的每个查询始终返回一致的数据。

在应用程序中使用True Cache

应用程序通过以下方法之一决定是否查询True Cache或主数据库实例:

  • 在查询或更新数据之前,维护对True Cache配置的各个实例的多个物理连接,并在查询之前切换连接。

  • 仅维护对运行在主数据库实例上的数据库应用程序服务的一个逻辑连接,并让驱动程序处理相应主数据库和True Cache实例的底层物理连接。此方法仅适用于使用JDBC Thin驱动程序。开发人员可以在应用程序代码的某些部分手动将逻辑连接标记为只读。如果为数据库应用程序服务配置了True Cache实例,则Oracle JDBC驱动程序将自动将来自应用程序代码的只读部分的查询定向到其中一个True Cache实例。

    74vjTi

Oracle True Cache 提供以下优势:

提升应用性能

Oracle True Cache 通过卸载查询并减少对主数据库的请求,提高可伸缩性和应用响应时间,而无需重写应用程序。

自动化维护

Oracle True Cache 在多个实例中自动化缓存数据的维护,减少手动工作量,提高生产效率。

简化开发

开发人员通过维护对主数据库实例的单一逻辑连接,可以在主数据库和 True Cache 实例之间无缝切换,无需手动指定实例名称,从而提高应用程序的透明性和效率。

改善服务水平协议(SLA)

Oracle True Cache 通过集成瘦客户端和数据库简化应用程序架构,消除对额外中间层产品的需求。这种协同作用导致提升的服务水平协议(SLAs)和减少潜在错误,确保用户体验更为顺畅和高效。

实现成本节省

通过将缓存卸载到具有成本效益的通用硬件上,减轻数据库负载并减少与更昂贵硬件相关的潜在费用,实现成本节省。

使用案例

探索 Oracle True Cache 在各个领域的独特适用性,其中企业和应用程序追求特定要求:

用户会话存储: Oracle True Cache 存储短暂的会话数据,如用户配置文件和浏览历史,提供微秒级响应时间,优化实时推荐引擎的性能。
电子商务应用: 客户通过访问 Oracle True Cache 实例而不是后端数据库来检索在线产品目录的数据。这一过程提高了响应时间,并在销售高峰期(如黑色星期五、网络星期一和黄金时段电视交易)提升了客户体验。
在线游戏: Oracle True Cache 通过存储实时玩家数据,支持排行榜等功能,减少延迟并提升沉浸式游戏体验。
用户认证: Oracle True Cache 处理每天数百万次对用户配置文件的更新,实时验证应用程序用户。它还支持多个数据模型以本地存储不同类型的元素,降低了复杂性和成本。
实时分析: Oracle True Cache 可用于缓存数据并卸载数据库 I/O,以减轻运营负担、降低成本,并提高数据库和应用程序的性能。
边缘计算: Oracle True Cache 可部署在更接近用户或设备的地区,缩短从数据库收集、存储和检索数据所需的时间。
数据主权: Oracle True Cache 将读取卸载到部署在更接近最终用户或主权区域的实例中,加快分析响应时间并保持数据主权。

总的来说,Oracle True Cache 为现代数据领域提供了一个全面的解决方案。True Cache 充分利用了 Oracle 数据库的全部潜力,包括高级功能如索引、并行查询和压缩;对各种数据类型的支持,包括关系型、对象型、文档型(JSON/XML)、键值对、文本、图形和空间;以及对各种数据格式(行/列式)的支持。它消除了管理单独缓存层和失效的复杂性。通过优化延迟、个性化体验、简化操作,以及在一系列用例中提高性能——从电子商务到游戏,从金融运营到物联网管理——Oracle True Cache 势必重新塑造数据加速和传递,使企业能够满足当今数字领域不断增长的需求。

下面引入来至23年的00W中关于True Cache主题的一页PPT,这页PPT很好的总结了Oracle True Cache与原来传统的缓存的差异。

a7y3cA

Oracle 23C仍然在引领数据库的发展,并且还在23C中提出新的Oracle数据库愿景:

“让开发和运行
任何规模的任何应用和分析
都非常容易”

不管在23C引入的新的功能,还是说23C中提出的数据库愿景,其实都值得国产数据库厂商的借鉴。