• MapReduce论文阅读

    大四时曾经粗略的阅读过这篇论文,并且已经写过不少的MapReduce程序,所以介绍性的内容不再赘述。再次阅读这篇论文的原因是为了更系统的学习分布式的相关知识,我开始跟进MIT 6.824: Distributed Systems,而完成这门课程的第一个lab的前提便是阅读这篇论文。这篇笔记重点分析了MapReduce的执行流程以及容错机制,因为是个人理解,若有分析不妥之处欢迎发送邮件至tinylcy (at) gmail.com讨论交流。Execution Overview根据不同的环境,...

  • Bigtable论文阅读

    本文是我对Bigtable论文进行第一轮阅读所做的笔记。对于理解欠妥的地方,欢迎发送邮件至tinylcy (at) gmail.com讨论。Data Model A Bigtable is a sparse, distributed, persistent multi-dimensional sorted map. The map is indexed by a row key, column key, and a timestamp; each value in the map is ...

  • 2016年度总结及2017年度计划

    从2016年12月开始持续使用Pomotodo起,我逐渐意识到给自己定下量化计划是一件能够提升学习效率的事情。2017年的核心目标依然是提高自己,但是会采用具体的量化的指标来代替模糊性描述。其实这就类似于我们在git commit时候,如果以git commit -m "fix some bugs"的形式commit,那么在后期这些descriptions并不会带给我们任何帮助。2016总结 2016年3月至6月我需要完成学校的课程,但是总体来说,课程的质量不算高,我没有在这些课程及考试...

  • Spring IoC容器初始化 — Resource定位源码分析

    在Spring IoC容器的设计中,有两个主要的容器系列。一个是实现了BeanFactory接口的简单容器系列,这系列容器只实现了容器基本的功能;另一个是ApplicationContext应用上下文,它在简单容器的基础上增加了许多面向框架的特性,同时对应用环境做了许多适配。IoC容器的初始化过程Spring IoC容器的初始化过程分为三个阶段:Resource定位、BeanDefinition的载入和向IoC容器注册BeanDefinition。Spring把这三个阶段分离,并使用不同的...

  • HashMap源码分析

    HashMap简介本文针对HashMap的源码分析基于JDK 7,JDK 8在HashMap的实现上有着较大幅度的改进和优化,这部分优化我将另起一篇来阐述。另外,本文仅分析HashMap众多方法中最常用的方法,其余方法有需要时再研究 :smile:。HashMap的继承关系如下。public class HashMap extends AbstractMap implements Map, Cloneable, ...

  • Vector源码分析

    Vector简介Vector在JDK 1.0被引入,基于数组实现,并且是一个动态数组,其容量可以自动增长。在很多方法的实现上,Vector加入了同步语句,因此一般来说Vector是线程安全的,可以在多线程环境中运用。本文对Vector源码的分析基于JDK 1.8.0_111,并仅对常用的方法进行分析。public class Vector<E> extends AbstractList<E> implements List<E>, Rando...

  • Java对象内存布局

    JVM将内存划分为程序计数器(Program Counter Register)、虚拟机栈(VM Stack)、本地方法栈(Native Method Stack)、堆(Heap)以及方法区(Method Area)。作为开发者,我们最关注的是虚拟机栈以及堆这两块区域。虚拟机栈所需要的内存空间在编译期间即可明确,而堆内存所需要的空间需要在运行时才可确定。堆内存用于存放我们在程序中创建的对象,一旦没有足够的空间用于存放这些对象,即会抛出OutOfMemoryError异常。在这种情况下,我们...

  • Linux C 线程池实现

    学习网络编程时,自己动手实现一个Web Server是一个很有意思的经历。大多数Web Server都有一个特点:在单位时间内需要处理大量的请求,并且处理这些请求的时间往往还很短。《深入理解计算机系统》 (CSAPP) 在讲解网络编程时实现了一个经典的Web Server,这个Web Server不仅满足了静态请求,同时还满足了动态请求 (CGI)。虽然这个Web Server能够正常使用,但是仍存在一个明显的缺陷:它是一个迭代式的Web Server,这意味着在一个请求处理完毕前,不能同...