我们的文章会在微信公众号“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?

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

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

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实例。

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与原来传统的缓存的差异。

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

“让开发和运行

任何规模的任何应用和分析

都非常容易”

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

23C新特性:True Cache的介绍的更多相关文章

  1. java8新特性--Stream的基本介绍和使用

    什么是Stream? Stream是一个来自数据源的元素队列并可以进行聚合操作. 数据源:流的来源. 可以是集合,数组,I/O channel, 产生器generator 等 聚合操作:类似SQL语句 ...

  2. Python 3.8.0 正式版发布,新特性初体验 全面介绍

    Python 3.8.0 正式版发布,新特性初体验 北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PE ...

  3. 11G新特性 -- Result Cache

    共享池存放sql语句的解析和编译版本,以便数据库能快速执行频繁执行的sql语句和plsql. 在11g中,数据库使用result cache来存放sql和plsql的执行结果. result cach ...

  4. C#3.0新特性之扩展方法介绍

    C#3.0扩展方法是给现有类型添加一个方法.现在类型即可是基本数据类型(如int,String等),也可以是自己定义的类.以下是引用片段: //Demo--1 //扩展基本类型 namespace T ...

  5. 二十五、JDK1.5新特性---枚举

    与上篇文章介绍的相同,本文也是介绍jdk 1.5出现的新特性,本文将介绍枚举的相关用法. 在jdk 1.5 之前.Java可以有两种方式定义新类型:类和接口.对于大部分面向对象来说.这两种方法看起来似 ...

  6. 背水一战 Windows 10 (1) - C# 6.0 新特性

    [源码下载] 背水一战 Windows 10 (1) - C# 6.0 新特性 作者:webabcd 介绍背水一战 Windows 10 之 C# 6.0 新特性 介绍 C# 6.0 的新特性 示例1 ...

  7. 重新想象 Windows 8.1 Store Apps (85) - 警报通知(闹钟), Tile 的新特性

    [源码下载] 重新想象 Windows 8.1 Store Apps (85) - 警报通知(闹钟), Tile 的新特性 作者:webabcd 介绍重新想象 Windows 8.1 Store Ap ...

  8. 重新想象 Windows 8.1 Store Apps (91) - 后台任务的新特性: 下载和上传的新特性, 程序启动前预下载网络资源, 后台任务的其它新特性

    [源码下载] 重新想象 Windows 8.1 Store Apps (91) - 后台任务的新特性: 下载和上传的新特性, 程序启动前预下载网络资源, 后台任务的其它新特性 作者:webabcd 介 ...

  9. 返璞归真 asp.net mvc (13) - asp.net mvc 5.0 新特性

    [索引页][源码下载] 返璞归真 asp.net mvc (13) - asp.net mvc 5.0 新特性 作者:webabcd 介绍asp.net mvc 之 asp.net mvc 5.0 新 ...

  10. 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性

    [索引页][源码下载] 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性 作者:weba ...

随机推荐

  1. LeetCode 周赛上分之旅 # 37 多源 BFS 与连通性问题

    ️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越 ...

  2. 利用pytorch自定义CNN网络(三):构建CNN模型

    本文是利用pytorch自定义CNN网络系列的第三篇,主要介绍如何构建一个CNN网络,关于本系列的全文见这里. 笔者的运行设备与软件:CPU (AMD Ryzen 5 4600U) + pytorch ...

  3. [MAUI]在.NET MAUI中实现可拖拽排序列表

    .NET MAUI 中提供了拖放(drag-drop)手势识别器,允许用户通过拖动手势来移动控件.在这篇文章中,我们将学习如何使用拖放手势识别器来实现可拖拽排序列表.在本例中,列表中显示不同大小的磁贴 ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (82)-- 算法导论8.1 1题

    一.如果用go语言,在一棵比较排序算法的决策树中,一个叶结点可能的最小深度是多少? 文心一言: 在一个排序决策树(如二叉搜索树)中,每个叶节点的最小深度等于输入数据中最大元素与最小元素之间的位距离.这 ...

  5. .NET 操作 TDengine .NET ORM

    TDengine 是国内比较流的时序库之一,支持群集并且免费,在.NET中资料比较少,这篇文章主要介绍SqlSugar ORM来操作TDengine 优点: 1.SqlSugar支持ADO.NET操作 ...

  6. 快速了解C#接口(Interface)

    Runoob 接口定义了所有类继承接口时应遵循的语法合同.接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分. 接口定义了属性.方法和 ...

  7. Binary String Copying

    Smiling & Weeping ----第一次见你的时候, 在我的心里已经炸成了烟花, 需要用一生来打扫灰炉. 题目链接:Problem - C - Codeforces 题目大意不难,就 ...

  8. 如何保持 SSH 会话不中断?

    哈喽大家好,我是咸鱼 不知道小伙伴们有没有遇到过下面的情况: 使用终端(XShell.secureCRT 或 MobaXterm 等)登录 Linux 服务器之后如果有一段时间没有进行交互,SSH 会 ...

  9. 使用TorchLens可视化一个简单的神经网络

      TorchLens:可用于可视化任何PyTorch模型,一个包用于在一行代码中提取和映射PyTorch模型中每个张量运算的结果.TorchLens功能非常强大,如果能够熟练掌握,算是可视化PyTo ...

  10. 基于TOTP算法的Github两步验证2FA(双因子)机制Python3.10实现

    从今年(2023)三月份开始,Github开始强制用户开启两步验证2FA(双因子)登录验证,毫无疑问,是出于安全层面的考虑,毕竟Github账号一旦被盗,所有代码仓库都会毁于一旦,关于双因子登录的必要 ...