TayzGrid - 内存数据网格

TayzGrid是一款适用于数据库缓存的内存数据网格。

TayzGrid技术架构

技术标准

TayzGrid遵循JCache API(JSR 107)标准,不用担心被TayzGrid方案锁定。

数据分析与处理

TayzGrid是一款高效缓存方案,支持线性扩展。同时提供了MapReduce编程框架,对分布在TayzGrid集群服务器中数据进行处理。

TayzGrid提供完全内存MapReduce、聚集处理和Entry Processor,比基于HDFS的Hadoop处理速度更快。

MapReduce,Aggregator和Entry Processor代码,都在TayzGrid服务器进程(InProc)中运行。

TayzGrid基于内存数据网格集群,所有数据以对象形式存在,代码可以在自己的堆空间以对象方式访问数据,无需进行序列化/反序列化。

MapReduce

MapReduce两个阶段:

第一阶段"Map"获取大量数据,将其("Maps it")转换为较小数据集,各项被分解成键值对。

public class ProductAnalysisMapper implements com.alachisoft.tayzgrid.runtime.mapreduce.Mapper {

  @Override
  public void map(Object ikey, Object ivalue, OutputMap omap) {
    // This line emits value count to the map.
    omap.emit(ivalue, 1);
  }
}

第二阶段"Reduce"将"Map"阶段输出作为输入,进一步将其缩减成更小数据集,输出被分解成键值对。

public class ProductAnalysisReducer implements com.alachisoft.tayzgrid.runtime.mapreduce.Reducer {

  public ProductAnalysisReducer(Object k) { /* ... */ }

  @Override
  public void reduce(Object iv) { /* ... */ }

  @Override
  public void finishReduce(KeyValuePair kvp) { /* ... */ }
}

TayzGrid Aggregator

Aggregator与TayzGrid的MapReduce框架一起使用,向用户提供统计数据。

Aggregator为MapReduce结果集提供累积功能。

Aggregator旨在产生有价值结果。

class IntAggregator implements Aggregator<Collection, Integer> {

  public IntAggregator(String function) { /* ... */ }

  @Override
  public int aggragate(Collection value) { /* ... */ }

  @Override
  public int aggragateAll(Collection value) { /* ... */ }

  private int caclculate(Collection value) { /* ... */ }
}

Entry Processor

Entry Processors是JCache(JSR 107)API规范一部分,TayzGrid遵循JCache标准,提供Entry Processor功能。

Entry Processors支持自定义代码,TayzGrid在内存数据网格集群所有节点上运行该代码。

Entry Processors在TayzGrid节点进程中运行,能充分利用TayzGrid数据。

public class CustomEntryProcessor<K, V, T>
    implements EntryProcessor<Object, Object, Object>, Serializable {
  @Override
  public T process(MutableEntry<Object, Object> me, Object... args)
      throws EntryProcessorException { /* ... */ }
}

特性

1、缓存数据库CRUD操作

2、批量执行CRUD操作 3、支持针对缓存中Item做锁定/解锁操作 4、支持Item级别的事件通知 5、Map/Reduce 6、JCache API 7、Evictions 8、支持绝对和相关过期时间设置 9、支持Session持久化方案 10、支持主从复制和分区缓存模式 11、支持memcached协议(使用插件无需改动任何代码) 12、为java程序定制的Memcached包装层,能快速与Memcached集成。 13、支持Hibernate二级缓存 14、支持Microsoft Azure、Amazon aws和主流的云服务器上运行。

下载

TayzGrid分企业版与开源版两种版本。

商业版本

商业版为永久许可,仅支付一次。