Riak与MongoDB的对比

  categories:java资料  tags:  author:
最近在学习riak,搜索了一些文章, 尽管比较老了, 但是还是保存下来, 学习一下

原文地址:http://blog.nosqlfan.com/html/2705.html

本文来自Riak所属的Basho公司的技术WiKi,文章从几个方面对Riak和MongoDB进行了对比,这不是一篇PK文章,NoSQLFan翻译给大家,希望本文能让您对Riak和MongoDB有更多的了解。

来源地址:wiki.basho.com

riak-001-2

机制与概念上的异同

Riak和MongoDB在使用特性上有下面几个相同点:

  • 都是文档型的数据模型
  • 具体存储方式都不是以文档型进行存储
  • 写性能及写吞吐都很高

虽然上面几点看起来二者挺像,但在内部实现上两者却是相去甚远。比如Riak是一个分布式的存储,而MongoDB可以理解为是一个单一的数据库系 统,同时加上了Replication和Sharding功能。MongoDB的内部数据结构上还是文档,而Riak是不用关心存储内容的二进制。 MongoDB提供GridFS机制来存储二进制内容,而Riak的二进制内容与普通内容存储方式一样。MongoDB的写入方式是 in-place方式,修改一个文档是原子性的,而Riak是通过quormNRW的机制保证写入操作安全性的。

  • http://www.mongodb.org/display/DOCS/Home
  • http://blog.mongodb.org/post/248614779/fast-updates-with-mongodb-update-in-place
  • http://www.mongodb.org/display/DOCS/Updating#Updating-Update

复制备份及横向扩展

Riak主要通过一致性hash算法来实现其数据的复制及分片,一致性hash机制是Riak的核心思想之一。在Riak中,每个节点都是对等的,所以其不存在单点故障。

  • Add Nodes to Riak
  • Consistent Hashing

而MongoDB在1.6版本后也推出了强有力的复制备份功能

1.主从复制

  • http://www.mongodb.org/display/DOCS/Master+Slave

2.Replica Sets

Replica

阅读全文

终于有了替代Visio的免费软件:EDraw Mind Map

  categories:资料  tags:  author:
作者:xbeta 版本:071020/071018
更新:此软件为国产软件。系列产品中,功能更强大的是EDraw Max,07年11月19日前中文版促销中,仅28元。多位网友已注册表示支持。
  终于有了替代Visio的免费软件—— EDraw Mind Map。这款于2007年10月最新发布 V1.0的国产免费软件,终结了流程图软件“好用则价高,免费则难用”的局面。它体积小巧、功能丰富、作为免费软件,完全可以满足普通用户绘制流程图的需求。
终于有了替代Visio的免费软件:EDraw <wbr>Mind <wbr>Map
 
1 体积小巧
  安装文件仅7.8MB。
  安装后多大呢?表面看,共占用空间55MB。但实际上,很多是示例、素材和帮助,真正运行所需的exe和dll,不超过8MB。比起它丰富的功能来,算是很小巧了。
 
2 视频演示
  百闻不如一见,请点击下图,查看flash演示(803×567,600KB)!需要说明的是,此演示也是用免费软件(Wink)制作的。另外,为了减小flash文件的体积,对颜色进行了压缩处理。实际上 EDraw 的界面非常漂亮。
  点击此处看演示  
 
3 功能丰富
  相信你看完演示后,已经对它丰富的功能产生了深刻印象。我认为,如下5方面的特性,使它成为了出色的软件。
  - 易用的标准绘图、格式化工具
  - 预装了丰富的素材库
  - 良好的集成性,可插入office及其他OLE对象
  - 多标签、多页面的组织形式
  - 输出为通用的网页、pdf、exe格式
 
4 产品背景
  出品公司EDraw致力于高质量易使用的流程图类工具软件。其产品虽多,但实际都是同一类绘图工具,价格在几十美元左右。由此也可以推断,本款Mind Map采用的应该是同一底层技术,虽为V1.0,但技术已经过同类产品的考验。推出免费产品,真是个人用户的福音。… 阅读全文

WordPress 优化Title、Description和Keywords

  categories:wordpress  tags:,   author:

不 少童鞋都喜欢安装诸如All in one seo 这样的优化插件,其实,这样的WordPress插件无非就是优化 Title,Meta的Description和Keywords。当然了,有不少免费主题在初期开发的时候,都没有优化Description和 Keywords。

Title 优化

Title 的优化很简单,只要使用下面的代码替换header.php文件中默认的Title调用代码就可以啦:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<title><?php
	global $page, $paged;
	$site_description = get_bloginfo( 'description', 'display' );
 	if ($site_description && ( 
阅读全文

RocketMQ入门

  categories:mq  tags:  author:

RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点:能够保证严格的消息顺序

一.RocketMQ网络部署特点

来源:http://www.changeself.net/archives/rocketmq%E5%85%A5%E9%97%A8%EF%BC%881%EF%BC%89.html

    (1)NameServer是一个几乎无状态的节点,可集群部署,节点之间无任何信息同步
阅读全文

大数据安全Hadoop安全模型的演进

  categories:资料  tags:  author:

敏感信息的安全和保护是当今人们最关心的问题之一。进入大数据时代,很多组织都在从各种源头收集数据,进行分析,并基于对海量数据集的分析做出决 策,因此这一过程中的安全问题变得愈发重要。与此同时,HIPAA和其他隐私保护法之类的法律法规也要求组织加强对这些数据集的访问控制和隐私限制。来自 内部和外部攻击者的网络安全漏洞与日俱增,通常都要数月之后才能发现,而那些受此影响的人正在为此付出代价。没能对他们的数据做出恰当访问控制的组织将受 到起诉,出现在负面报道中,并将面临监管机构的罚款。

请想一想下面这些让人大开眼界的统计数据:

  • 赛门铁克和Ponemon研究所今年公布的一项研究表明,一个安全漏洞在美国的平均组织化成本是540万美元1。另据最近一项研究表明,仅仅网络犯罪在美国造成的损失每年就有140亿美元之多。
  • 2011年索尼游戏机网络中出现的漏洞可以算是近代最大的安全漏洞之一,专家们估计索尼与该漏洞相关的损失大约在27亿到240亿美元之间(范围很大,但这个漏洞太大了,所以几乎难以对其进行量化)。2
  • Netflix和AOL已经因为其管理的大量数据和对个人信息的保护而受到金额达数百万美元的起诉(某些已经立案),尽管他们已经对这些数据做了“匿名化”处理并且是为了研究才公布的。3
  • 跟安全漏洞相关的除了可量化的成本(客户和业务合作伙伴的损失,诉讼,监管罚款),经历此类事件的组织的可信度和声誉还会受到影响,甚至可能会导致公司歇业。4

简而言之,如果没有恰当的安全控制,大数据很容易变成花费巨大的大问题。

对于处理大数据的组织来说这意味着什么?意味着你拥有的数据越多,对数据的保护就越重要。意味着不仅要安全有效地控制离开自有网络的数据,还必须做 好网络内部的数据访问控制。依据数据的敏感程度,我们可能要确保数据分析师能看到的数据是可以让他们分析的数据,并且必须明白发布这些数据及其分析结果可 能产生的后果。仅Netflix数据泄漏一个案例就足以表明,即使已经试图对数据做了“匿名化”处理,也可能会发布一些意料之外的信息——一些在差异化隐私领域标明的东西。

Apache Hadoop是最流行的大数据处理平台之一。尽管最初设计Hadoop时根本没考虑安全问题,但它的安全模型在不断地演进。Hadoop的兴起也招致了很 多批判,并且随着安全专家不断指出其潜在的安全漏洞及大数据的安全风险,使得Hadoop一直在改进其安全性。“Hadoop安全”市场曾出现过爆炸性的 增长,很多厂商都发布了“安全加强”版的Hadoop和对Hadoop的安全加以补充的解决方案。这类产品有Cloudera Sentry、 IBM InfoSphere Optim Data Masking、 英特尔的安全版Hadoop、DataStax企业版、 DataGuise for Hadoop、用于Hadoop的Protegrity大数据保护器、Revelytix Loom、Zettaset 安全数据仓库,此外还有很多,这里就不再一一列举了。与此同时,Apache也有 Apache Accumulo这样的项目,为使用Hapdoop提供了添加额外安全措施的机制。最终还出现了 Knox网关 (由HortonWorks贡献)和Rhino项目(由英特尔贡献)这样的开源项目,承诺要让Hadoop本身发生重大改变。

要让Hadoop达到安全性要求的巨大需求使得Hadoop一直在发生着变化,这也是我要在本文中重点讨论的内容。

Hadoop安全(简)史

阅读全文

Slick编程简介

  categories:资料  tags:  author:

Slick对于Scala来说,有如LINQ至于C# ,或者类似于其它平台上的ORM系统,它使用应用使用数据库有如使用Scala内置的集合类型(比如列表,集合等)一样方便。当然如有需要你还是可以直接使用SQL语句来查询数据库。
下面为使用Slick的代码片段:
1    val limit = 10.0
2
3    // Your query could look like this:
4    ( for( c <- coffees; if c.price < limit ) yield c.name ).list
5
6    // Or using more plain SQL String … 阅读全文

Riak学习入门

  categories:资料  tags:  author:

学习nosql过程中, 偶然发现了riak,以前没接触过, 到网络上查找了写文章, 把文章转帖到这里, 方便阅读。

NoSQL数据库 这里有几个nosql的介绍

riak的下载地址:http://docs.basho.com/riak/latest/downloads/

一. Riak 简介

来源:http://www.ibm.com/developerworks/cn/opensource/os-riak1/

使用 Riak 的 HTTP 界面存储和检索数据

阅读全文

中国加油

  categories:儿童作品  author:
中网小画家参赛作品, 中国加油

中网小画家参赛作品, 中国加油

阅读全文

Java 8简明教程

  categories:资料  author:

来源:互联网
“Java并没有没落,人们很快就会发现这一点”

欢迎阅读我编写的Java 8介绍。本教程将带领你一步一步地认识这门语言的新特性。通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表达式,方法引用和重复注解。看完这篇教程后,你还将对最新推出的 API有一定的了解,例如:流控制,函数式接口,map扩展和新的时间日期API等等。

允许在接口中有默认方法实现
Java 8 允许我们使用default关键字,为接口声明添加非抽象的方法实现。这个特性又被称为扩展方法。下面是我们的第一个例子:
package cn.iigrowing.java8;

public interface Formula {
double calculate(int a);
default double sqrt(int a) {
return Math.sqrt(a);
}
}
在接口Formula中,除了抽象方法caculate以外,还定义了一个默认方法sqrt。Formula的实现类只需要实现抽象方法caculate就可以了。默认方法sqrt可以直接使用。
package cn.iigrowing.java8;

public class TestFormula {
public … 阅读全文

图形数据库 Neo4j 开发

  categories:java资料  author:

1. Neo4j简介

Neo4j 是一个高性能的 NoSQL 图形数据库。Neo4j 使用图(graph)相关的概念来描述数据模型,把数据保存为图中的节点以及节点之间的关系。很多应用中数据之间的关系,可以很直接地使用图中节点和关系 的概念来建模。对于这样的应用,使用 Neo4j 来存储数据会非常的自然,要优于使用关系数据库。本文对 Neo4j 进行了深入的介绍,并结合具体的实例来进行详细的说明,可以让您对 Neo4j 有深入的了解,从而可以在应用开发中恰当地选择 Neo4j 来作为存储方式。Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。Neo4j因其嵌入式、高性能、轻量级等优势,越来越受到关注.

你可以把Neo看作是一个高性能的图引擎,该引擎具有成熟和健壮的数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。 [1]
Neo是一个网络——面向网络的数据库——也就是说,它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络上而不是表中。网络(从数学角度叫做图)是一个灵活的数据结构,可以应用更加敏捷和快速的开发模式。

典型应用如下:

neo4j-应用图片01

neo4j-应用图片02

2. Neo4j特点

  • 1.对象关系的不匹配使得把面向对象的“圆的对象”挤到面向关系的“方的表”中是那么的困难和费劲,而这一切是可以避免的。
  • 2.关系模型静态、刚性、不灵活的本质使得改变schemas以满足不断变化的业务需求是非常困难的。由于同样的原因,当开发小组想应用敏捷软件开发时,数据库经常拖后腿。
  • 3.关系模型很不适合表达半结构化的数据——而业界的分析家和研究者都认为半结构化数据是信息管理中的下一个重头戏。
  • 4.网络是一种非常高效的数据存储结构。人脑是一个巨大的网络,万维网也同样构造成网状,这些都不是巧合。关系模型可以表达面向网络的数据,但是在遍历网络并抽取信息的能力上关系模型是非常弱的。

虽然Neo是一个比较新的开源项目,但它已经在具有1亿多个节点、关系和属性的产品中得到了应用,并且能满足企业的健壮性和性能的需求:
完全支持JTA和JTS、2PC分布式ACID事务、可配置的隔离级别和大规模、可测试的事务恢复。这些不仅仅是口头上的承诺:Neo已经应用在高请求的24/7环境下超过3年了。它是成熟、健壮的,完全达到了部署的门槛。

Neo4j

数据存储一般是应用开发中不可或缺的组成部分。应用运行中产生的和所需要的数据被以特 定的格式持久化下来。应用开发中很常见的一项任务是在应用本身的领域对象模型与数据存储格式之间进行相互转换。如果数据存储格式与领域对象模型之间比较相 似,那么进行转换所需的映射关系更加自然,实现起来也更加容易。对于一个特定的应用来说,其领域对象模型由应用本身的特征来决定,一般采用最自然和最直观 的方式来进行建模。所以恰当的选择数据存储格式就显得很重要。目前最常见的数据存储格式是关系数据库。关系数据库通过实体 – 关系模型(E-R 模型)来进行建模,即以表和表之间的关系来建模。在实际开发中可以使用的关系数据库的实现非常多,包括开源的和商用的。关系数据库适合用来存储数据条目的 类型同构的表格型数据。如果领域对象模型中不同对象之间的关系比较复杂,则需要使用繁琐的对象关系映射技术(Object-Relationship Mapping,ORM)来进行转换。

对于很多应用来说,其领域对象模型并不适合于转换成关系数据库形式来存储。这也是非关系型数据库 (NoSQL)得以流行的原因。NoSQL … 阅读全文



快乐成长 每天进步一点点