一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。因此,引入了一致性哈希算法:把数据用hash函数(如MD5),映射到一个很大的空间里,如图所示。数据的存储时,先得到一个hash
系统 2019-08-29 21:58:41 3168
一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法。目前我所知道的方法都是MYISAM的,INNODB如何做分表并且保留事务和外键,我还不是很了解。首先,我们需要想好到底分多少个表,前提当然是满足应用。这里我使用了一个比较简单的分表方法,就是根据自增id的尾数来分,也就是说分0-9一共10个表,其取值也很好做,就是对10进行取模。另外,还可以根据某一字段的md5值取其中几位进行分表,这样的话,可以
系统 2019-08-12 01:55:25 3168
注:本文翻译自Google官方的AndroidDevelopersTraining文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/contacts-provider/modify-data.html这节课将会向你展示如何使用一个Intent来插入一个新的或者修改一个现有的联系人数据。与直接访问ContactsProvider不同,一个Intent会启
系统 2019-08-12 01:54:45 3168
由于log4net默认情况下会独占日志文件,该文件不能被File.Open。可以通过增加配置:来使用最小锁定模型(minimallockingmodel),以允许多个进程可以写入同一个文件。各种appender说明:在log4net的配置中,appender是最重要的部分,一般来说,每一种appender都表示一种日志的输出介质,如
系统 2019-08-12 01:31:42 3168
作者:RezaRahman文章来源:www.theserverside.comInthefirstarticle,IurgedyoutoprovidefeedbackdirectlytotheJCPatjsr-318-comments@jcp.orgaswellasCCingmeatrrahman@tripodtech.net.Beforegoingfarther,Iwouldliketothankeveryonewhotookthetimetosendi
系统 2019-08-29 23:33:44 3167
背景故事:约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的人的序号为5,4,6,2,3。最后剩下1号。类似的问题:一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。程序代码如下:usingSystem;publicclassCir
系统 2019-08-12 09:30:05 3167
查看PDF版本转载请用注明@ni掌柜nileader@gmail.com@ni掌柜的ZooKeeper系列请看http://nileader.blog.51cto.com/1381108/d-16ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统
系统 2019-08-12 09:27:34 3167
1.概念数据字典是oracle数据库用来存贮数据库结构信息的地方。数据字典是用来描述数据库数据的组织方式的,由表和视图组成。数据字典由脚本$oracle_home/rdbms/admin/catalog.sql创建。2.分类视图有三种实例:user_*(当前用户所拥有对象的有关信息),all_*(当前用户可访问对象的信息),dba_*(数据库中所有对象的信息)。查询数据字典数据时使用大写字母。可用upper\lower函数转换。一下以user_*实例举例(
系统 2019-08-12 01:54:37 3167
Ubuntu安装TomCat1、首先要确保安装相关的软件安装JAVA环境打开终端,执行以下命令,或使用《新立得软件管理器》,在其中分别搜索“sun-java5-jre“和“sun-java5-jdk”并标记安装。sudoapt-getinstallsun-java5-jre#如果空间富裕,建议安装一个JDK。呵呵sudoapt-getinstallsun-java5-jdk设置当前默认的java解释器sudoupdate-alternatives–conf
系统 2019-08-12 01:32:42 3167
对XML文件进行解析有两种:DOM方式和SAX方式。在Android应用中,多采用SAX方式。这种方式是基于方法回调的,解析速度快,内存消耗小。我们在SAX解析中增加了异步更新主线程的代码,使用户体验更佳。一、主线程主线程是Activity,实现了自定义接口AsyncSaxResponse。该接口定义了3个方法,分别是:publicvoidparserUpdateNotify(ArrayList
系统 2019-08-29 23:53:36 3166