Oracle Coherence Note

现在在熟悉Oracle Coherence缓存服务器的配置以及使用和运行机制,已经看过大半发现还是每天把看完的东西总结一下还能加强对这些东西的印象,所以还是记下来吧。


集群数据管理
Coherence的核心是集群数据管理,数据完整一致,single system image(SSI)(其实不知道这是什么意思),读写访问的可扩展性,快速透明的故障转移,故障恢复,线性的存储和处理的扩展,No Single-Points-of-Failure (SPOFs) (不知其意),集群范围内的锁和事务机制。
这些功能是基于基础的各种Coherence提供的服务,包括数据库缓存,HTTP会话管理,网格代理调用(grid agent invocation)和分布式请求。


逻辑层提供单一的API,物理层基于XML配置
Coherence支持许多集群数据管理的拓扑。每个拓扑都在性能和容错能力上做些取舍。通过使用单一的API,拓扑的选择可以推迟到部署阶段,这可以允许开发者工作在统一的Coherence逻辑试图上,在调优或应用的改变提供灵活性。


缓存策略
Coherence 提供几种缓存的实现:
本地缓存 用在非集群环境中的本地内存堆上的缓存
Replicated Cache 适用于小的大量的读
Distributed Cache 线性的读写扩展,数据自动,动态,透明的分布在不同的节点上。拆分算法减少网络流量,通过增量移动数据阻止服务的暂停
Near Cache 提供本地缓存的性能以及分布式缓存的扩展性。几个不同的near-cache策略在性能和同步保证需要做取舍。


数据存储选择
on-heap 最高效的选择,但是影响JVM垃圾回收时间
NIO RAM 不占用JVM垃圾回收时间,确实消耗在用序列化/反序列化时间
NIO Disk    和NIO RAM相同,但使用内存映射文件
File-Based  使用特殊的磁盘优化系统优化速度和减少I/O


序列化选择
POF Portable Object Format  是一个语言不可知的二进制格式,POF在空间时间上都很高效
java.io.Serializable    最简单,最慢的选择
java.io.Externalizable  需要手动实现序列化操作,但是可以显著提高性能。
com.tangosol.io.ExternalizableLite 和上一个差不多,但是通过更高效的IO流的实现提供更好的性能和更少的内存使用
com.tangosol.run.xml.XmlBean    默认的ExternalizableLite实现


命名空间层次
Coherence通过服务的集合组成起来。根服务就是Cluster服务,Cluster服务是Coherence实例集合(一个JVM一个实例,每个电脑可以有多个JVM)。集群通过多播地址和端口组成,TTL(time-to-live)可以限定集群到一台电脑,或者电脑附加在唯一的开关上。
在Cluster之下有各种各样的服务组成了API,包括各种缓存服务(Replicated, Distributed)和调用服务(Invocation Service)(为把代理部署在集群的各种节点上)。每个服务的实例有其名称和一个默认的服务实例
缓存服务包含命名的缓存(named cache)(com.tangosol.net.NamedCache),和数据库表类似包含相关对象的集合。

16/10/2013





你可能感兴趣的:(Oracle Coherence Note)