生态系统:Apache Ignite

来自 PostgreSQL Wiki
跳转至导航跳转至搜索

测试过程

以下为结合使用 Apache Ignite 和 PostgreSQL 的方法。

  1. Ignite 通过 JDBC 将驻留内存的缓存对象持久化到 PostgreSQL(CachedJdbcBlobStore 和 CachedJdbcPojoStore)
  2. Ignite 不会直接与 PostgreSQL 交互,而是用作 Hibernate ORM 的二级缓存
  3. Ignite 充当 memcached 的替代品,而 PostgreSQL 服务器通过 pgmemcache 扩展处理缓存数据

此处显示其作为 memcached 替代品的使用方式。首先,下载并解压 Apache Ignite 二进制分发包。

然后启动 Ignite 服务器。Ignite 服务器开始在端口 11211 接受 memcached 二进制协议。

$ cd ${Ignite_home_dir} $ bin/ignite.sh examples/config/example-cache.xml 

按照 ${pgmemcache_dir}/README.rst 中所述安装 pgmemcache 扩展。启动 PostgreSQL 服务器。

要运行 pgmemcache 回归测试,请将 ${pgmemcache_dir}/test.sql 第一行中的端口号更改为 11211,如下所示

SELECT memcache_server_add('localhost:11211'); 

运行测试。

$ psql -f test.sql postgres 

但使用 memcache_incr()/memcache_decr() 对整数值执行增量/减量操作似乎无效。如果您尝试对先前由 memcache_add()/memcache_set() 缓存的对象执行增量/减量操作,该函数调用会报告一条警告消息并返回 -1。但是对 memcache_incr()/memcache_decr() 后续的调用会创建一个新的缓存条目并对该条目的值执行增量/减量操作。这可能是由于 Ignite 的某个缺陷,因为 pgmemcache 可与 memcached 本身正常配合使用。