上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: consistent hashing算法早在1997年就在论文Consistent hashing and random trees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个cache服务器(后面简称cache),那么如何将一个对象object映射到N个cache上呢,你很可能会采用类似下面的通用方法计算object的hash值,然后均匀的映射到到N个cache;hash(object)%N一切都运行正常,再考虑如下的两种情况;1一个cache服务器m down掉了(在实际应用中必须要考虑这种情况),这样所有映射到cache m的对象都会失效,怎么办,需要把cach 阅读全文
posted @ 2013-03-13 15:08 盖文 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 第一步:物理分离应用数据库网站运营的最开始阶段,在每天高峰期的时候总是会出现宕机现象并且经常会有数据库和网站应用挣抢硬件资源的状况出现,这种情况下,最简单的方案就是把应用和数据库分开部署到不同机器上,以提高各自能够占有的资源。(此方案是网站建设最初阶段)第二步:页面缓存和静态化随着网站访问量的迅猛攀升,系统的响应会开始变慢,主要原因是因为访问数据库的连接增多,数据库服务器的硬件配置又决定了只能提供一定数量的连接。由于网站里的很多内容是很少更新的。于是可以把这些页面缓存起来或者静态化,减少对数据库的访问。这一步对技术上有所要求:页面缓存技术,模板技术。页面缓存提议Squid等几种方案,静态化可通 阅读全文
posted @ 2013-03-13 14:40 盖文 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 一、缓存穿透我们在项目中使用缓存通常都是APP先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB就挂掉了。这个问题其实经常遇到,只是没有引起足够的重视,在我想来,如果碰到这样的问题可以在封装的缓存SET和GET部分增加个步骤,如果查询一个KEY不存在,就已这个KEY为前缀设定一个标识KEY;以后再查询该KEY的时候,先查询标识KEY,如果标识KEY存在,就返回一个协定好的非FALSH或者NULL值,然后APP做相应的处理,这 阅读全文
posted @ 2013-03-13 14:39 盖文 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 聚类的意思很明确,物以类聚,把类似的事物放在一起。 聚类算法是web智能中很重要的一步,可运用在社交,新闻,电商等各种应用中,我打算专门开个分类讲解聚类各种算法的java版实现。 首先介绍kmeans算法。 kmeans算法的速度很快,性能良好,几乎是应用最广泛的,它需要先指定聚类的个数k,然后根据k值来自动分出k个类别集合。 举个例子,某某教练在得到全队的数据后,想把这些球员自动分成不同的组别,你得问教练需要分成几个组,他回答你k个,ok可以开始了,在解决这个问题之前有必要详细了解自己需要达到的目的:根据教练给出的k值,呈现出k个组,每个... 阅读全文
posted @ 2013-03-12 16:44 盖文 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 聚类算法中基于链接的算法大致有三种:单链接算法(single link),平均链接算法(average link),最小生成数算法(minimum spanning tree)。现在实现单链接算法,其他算法以后再续吧。 单链接算法的过程是 首先生成各个元素的距离矩阵,根据距离和阀值的比对来控制生成的聚类个数,阀值越大,生成的聚类越少,直到同属一类。 下面例子实现了根据经纬度来实现城市的聚类。 001 package singlelink;002 003 import java.util.ArrayList;004 import java.util.Hash... 阅读全文
posted @ 2013-03-12 16:37 盖文 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 最小编辑距离1)定义编辑距离(Minimum Edit Distance,MED),又称Levenshtein距离,是指两个字符串之间,由一个转成另一个所需要的最少编辑操作次数。允许的编辑操作包括:将一个字符替换成另一个字符(substitution,s),插入一个字符(insert,i)或者删除一个字符(delete,d),如下图所示:在大学算法设计相关课程上,想必大家都已经学习过使用动态规划算法解最小编辑距离,形式化定义如下:最终求得D(n,m)即为字符串X[0...n]与Y[0...m]之间的最小编辑距离。2)应用最小编辑距离通常作为一种相似度计算函数被用于多种实际应用中,详细如下: ( 阅读全文
posted @ 2013-03-12 16:24 盖文 阅读(1084) 评论(0) 推荐(0) 编辑
摘要: 搞自然语言处理的应该不会对这个概念感到陌生,编辑距离就是用来计算从原串(s)转换到目标串(t)所需要的最少的插入,删除和替换的数目,在NLP中应用比较广泛,如一些评测方法中就用到了(wer,mWer等),同时也常用来计算你对原文本所作的改动数。编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫Levenshtein Distance。Levenshtein distance (LD) is a measure of the similarity between two strings, which we will refer to as the source string ( 阅读全文
posted @ 2013-03-12 16:09 盖文 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 在数据分析和数据挖掘的过程中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如K最近邻(KNN)和K均值(K-Means)。当然衡量个体差异的方法有很多,最近查阅了相关的资料,这里整理罗列下。 为了方便下面的解释和举例,先设定我们要比较X个体和Y个体间的差异,它们都包含了N个维的特征,即X=(x1, x2, x3, … xn),Y=(y1, y2, y3, … yn)。下面来看看主要可以用哪些方法来衡量两者的差异,主要分为距离度量和相似度度量。距离度量 距离度量(Distance)用于衡量个体在空间上存在的距离,距.. 阅读全文
posted @ 2013-03-12 15:05 盖文 阅读(166) 评论(0) 推荐(0) 编辑
摘要: Google 拥有许多数据中心,它如何进行管理呢?答案就是软件系统 Borg。通过 Borg,公司可以将众多数据中心视为一个电脑,进行统一管理。Borg 是公司保存最好的秘密之一。不过,Twitter 工程师们开发了一个类似的系统,并且是开源的。这就是 Mesos。Wired 网站为我们揭开了 Mesos 开发背后的故事。Borg 由工程师 John Wilkes 主导开发。他并不喜欢 Borg 这个名字,“我乐意称其为那个不会被命名的系统”。Google 使用这个系统已经有九到十年的时间,而且他的团队正在开发新的版本,代号是 Omega。通过 Borg,Google 可以在大量的服务器之间有 阅读全文
posted @ 2013-03-12 00:16 盖文 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 一、子查询1.相关子查询相关子查询是指需要引用主查询列表的子查询语句,相关子查询是通过EXISTS谓词来实现的。下面以显示工作在"new york"的所有雇员为例,说明相关子查询的使用方法,示例如下: SQL> select ename,job,sal,deptno from emp where exists (select 1 from dept where dept.deptno=emp.deptno and dept.loc='new york');如上所示,当使用exists谓词时,如果子查询存在返回结果,则条件为true;如果子查询没用返回结 阅读全文
posted @ 2013-03-10 21:00 盖文 阅读(297) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页