摘要:
毕业一年,有许多改变,觉得是时候总结一下。 作为一名标准的IT男,感觉自己这工作头一年表现还算可以,渐渐从事事敏感的菜鸟,成长为比较稳重的老鸟,当然现在还不能做到绝对的宠辱不惊,不过下一步的成长已经不远了。这一年渐渐的完善了自己的技术体系,关于爪哇语言的底层硬件到顶层应用都有涉及,还有分布式系统的一些架构原理,技术概论等,算是彻底融入了开源项目的领域内。大概内容就这些,然而经历还是十分丰富的。 一 行走于沙漠之中,游离于天海之外; 实习是一段美妙的时光,可以工作,而又不怕工作的失败,其目的是为以后的发展探路,而不用承担任何选择性的风险。如果是跟一些志同道合的同事一起工作,那这份经历就... 阅读全文
摘要:
NEW 至今尚未启动的线程处于这种状态。 RUNNABLE 正在 Java虚拟机中执行的线程处于这种状态。处于可运行状态的某一线程正在 Java虚拟机中运行,但它可能正在等待操作系统中的其他资源,比如处理器。 BLOCKED 受阻塞并且正在等待监视器锁的某一线程的线程状态。处于受阻塞状态的某一线程正在等待监视器锁,以便进入一个同步的块/方法,或者在调用 Object.wait 之后再次进入同步的块/方法。 WAITING 无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。某一线程因为调用下列方法之一而处于等待状态: 1、不带超时值的 Object.wait 2、... 阅读全文
摘要:
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。第三部分根据上面 阅读全文
摘要:
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?3、socket的基本操作3.1、socket()函数3.2、bind()函数3.3、list 阅读全文
摘要:
http://blog.ec-ae.com/?p=4213http://deepin.iteye.com/blog/711813 阅读全文
摘要:
org.apache.zookeeper.ClientCnxn.java该类管理客户端到HBase集群的socket I/O所有需要通过socket发送的消息全部打包成Packet对象,然后放到ClentCnxn的outgoingQueue(LinkedList<Packet>)中,对outgoingQueue的操作需要同步控制。需要接受的消息也会被打包成Packet对象,放入pendingQueue(LinkedList<Packet>)中,等待一个答复。下面介绍一下设计的其他类及各类的使用方法及处理逻辑。(一)Packet.javastatic class Pack 阅读全文
摘要:
第 1 部分: 推荐引擎初探“探索推荐引擎内部的秘密”系列将带领读者从浅入深的学习探索推荐引擎的机制,实现方法,其中还涉及一些基本的优化方法,例如聚类和分类的应用。同时在理论讲解的基础上,还会结合 Apache Mahout 介绍如何在大规模数据上实现各种推荐策略,进行策略优化,构建高效的推荐引擎的方法。本文作为这个系列的第一篇文章,将深入介绍推荐引擎的工作原理,和其中涉及的各种推荐机制,以及它们各自的优缺点和适用场景,帮助用户清楚的了解和快速构建适合自己的推荐引擎。信息发现如今已经进入了一个数据爆炸的时代,随着 Web 2.0 的发展, Web 已经变成数据分享的平台,那么,如何让人们在海量 阅读全文
摘要:
NoSQL架构实践(一)——以NoSQL为辅本文为凤凰网负责底层组的研发工作的孙立同学在InfoQ上发表的NoSQL系列文章之一,本文探讨了使用NoSQL作存储的几种典型模式,对NoSQL的实践及应用,具有很强的指导意义。前面《为什么要使用NoSQL》和《关系数据库还是NoSQL数据库》两篇从大体上介绍了为什么要用NoSQL,何时该用NoSQL。经常有朋友遇到困惑,看到NoSQL的介绍,觉得很好,但是却不知道如何正式用到自己的项目中。很大的原因就是思维固定在MySQL中了,他们问得最多的问题就是用了NoSQL,我如何做关系查询。那么接下来,我们看下怎么样在我们的系统中使用NoSQL。怎么样把N 阅读全文
摘要:
老文章了,但是参数还是很有参考性的。Google 公司的Jeff Dean在Stanford大学做了一个非常精彩的演讲(视频未墙)。我觉得我们每一个人都应该去看一看这个视频,当然,没有字幕,需要不错的听力,当然,我不可能全部翻译出来,因为我也不是完全能听懂,下面是一些相关的Notes,供你参夸,并欢迎牛人指证。比较了从1999年到2010年十年来的搜索量的变化。搜索量增加了 1000 倍,而搜索速度快了5 倍。1999年,一个网页的更新最多需要一个月到两个月,而今天,只需要几秒钟,足足加快了5w倍。一开始,这些大量的查询产生了大约30GB的I/O量。2004年,他们考虑过全部重写infrast 阅读全文
摘要:
我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。这在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。要解决这个问题,只需要像在本程序中的这样,把该变量声 阅读全文