关于内存计算的事情
到目前为止,内存仍然是我们当前可以使用的最快的存储设备。尽可能将数据放入内存已成为各种应用程序提高数据访问性能的最有效方法。对于许多关键业务系统,内存是一种大小非常有限的“易失”存储设备。如何在确保性能的同时使数据持久化?如何将有限的内存放入要处理的无限数据中以上是程序设计的主要主题。
Oracle的内存TImesTen内存为具有高并发,低延迟和高可用性要求的关键业务系统提供了近乎完美的解决方案:将数据放入内存中,使用SQL简化开发,应用程序开发人员可以更加专注无需担心基础内存分配的业务实融和其他行业中广泛使用了20多年。
基于内存的计算的另一个问题一直困扰着行业内有限的内存和相对无限的数据:单台服务器的内存不足以存储需要处理的数据,频繁的内存交换会消耗掉太多的资源,用户不得不使用手动的子方法将数据分散到多个服务器上进行处理,这带来了许多问题,例如管理,开发复杂性和可伸缩性差。
随着技术的发展,分布式内存网格技术也开始被用来加快数据访问的速度,例如Redis,Oracle Coherence等。分布式内存网格技术采用键值内存数据存储方法来实现。方便地将磁盘的数据分发到群集系统的各个节点以进行缓存,并为简单的数据查询和事务处理提供高性能。但是这种技术的问题是:强大的数据一致性,数据持久性,复杂的报表和统计信息,大型并发事务处理等。
分布式关系内存-理想内存
对于具有高并发性和实时响应要求的关键业务系统,分布式关系是最理想的选择:它具有关系数据ACID的特性,可以处理大量并发用户请求,并且可以响应业务数据实时访问请求,并具有完整的备份恢复和灾难恢复机制。同时,就像NoSQL的内存网格技术一样,可以将需要处理的数据分发到群集中的所有节点,并且可以根据需要扩展群集。数据处理节点。今年5月初,Oracle分布式内存-这种理想的,集成的内存计算,分布式处理和关系的分布式内存终于在市场上正式推出。
TImesTen 1 8. 1横向扩展的功能
Oracle的分布式内存是使用TimesTen内核构建的,该内核已有20多年的历史了。官方发行版本称为TimesTen 1 8. 1 Scaleout。版本号表示2018年的第一个主要版本。
首先,TimesTen 1 8. 1 Scaleout在严格意义上是一个关系;它具有与Oracle相同的ACID功能,例如:事务原子性和持久性,事务提交和回滚,基于版本的并发控制,读取和写入操作不会相互阻塞等等。
第二,作为分布式内存,它是逻辑上单一且物理上分散的分布式内存。 TimesTen 1 8. 1 Scaleout中的数据已分发并存储在集群的每个节点中,应用程序是从任何位置访问都可以访问所有数据的,并且应用程序不需要知道数据在哪里被储存了。这也与市场上分散的不同。这种设计大大简化了应用程序开发和管理的难度。

TimesTen横向扩展的几个基本概念
一组运行Oracle TimesTen Scaleout的内部互连服务器称为网格。运行的TimesTen Scaleout代码称为实例。 TimesTen Scaleout实例分为数据实例和管理实例,数据实例的概念与Oracle实例非常相似,它包括数据缓存和后台进程。

每个TimesTen Scaleout数据实例都包含一个我们称为Element的最小数据持久性单位。元素具有整个中的部分数据,并且具有该中完整的用户信息和模式信息;每个元素都有自己的持久性检查点文件和事务日志文件,元素可以使用副本来实现高可用性和容灾能力。
在集群中,通常将1个或2个管理实例配置为跟踪和监视整个集群的运行状态。

数据如何分布
那么如何将所有数据分配给每个元素?一般来说,有以下几种方法:
分发
基于一致的哈希算法分布,通常用于大型表,例如:基于Cust_ID的哈希值,例如,我们可以使用以下语句将CUSTOMER表中的行分布到所有元素:
CREATETABLECUSTOMER(
IDNUMBERNOTNULLPRIMARYKEY,
NAMEVARCHAR2(10 0),
...
)DISTRIBUTEBYHASH;

参考
与子表和父表关联的行共存于同一元素中,并且优化了本地事务以将与CUSTOMER关联的行存储在同一元素的ORDERS表中。

DUPLICATE
面向查询的小表在每个元素中存储完整的数据,以优化本地事务。例如,PRODUCT表存储在所有元素中,具有完整的数据量。这种情况适用于相对较小的表,这些表不会在同一时间频繁更改

实现高可用性

如前所述,TimesTen 1 8. 1横向扩展通过Element的多个副本实现了高可用性。这种机制称为K安全(K> 1),请参见下图:

一个完整的数据集称为数据空间,其中包含该的所有元素。上图中的数据空间组1中包含的元素1和元素3构成了一个完整的。具有相同元素的集合称为副本集,它们是彼此的副本。例如,上图中的副本集1中包含的元素1和元素2位于不同的计算机上,以实现较高的数据可用性。
互相复制的元素是主动-主动的,这意味着应用程序可以对任何元素发起读写事务操作,而不会互相影响。系统负责这两个元素的数据同步。
在这种体系结构下,即使发生多个Element异常,只要有完整的可用副本集,就不会对应用程序产生影响。如果整个副本集异常,则应用程序还可以选择接受仅返回剩余数据的结果集。
集中的安装和管理
TimesTen 1 8. 1横向扩展的管理操作都可以通过带有图形界面的主机或通过访问点的命令行来完成,以完成集群中的所有操作,包括:
软件安装
补丁程序
配置管理
创建和管理
监视
备份和恢复
日志收集
几种Oracle内存缓存技术的比较
随着TimesTen 1 8. 1 Scaleout的推出,Oracle进一步改善了实时内存数据处理难题。传统的面向OLTP的TimesTen也已升级为1 8. 1。该版本称为TimesTen 1 8. 1 Classic。让我们看一下它们的使用场景之间的区别:
1. TimesTen1 8. 1 Classic


使用场景:用于实时,准实时OLTP系统加速。如果TimesTen1 8. 1 Classic的机器内存足以存储要处理的数据,TimesTen 1 8. 1 Classic可以提供更高的实时数据处理。
部署:使用CacheGroup或其他方法将数据与Oracle同步,它可以单独运行或作为Oracle的缓冲区运行。
2. TimesTen 1 8. 1横向扩展

使用场景:分布式,容错,可弹性伸缩的关系内存,用于基于高并发,低延迟,基于OLTP的关键业务系统;单机内存无法存储所有需要实时处理的数据,因此必须存储在手动子库的场景中。
部署:使用服务器群集部署。
3. Oracle内存选项

使用场景:Oracle1 2. 1. 02引入的数据列存储技术主要用于加快数据分析和报告的速度。
部署:用户可以将基于列的内存存储选项添加到需要在中进行分析和报告的表。当启动或第一次查询该表时,数据将以列或列格式压缩。缓存在Oracle的SGA区域的In Memory区域中:优化器将自动优化SQL访问路径,从而允许需要访问列内存数据的SQL从In Memory区域中获取数据。
4. Oracle Coherence

使用场景:Oracle Coherence是一种分布式内存网格技术,通常用于加速中间层数据访问。
部署:数据以键值的形式存储在内存中,并使用RESTAPI进行访问。
摘要
在大数据和云时代,有很多处理实时数据的方法。 Oracle提供了各种内存技术产品和技术来加快数据访问和处理的速度。这次,TimesTen 1 8. 1 Scaleout的发布得到了进一步改进,它是一个Oracle内存计算产品系列,它继承了经过时间考验的TimesTen内存的核心,并吸收了No的一些设计概念。 SQL,并将应用于对实时数据处理有很高要求的许多关键业务系统。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-365120-1.html
q气死人啦
要不是中国大陆你们都不知道被美帝国等其他西方国家轮奸多少次了