自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 Elasticsearch查询分析

一,elasticsearch查询分为query查询和filter查询两种方式。query查询过程:1,比较查询条件;2,然后计算分值,最后返回文档结果。这种查询方式适合于全文检索类的查询。filter查询1,判断是否满足查询条件,如果不满足,会缓存查询过程(记录该文档不满足结果);2,满足的话,就直接缓存结果。这种查询方式适合于精确值匹配方式的查询。

2017-02-13 15:50:15 1254

原创 akka actor监控(monitoring)

在Akka中生命周期监控通常指的是DeathWatch。除了父actor和子actor的关系的监控关系,每个actor可能还监视着其它任意的actor。   监视actor通过接收Terminated消息来实现生命周期监控。如果没有其它的处理方式,默认的行为是抛出一个DeathPactException异常。为了能够监听Terminated消息,你需要调用ActorContext.watch(ta

2016-09-01 14:51:49 2057

原创 Gossip协议

Gossip是一个带冗余的容错算法,最终一致性算法。虽然无法保证在某个时刻所有节点状态一致,但可以保证在”最终“所有节点一致,”最终“是一个现实中存在,但理论上无法证明的时间点。因为Gossip不要求节点知道所有其他节点,因此又具有去中心化的特点,节点之间完全对等,不需要任何的中心节点。Gossip可以用于众多能接受“最终一致性”的领域:失败检测、路由同步、Pub/Sub、动态负载均衡。

2016-09-01 11:22:45 2797

原创 关于akka的mailbox的size问题

在akka1.x中无论在actor内部还是外部提供了一个查询mailbox size的方法。但是在akka2.0中由于一系列的原因这一个方法被删除了。那么查询maibox size会存在什么问题呢?1,需要花费O(n)的时间,在queue并发大的情况下可能会很慢;)2,并不需要精确计算size;3,限制了扩张性;4,在你得到size的时候,这个时候实际的size可能已经发生

2016-07-10 20:39:10 3856

转载 探究CRC32算法实现原理

转载于:http://blog.csdn.net/zhaodm/article/details/3711034What's CRC ?简而言之,CRC是一个数值。该数值被用于校验数据的正确性。CRC数值简单地说就是通过让你需要做处理的数据除以一个常数而得到的余数。当你得到这个数值后你可以将这个数值附加到你的数据后,当数据被传送到其他地方后,取出原始数据(可能在传

2015-10-29 11:01:24 1579

原创 apply方法和spray的dsl理解

在scala中scala分为两种类型,分别为:1,class里面的apply方法class里面的一个特色方法,可以显示的在对象上调用(val ao = ApplyTest() ; ao.apply("dddd"));也可以隐式的调用如 ao("ddd"),相当于省略掉了方法名,这其实就和map的取值操作是一样的;也可以另外一种隐式的调用 ao{"ddd"},大括号里面的类型即可以是

2015-10-29 09:49:03 643

原创 cassandra的四种key

cassandra的四种keyprimary key,partition key, composite key clustering keyprimary key用于数据分区的的key,其中primary key有以下几种形式:1,最基本的形式: create table stackoverflow (      key text PRI

2015-08-02 18:48:24 5472 1

翻译 Basic Rules of Cassandra Data Modeling

好久不写博客了,借口刚换工作,很忙,很多新东西需要学习。。。。。。http://www.datastax.com/dev/blog/basic-rules-of-cassandra-data-modelingBasic Rules of Cassandra Data Modeling正确掌握cassandra的数据模型不是一件容易的事情,如果你有关系型数据库

2015-07-05 07:49:30 505

原创 居然没拿到offer,失落

千言万语都是泪啊

2015-02-12 20:08:20 658

转载 可重入锁

本文里面讲的是广义上的可重入锁,而不是单指JAVA下的ReentrantLock。可重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。下面的例子为非递归的例子,可重入锁也就是说加锁的主语是线程而不是方法调用在JAVA环境下 ReentrantLock 和synchronized 都是 可重入锁下

2015-02-07 16:49:21 512

转载 自旋锁

1、自旋锁自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时 才能进入临界区。如下public class SpinLock { private AtomicReference sign =new AtomicReference<>(); public void lock(){ Thread current = Thread.curre

2015-02-07 16:43:45 549

原创 mongodb总结

mongodb总结总览:1,将原来的“行”的概念换成更加灵活的"文档"模型。其文档,数组可以相互内嵌起来。因此mongodb没有模式。2,容易扩展如具备灵活的自动的分片功能。3,不牺牲速度第一,对文档进行动态填充,预分配数据文件,用空间换取性能的稳定。其次,默认的存储引擎中使用内存映射文件,将内存管理工作交给操作系统去处理第三,动态查询优化查询器中会记住执行查询

2015-02-02 22:03:31 593

转载 NUMA和Mongodb

自己并进行了一些整理http://www.ttlsa.com/mongodb/mongodb-numa/mongodb的NUMA问题mongodb日志显示如下:WARNING: You are running on a NUMA machine.We suggest launching mongod like this to avoid performance pr

2015-01-29 21:59:17 731

原创 回溯算法总结

1,迷宫问题2,8皇后问题3,幂等问题public static void PowerSet(int i, List list, List li) { if (i > list.size() - 1) { System.out.println(li); } else { li.add(list.get(i));// 左加 Po

2015-01-29 21:15:18 575

原创 二叉树算法总结

1,求二叉树的深度package com.dong.istudy.btree;/** * 获取二叉树的深度 */public class BTreeDeep { public static void main(String[] args) { } public static int getDeep(BTreeNode root) { if (root == null)

2015-01-27 22:27:21 585

原创 链表算法总结

不多说了,还是结合代码吧。package com.dong.istudy.algorithm;/** * 1,一个链表是否有环(也就是相交),一個指针走两步,另外一个指针走一半,如何两个重合那么说明相交。 * * 2,两个链表是否相交 , * (两个链表都没有环)分析链表结构,如果相交,那么两个链表的尾节点必为同一个节点,只要分别遍历到两个链表的最后然后比较就可以了。

2015-01-26 21:11:23 568

原创 kafka producer总结

Kafka producer的ack的3种机制:通过初始化producer时的producerconfig可以通过配置request.required.acks不同的值来实现。0:这意味着生产者producer不等待来自broker同步完成的确认就继续发送下一条(批)消息。      此选项提供最低的延迟但最弱的耐久性保证,因为其没有任何确认机制。1:这意味着producer在le

2015-01-24 15:38:52 4681

原创 kafka consumer group总结

kafka消费者api分为high api和low api,目前上述demo是都是使用kafka high api,高级api不用关心维护消费状态信息和负载均衡,不用关心offset。高级api的一些注意事项:1. 如果consumer group中的consumer线程数量比partition多,那么有的线程将永远不会收到消息。因为kafka的设计是在一个partition上是不允许

2015-01-22 21:58:41 26096 5

原创 guava有感

前几天偶然发现了一个框架guava,该框架为google的java基础包,其作用有点类似于Apache的commons工具包。不过我还没有时间去深入的学习一下,只是大概的浅尝了一下,大概明白了它到底能发挥声明作用。比如其功能有(只举几个例子):1,null值处理。这个在工作中其实非常常见,记得有一次部门内还专门做过一次分享,即如何处理值。只是当时分享的出发点还仅仅停留在一些开发规范

2015-01-19 20:21:50 684

转载 布隆过滤器(bloom filter)

好久不接触她了,一些细节居然忘了,本来想自己写写,想了想还是转载吧,当然自己要总结一下关键点。转载地址: http://www.dbafree.net/?p=36概览:    Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。定义:    Bl

2015-01-19 19:59:33 818

原创 zookeeper客户端api和服务器版本不一致导致的超时问题

这个问题本来不想写的,但是觉得这个问题的现象还是很有意思,很容易误导人。问题背景:由于kafka采用zookeeper对其进行集群管理,并且在kafka的发行包中包含了zookeeper的客户端和服务器。但是今天我把管理kafka用到的zookeeper升级了一下,结果发现程序异常导致超时。如下异常:ZkTimeoutException: Unable to con

2015-01-10 21:56:23 9344

原创 动态规划问题

动态规划问题,package com.dong.alg.dp;/** * 求连续子数组的最大和 * @author cuihd * */public class MaxSumOfSubArray { public static void main(String[] args) { int[] array = {1,3,-4,7,0,-1,2}; int

2015-01-07 16:51:51 505

原创 mina源码

之前本来把mina的源码看了一遍,但是今天突然回想了一下,好像好多都忘记了。1,mina启动即开启端口监听AbstractPollingIoAcceptor类的代码片段private void startupAcceptor() { // If the acceptor is not ready, clear the queues // TODO

2015-01-06 22:21:36 504

原创 再说innodb索引

前面有的文章简要说明的mysql的索引,其中也涉及到了innodb的索引。再总结深入一下:1,innodb的聚集索引是安装主键的顺序进行排序,而聚集索引的存储是安装指针的逻辑位置进行排序,也就是说指针的逻辑指针也是按照顺序进行递增的。这说明:    1.1 如果在sql查询中按照主键进行排序排序操作那么是排序操作那么是非常快的,无论是升序排列还是降序排序(B+树的叶子节点为是用

2014-11-30 08:52:23 452

原创 innodb的锁

innodb按照锁的类型划分为:共享锁(S):允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。排他锁(X):允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。为了允许行锁和表锁共存,实现多粒度锁机制,InnoDB还有两种内部使用的意向锁(Intention Locks),这两种意向锁都是表锁。意向共享锁(IS):事务打算给数据行

2014-11-26 21:34:39 914

翻译 proto buffer编码详解

工作内容需要尽可能小的应用传输格式。本来以为网上很多的。。。。This document describes the binary wire format for protocol buffer messages. You don't need to understand this to use protocol buffers in your applications, but it

2014-11-25 22:02:54 1711

翻译 Apache Hadoop NextGen MapReduce (YARN)

原文http://hadoop.apache.org/docs/r2.5.1/hadoop-yarn/hadoop-yarn-site/YARN.htmlMapreduce 在hadoop-0.23经历了一个巨大的变化,也就是mapreduce2.0或者是YARN.YARN的基础思想是把mapreduce1中的JobTracker的两个主要功能resourcemanagem

2014-11-16 22:52:55 595

原创 mapreduce patitioner

mapreduce patitionermapreduce中的patitioner可以对key进行分区,即可以把map的输出结果均匀的输入到reducer中。其中mapreduce实现了4中patitioner。默认的为public class HashPartitioner extends Partitioner {   public int getParti

2014-11-16 21:37:20 1259

转载 snappy压缩

Snappy 是一个 C++ 的用来压缩和解压缩的开发包,其目标不是最大限度压缩,而且不兼容其他压缩格式。Snappy 旨在提供高速压缩速度和合理的压缩率。Snappy 比 zlib 更快,但文件相对要大 20% 到 100%。在 64位模式的 Core i7 处理器上,可达每秒 250~500兆的压缩速度。     Snappy 在 Google 内部被广泛的使用,从 BigTable 到

2014-11-11 20:45:37 2067

原创 ipc,hadoop RPC,java RMI

无论怎么样都必须要先说IPC,即进程间通信。

2014-11-10 21:22:51 578

原创 简简单单的说明向量空间模型(VSM)

向量空间模型(VSM)即(Vector Space Model)。

2014-11-04 22:17:20 1023

原创 一些小算法(持续更新)

双栈实现队列

2014-11-04 20:55:00 609

原创 排序字符串的前缀压缩算法,结合lucene

排序的字符串如下:aba

2014-11-02 19:11:39 1653

原创 lucene中的vint类型,或者说是vint对int的压缩,及其在差值压缩中的应用

lucene索引中有许多数字(整形)需要存储,因此也就针对单个int进行了压缩处理。对于一个字节的8个bit,后7个bit表示实际的值,第一个bit表示后面是否还有其他的字节。比如:比如00000001 最高位表示0,那么说明这个数就是一个字节表示,有效位是后面的七位0000001,值为1。10000010 00000001 第一个字节最高位为1,表示后面还有字节,第二位最

2014-11-02 18:47:05 1009

原创 hadoop总结总结吧

好早之前开始学习hadoop但是都没有系统的学习过,我一向的思维方式是只要

2014-10-30 19:55:20 574

原创 hash总结

hash算法:1,除法取余法,偶数和偶数相除为偶数,h(k) = k mod m; m记录不要是2的幂或者是10的幂,最好是质数

2014-10-29 21:19:33 661

翻译 Lucene中使用高效压缩来压缩stored fields

fields存储在磁盘上,一切运行的很好,直到你的数据对于I/O缓存来说变得太大。在那之前,大多数磁盘访问实际上从来没有接触磁盘读取或写入,因此他如同访问内存一样快。你的数据变得太大,一切会突然变得非常慢。一旦数据变得那么大,有三种选择:要么你发现技术,以减少磁盘寻道(通常是通过加载在内存中的一些数据和/或更加依赖于顺序存取),买更多的RAM或更好的磁盘(SSD),但是性能依然会降低如果你的数据保

2014-10-28 22:24:44 2216

原创 理解xmpp协议及其应用

XMPP协议的一些概念     通过以上简介,我们了解了XMPP协议的基本流程,下面来了解一个XML中一些基本的概念。XMPP地址    一个实体在XMPP网络结构中被称为一个节点,它有唯一的标示符jabber identifier(JID),即实体地址,用来表示一个用户,但是也可以表示其他内容,例如一个聊天室.一个有效的JID包括一系列元素:(1)域名 (domain ide

2014-10-28 20:35:29 625

原创 堆和优先级队列

堆的概念:如果将序列{k1 , k2 , … , kn}对应为一维数组,且序列中元素的下标与数组中下标一致,即数组中下标为 0 的位置不存放数据元素,此时该序列可看成是一颗完全二叉树,则堆的定义说明,在对应的完全二叉树中非终端结点的值均不大于(或不小于)其左右孩子结点的值。堆排序:

2014-10-28 19:41:29 513

原创 java无锁算法CAS

public class Test { /** * @param args */ public static void main(String[] args) { Test test = new Test(); SimulatedCAS cas = new SimulatedCAS(); cas.setOldValue(5); test.setValue(cas);

2014-10-27 19:05:29 634

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除