内存计算
文章平均质量分 76
关注大数据内存计算领域,涉及内存计算框架、内存数据库、内存数据/计算网格等方面,解决海量数据的实时计算、分析问题。
cdai
这个作者很懒,什么都没留下…
展开
-
Hazelcast源码剖析之Eviction
在使用Hazelcast的Eviction时,发现观察到的现象与想象的不同。按照官方文档介绍,Eviction有这样几个配置选项:<hazelcast> <map name="default"> ... <time-to-live-seconds>0</time-to-live-seconds> <max-idle-seconds>0</max-idle-seconds> <eviction-policy>LRU</eviction-policy> <max-s原创 2015-03-07 18:35:43 · 3719 阅读 · 0 评论 -
Redis集群功能预览
目前Redis Cluster仍处于Beta版本,Redis 3.0将会加入,在此可以先对其主要功能和原理进行一个预览。参考《Redis Cluster - a pragmatic approach to distribution》。1 没有集群的Redis没有集群功能的Redis,每个master-slave主从复制都独立于其他结点,sharding需要在客户端如Jedis中控制。可以使用官方提原创 2015-02-28 22:50:21 · 9180 阅读 · 0 评论 -
高性能的Redis代理TwemProxy
TwemProxy是一个Redis的中间件代理,具有很多有用的功能,可以暂时替代一部分Redis Cluster的功能:² 支持失败节点自动删除² 可以设置重新连接该节点的时间² 可以设置连接多少次之后删除该节点² 该方式适合作为cache存储² 支持设置HashTag² 通过HashTag可以自己设定将两个KEY hash到同一个实例上去。² 减少与redis的直接连接数² 保持原创 2015-02-28 22:42:42 · 4432 阅读 · 0 评论 -
IMDG产品功能扩展
开源IMDG通常都提供了SPI或其他接口,供用户自行扩展。以Hazelcast为例,我们可以用一些好玩的小工具增强其查询、Map和后端持久化的功能。这些小工具虽然看起来很小,但功能也非常强大。SQL查询JoSQL非常简单易用,只需几步就可以在普通Java对象上实现SQL查询功能,而且对标准SQL支持的还很全面呢。同时也提供了接口,我们可以自定义想要的SQL函数。 它与Hazelcast的集成方法非原创 2015-01-17 10:11:28 · 2858 阅读 · 0 评论 -
Redis中的关系查询
本文对Redis如何保存关系型数据,以及如何对其匹配、范围、模糊查询进行举例讲解,其中模糊查询功能基于最新的2.8.9以后版本。1 关系型数据的存储以Staff对象为例,在关系型数据库或类似GridGain的内存网格产品中(底层使用H2数据库的内存模式存储),我们以表形式保存对象的数据。因为内存网格是基于对象做缓存的,所以还要额外多出一列(Staff列)保存整个对象的编码,例如序列化后的二进制或者原创 2015-01-16 21:35:28 · 47322 阅读 · 6 评论 -
开源IMDG之GridGain
作为另一款主流的开源数据网格产品,GridGain是Hazelcast的强有力竞争者。同样提供了社区版和商业版,近日GridGain的开源版本已经进入Apache孵化器项目Ignite(一款开源的内存计算(In-Memory Computing)IMC中间件),目前Apache正在迁移GridGain开源版本的代码到Ignite项目。鉴于经过之前Hazelcast的介绍已经对数据网格产品有了一定了原创 2015-01-11 20:56:10 · 8404 阅读 · 5 评论 -
P2P系统,一致性哈希和DHT
数据网格产品经常会使用P2P进行通信,借此机会系统地学习一下P2P网络和其资源搜索策略。1 P2P网络架构谈到P2P就涉及到一个概念:Overlay Network(覆盖网络)。所谓覆盖网络是应用层网络,几乎不考虑网络层和物理层,它具体指的就是建立在另一个网络上的网络。例如P2P网络就是覆盖网络,因为它运行在互联网之前,但允许对未知IP主机的访问。通过DHT等算法,可以在事先不知道IP地址的情况下原创 2015-01-11 17:24:14 · 10654 阅读 · 5 评论 -
Hibernate缓存集成IMDG
1 第三方缓存插件除了Ehcache这种轻量级的缓存方案外,几乎所有IMDG产品都提供了对Hibernate二级缓存的直接支持,常用的有:Ø HazelcastØ GridGainØ JBoss InfinispanØ Terracotta(额外提供了直接替换Session对象的集成方式)2 缓存工作过程下面以JVM集群Terracotta为例,首先从最原始的JDBC到Hibernate到原创 2015-01-11 16:58:18 · 2389 阅读 · 0 评论 -
内存计算技术资料整理
先来看一下一张技术的全景图,其中涉及内存计算的技术标成红色。 1)事务处理:主要分为Cache(Memcached, Redis, GemFire)、RDBMS、NewSQL(以VoltDB为首的)三部分,缓存和NewSQL数据库是关注的重点。2)流式处理:Storm本身只是计算的框架,而Spark-Streaming才实现了内存计算式的流处理。3)分析阶段的对比:Ø 通用处理:MapReduc原创 2014-12-13 14:22:32 · 15349 阅读 · 2 评论 -
IMDG中的陷阱和问题
陷阱使用cache API时,一个最重要的问题就是潜在的数据加载。因为IMDG提供的分布式集合也都是实现的JDK的Map、Set等接口,以JDK的Map为例,它接口规定put和remove返回被替换的对象或删除掉的对象,所以这会导致我们操作缓存时导致与后端存储的通信。所以我们要调用其它版本的API,例如GridGain提供了putx等接口,其返回值是一个布尔值而非旧的对象。问题现今的IMDG虽然已原创 2014-12-31 19:15:16 · 2267 阅读 · 0 评论 -
NewSQL数据库VoltDB特性简介
VoltDB是一个革命性的新型数据库产品,被称作NewSQL数据库。它基于H-Store,号称比当前数据库产品的吞吐量高45倍,同时又具有很高的扩展性。它的特性主要有以下几点:Ø 高吞吐、低延迟:通过内存计算,存储过程和串行数据访问实现。Ø 可扩展性:自动分区和复制,保证性能和可扩展性。Ø 高可用性:同步的多主复制(在VoltDB中叫K-safety)。Ø 持久化:数据库快照与命令日志(c原创 2014-12-13 14:14:31 · 7363 阅读 · 0 评论 -
内存数据网格IMDG简介
1 简介将内存作为首要存储介质不是什么新鲜事儿,我们身边有很多主存数据库(IMDB或MMDB)的例子。在对主存的使用上,内存数据网格(In Memory Data Grid,IMDG)与IMDB类似,但二者在架构上完全不同。IMDG特性可以总结为以下几点:Ø 数据是分布式存储在多台服务器上的。Ø 每台服务器都是active模式。Ø 数据模型通常是面向对象和非关系型的。Ø 根据需要,经常会增原创 2014-12-21 20:49:53 · 8979 阅读 · 0 评论 -
Impala中的代码生成技术
Cloudera Impala是一种为Hadoop生态系统打造的开源MPP(massive parallel processing)数据库,它主要为分析型查询负载而设计,而非OLTP。Impala能最大限度地利用现代硬件和高效查询执行的最新技术。LLVM下的运行时代码生成就是用来提升执行性能的技术之一。LLVM简介LLVM是一个编译器及相关工具的库(toolchain),它不同于独立应用式(sta原创 2014-12-06 20:54:58 · 7169 阅读 · 0 评论 -
Google Dremel数据模型详解(下)
“神秘”的r和d单从数据结构来看的话,我们可以这样解释r和d的含义。r代表着当前字段与前一字段的关系,是在哪一层合并的,即公共的父结点在哪?举例来说,假如我们重建到了Code='en',通过r=2可以知道是在Language那一层发生了重复。为了保持原纪录的结构,我们会保存一些NULL数据,而d就是用于重建NULL字段。通过d的值,就能知道NULL的结构。例如下图,通过r=1知道应该合并到Name原创 2014-12-06 19:13:23 · 4736 阅读 · 0 评论 -
Google Dremel数据模型详解(上)
首先简单介绍一下Dremel是什么,能解决什么问题。第二部分着重讲Dremel的数据模型,即数据结构。第三部分将谈一下在此数据结构上设计的算法。1 起源Dremel的数据模型起源于分布式系统的应用环境(Protocol Buffers,一种在Google内广泛使用,现已开源的实现)。其数据模型是基于强类型的嵌套记录,抽象语法可以表示成下面公式:一个例子:2 嵌套列式存储2.1 记录结构的无损表示首原创 2014-11-30 21:33:07 · 9453 阅读 · 1 评论 -
分布式缓存GemFire架构介绍
1什么是GemFireGemFire是一个位于应用集群和后端数据源之间的高性能、分布式的操作数据(operational data)管理基础架构。它提供了低延迟、高吞吐量的数据共享和事件分发。GemFire充分利用网络中的内存和磁盘资源,形成一个实时的数据网格(data fabric or grid)。 GemFire的主要特性有:Ø 多种网络拓扑Ø 高并发的内存数据结构,避免锁争夺Ø 可选原创 2014-11-22 14:36:29 · 41281 阅读 · 16 评论 -
Spark分布式计算和RDD模型研究
1背景介绍现今分布式计算框架像MapReduce和Dryad都提供了高层次的原语,使用户不用操心任务分发和错误容忍,非常容易地编写出并行计算程序。然而这些框架都缺乏对分布式内存的抽象和支持,使其在某些应用场景下不够高效和强大。RDD(Resilient Distributed Datasets弹性分布式数据集)模型的产生动机主要来源于两种主流的应用场景:Ø 迭代式算法:迭代式机器学习、图算法,包原创 2014-11-22 14:54:47 · 18955 阅读 · 6 评论 -
Spark发展现状与战线
前言现今Spark正是风头正劲时,Spark本是UCBerkeley的AMPLab诞生的项目,后来捐赠给了Apache来管理源码和后续发展。今年从Apache孵化器终于孵化出了1.0版本。其对大数据的支持从内存计算和流处理,到交互式查询,一直到图计算和机器学习,可谓摆开了架势、拉长了战线,一方面挑战老前辈Hadoop和MapReduce,另一方面又随时准备迎接同样的后起之秀的挑战。大数据的今天今天原创 2014-11-27 20:15:46 · 8252 阅读 · 0 评论