一文读懂Apache Geode缓存中间件( 四 )

  • 一致性一致性要求在事务中编写的数据必须遵守为受影响区域建立的键和值约束 。请注意,事务的有效性是应用程序的责任 。
  • 隔离隔离是事务状态对系统组件可见的级别 。Geode事务具有可重复的读隔离 。一旦为给定的键读取提交的值,它总是返回相同的值 。如果事务中的写操作删除了已读取的键的值,则后续的读操作将返回事务引用 。默认配置在流程线程级别隔离事务 。当一个事务正在进行时,它的更改只在运行该事务的线程中可见 。同一进程中的其他线程和其他进程中的线程在提交操作开始之前不能看到更改 。在开始提交之后,更改在缓存中是可见的,但是访问更改数据的其他线程可能会看到事务的部分结果,从而导致脏读 。但可以通过修改配置避免脏读 。
  • 持久性关系数据库通过使用磁盘存储进行恢复和事务日志记录来提供持久性 。Geode针对性能进行了优化,不支持事务的磁盘持久性 。
  • 3.2.2 Functions可以在Geode服务中注册一些函数 , 应用程序只需要发送函数的名称就可以执行函数内容 。
    3.2.3 连续查询这是一个类似于消息队列的机制 , Client向Server发布一个OQL查询,当Server执行了会导致这个OQL的查询结果发生变更的事件后,会将这个事件和新的结果通知给Client , Client可以基于此做一些特殊的操作 。比如我们在缓存中管理库存量,发布一个连续查询 "SELECT * FROM /stock s WHERE s.stock_num + +s.purchase_num < 100",当这个查询收到值时,就向采购领域发布采购预警事件 。
    3.2.4 异构Geode提供了多种序列化方式 , 当想要在异构的系统中使用Geode时,可以不使用Java的序列化,而是其它更通用的序列化方式,如PDX或DataSerializer,PDX可以不用反序列化整个数据对象,就读到其中的字段的值,还能兼容多版本的对象;DataSerializable则提供了更快速的序列化 。

    推荐阅读