11 2012 档案

摘要:在使用MonogDB构建真实的应用程序并用于生产环境之前,应该注意一些局限,它们大多数都是由于MongoDB使用内存映射文件(memory-mapped file)而 导致的。首先,MongoDB通常应该运行于64位的机器上。32位系统只能对4 GB内存做寻址。要知道,一般半数的内存都会被操作系统和程序进程占用,就只剩2 GB内存能用来映射数据文件。因此,如果运行在32位的服务器上,还定义了适当数量的索引,那么数据文件只能被限制在1.5 GB。大多数生产环境系统的要求都高很多,因此一个64位的系统是必需的。使用虚拟内存映射的第二个后果是,数据占用的内存会自动按需分配。这样一来,想在共享环境中运 阅读全文
posted @ 2012-11-30 17:01 visionwang 阅读(344) 评论(0) 推荐(0)
摘要:如何设计memcache的部署结构,假设业务需要100G的容量,通过一致性Hash部署?虽然可以解决单点问题,但是如何解决Multi-Get的性 能问题,以及线性扩容的问题?通过部署多层memcache结构,即避免了单点问题,同时又减少了Multi-Get需要访问服务器的数量从而提升性能, 同时还可以解决线性扩容问题。依据先稳定后优化的理念,在架构设计层面防止单点故障的发生: 1. mc作为mysql故障时的备份,降低了故障的影响。 2. memcache层采用多套数据冗余, master/slave + L1 list cache。 3. 多机房容灾, 一个机房出现故障后流量可以快速切换到另 阅读全文
posted @ 2012-11-24 22:29 visionwang 阅读(1156) 评论(0) 推荐(1)
摘要:XML中的特殊字符 > 和 < 这类字符是XML标记字符,在XML中有特殊的含义。当在 SQL 查询(或 XPath 查询)中指定这些字符时,必须对它们进行适当的编码(也称为实体编码)。下表列出了这些特殊字符并描述了它们的含义。有关更多信息,请参见XML1.0 规范 中的XML1.0 规范。特殊字符 特殊含义 实体编码>开始标记&gt;<结束标记&lt;"引号&quot;'撇号&apos;为了不使用转义字符,保存的时候需要使用 <![CDATA[。。。。 ]]> 例如:<?xml version=&qu 阅读全文
posted @ 2012-11-21 16:17 visionwang 阅读(11663) 评论(0) 推荐(0)
摘要:hash算法实现代码如下:继承自c#的HashAlgorithm类View Code public class FNV1a : HashAlgorithm { private const uint Prime = 16777619; private const uint Offset = 2166136261; protected uint CurrentHashValue; public FNV1a() { this.HashSizeValue = 32; this.... 阅读全文
posted @ 2012-11-20 23:27 visionwang 阅读(2245) 评论(0) 推荐(0)
摘要:一、基础设施服务AWS共提供14类28项服务,大致可分为计算、存储、应用架构、特定应用、管理这五大类:1、计算类服务EC2:虚拟机实例,有标准型、大内存、高运算能力、带10G网络的HPC、GPU等多种类型、Win/Linux OS、主流WEB、应用服务器、数据库。可自动按需伸缩。本机没有持久化的存储Elastic MapReduce:MapReduce型分析,基于Hadoop,支持Hive/Pig。能处理EC2和S3中的数据2、存储类服务S3:海量文件存储。分高可靠和低可靠两类。SimpleDB:高可伸缩的简单结构化数据存储,支持极大数据量。强一致和最终一致可选。条件更新RDS:打包好的MyS 阅读全文
posted @ 2012-11-19 13:55 visionwang 阅读(3792) 评论(0) 推荐(0)
摘要:1.Mongodb bson文档型数据库,整个数据都存在磁盘中,hbase是列式数据库,集群部署时每个familycolumn保存在单独的hdfs文件中。2.Mongodb 主键是“_id”,主键上面可以不建索引,记录插入的顺序和存放的顺序一样,hbase的主键就是row key,可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组。存储时,数据按照Row key的字典序(byte order)排序存储。设计key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。字典序对int排序的结果是1,10,10 阅读全文
posted @ 2012-11-17 23:36 visionwang 阅读(10032) 评论(0) 推荐(1)
摘要:ADO.NET已经为我们提供这样的连接池管理,每个连接字符串产生一个连接池,设置了池的最大连接数,尽管你在DBConnection上使用close或者dispose,连接都没有被关闭,其实是返回到池,由池来管理这些连接,等待下次请求。除非连接池中的连接全部关闭,连接池才从内存中释放。多个不同的的连接字符串,产生多个连接池。如何实现连接池?确保你每一次的连接使用相同的连接字符串(和连接池相同);只有连接字符串相同时连接池才会工作。如果连接字符串不相同,应用程序就不会使用连接池而是创建一个新的连接。优点使用连接池的最主要的优点是性能。创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程 阅读全文
posted @ 2012-11-16 23:34 visionwang 阅读(531) 评论(0) 推荐(0)
摘要:首先是如何检查SQL的效率. 1.善用 EXPLAIN 设计SQL后,应使用explain命令检查SQL,看是否使用到索引,是否存在filesort,重点检查检索的行数(rows)是否太大。 一般来说. rows<1000,是在可接受的范围内的。 rows在1000~1w之间,在密集访问时可能导致性能问题,但如果不是太频繁的访问(频率低于1分钟一次),又难再优化的话,可以接受,但需要注意观察 rows大于1万时,应慎重考虑SQL的设计,优化SQL,优化db,一般来说不允许频繁运行(频率低于1小时一次)。 rows达到10w级别时,坚决不能做为实时运行的SQL。但导数据场合除外,... 阅读全文
posted @ 2012-11-16 23:24 visionwang 阅读(1163) 评论(0) 推荐(0)
摘要:原文地址:http://www.infoq.com/cn/news/2008/11/rack-cache缓存Web应用的方式有很多,他们通常都很复杂。随着应用基础设施的不断增加,基本的Rails页面缓存的管理变得越发单调乏味了。Rails 2.2通过HTTP headers:last_modified与etag引入了条件性GET。Ryan Tomayko遵循着RFC2616中的internet标准缓存说明引入了Rack::Cache。Rack::Cache是Rack中间件的一部分,它通过基本的存储方式(磁盘、堆及memcache)与针对缓存策略的配置系统实现了RFC2616中的大多数缓存特性。 阅读全文
posted @ 2012-11-01 10:03 visionwang 阅读(315) 评论(0) 推荐(0)