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

    事务定义 就是将一组SQL语句放在同一批次内去执行 如果一个sql语句出错,则改批次内的所有sql都将被取消执行 (1)原子性 一个事务要么全部提交成功,要么全部失败回滚,不能只执行其中的一部分操作, ...

  2. 状压DP-学习笔记

    状压DP 状压 \(DP\) 是一种基于二进制数的 \(DP\). T1 题目大意 将一个整数 \(N\) 分解成若干个小整数的乘积,满足: 分解出的整数必须来自集合 \(S\). 分解出的整数必须互 ...

  3. SpringBoot3集成Redis

    目录 一.简介 二.工程搭建 1.工程结构 2.依赖管理 3.Redis配置 三.Redis用法 1.环境搭建 2.数据类型 3.加锁机制 四.Mybatis缓存 1.基础配置 2.自定义实现 五.参 ...

  4. 【路由器】OpenWrt 配置使用

    目录 Web 界面 汉化 root 密码 ssh 升级 LuCI 美化 锐捷认证 MentoHUST MiniEAP 防火墙 开放端口 端口转发 IPv6 USB 安装 USB 驱动 自动挂载 Ext ...

  5. vue~封装一个文本框添加与删除的组件

    标签组件的效果如下 组件作用 这是一个div,包含了两个文本框,后面是添加和删除按钮 添加按钮复制出新的div,除了文本框没有内容,其它都上面一样 删除按钮将当前行div删除 组件实现 <tem ...

  6. SSM(Spring+SpringMVC+MyBatis)框架集成

    引言 进行SSM(Spring+SpringMVC+MyBatis)集成的主要原因是为了提高开发效率和代码可维护性.SSM是一套非常流行的Java Web开发框架,它集成了Spring框架.Sprin ...

  7. 如何配置.h头文件include“”相对路径

    编译工程时,找的是当前main.c文件下的.h文件,如果当前路径下没有就会报错,当前路径用.\表示,上一级目录用..\表示. 如果你的main.h文件在main.c的上一级目录中Include 文件夹 ...

  8. c语言代码练习14

    //设计一个猜数字游戏,需要提示猜大了还是小了,直到猜对为止 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include & ...

  9. Linux系列教程——Linux发展介绍、Linux系统安装、查看Linux内核版本和系统版本、Centos7安装jdk1.8

    文章目录 1 Linux发展介绍 零 什么是Linux 一 Linux前身 二 Linux诞生 三 开源文化 四 Linux系统特点 五 Linux分支 2 Linux系统安装 Linux虚拟机安装 ...

  10. es针对nested类型数据无法进行过滤查询的问题记录

    问题描述 es中存在有一个名为task_data_1的索引,其字段映射关系如下所示: { "task_data_1" : { "mappings" : { &q ...