Baron Blog

6.824: Distributed Systems lab1

概述 有关lab1的要求以及初始代码可以在 https://pdos.csail.mit.edu/6.824/labs/lab-mr.html 中获取。 问题与思路 首先需要理解mapreduce模型以及master和worker之间的关系,这些信息在paper中都有。 从图中可以看出master负责将map和reduce的任务分配给worker,worker对指定的文件进行操作后按照...

Notes for distributed cache service

本章主要是对大牛写的 分布式缓存 的思考和总结,希望能给正在学习的同学一点灵感。 第一天 缓存淘汰机制 算法选择 因为缓存都是存在内存中的,当超过固定大小的时候,需要选择行的删除旧数据,称为缓存淘汰机制。 其中缓存淘汰机制包含了以下几种: FIFO(First In First Out):先进先出,即队列。缺点:最早添加的数据及时被不断访问也会最早的被删除,导致命中率低下。 LF...

使用数组完成一个环形队列

队列的性质不多介绍,这里介绍如果使用数组完成一个环形队列。使用数组实现一个环形队列只有一个难点,就是如何判断一个环形队列是否已满。 判断队满是一个稍微需要理解的概念,刚开始大家会好奇为什么使用求余 % 这个操作符。 首先我们需要知道求余操作符的特性:当被除数小于除数的时候,其余数为被除数本身。 其次我们需要始终记得,当尾指针rear的前一位等于头指针front的时候,代表该队列已满。(即...

Thinking in java Inner Classes

内部类不仅仅只是将代码隐藏起来这么简单,下面将重点介绍匿名内部类和内部类与控制框架的关系。 1. 匿名内部类 匿名内部类是没有名字的内部类,由于其只能使用一次,所以通常用来简化代码。 而匿名内部类这种奇怪的语法指的是:”创建一个继承/实现的匿名类的对象”。 通过new表达式返回的引用被自动向上转型成为父类的引用。 下面将看到一个通过匿名内部类来继承其接口的代码逻辑。 1 2...

Head First Factory Pattern

工厂模式有三种分类,其中包括简单工厂模式、工厂方法模式以及抽象工厂模式。 1. 简单工厂模式 又称为静态工厂方法(Static Factory Method)模式, 简单工厂模式专门定义一个类来负责创建其他类的实例,代码中可以根据参数的不同返回不同类的实例, 并且被创建的实例通常都具有共同的父类。但是简单工厂模式其实不是一个设计模式,反而比较像是一种编程习惯。 这里将使用 简单工...

Head First Decorator Pattern

《Head First Design Pattern》书中关于 装饰者模式 是通过一个例子来引入的。 该例子为,若需要你为星巴兹咖啡设计订单系统,应该如何设计? 其中的错误例子将有继承以及组合的形式来实现,就是所有的咖啡类将继承Beverage这个饮料类。 其中这个饮料类中包括了cost()和getDescription()两个方法(如下图),看起来似乎没有什么问题, 但是当该系统需要扩展...

Head First Observer Pattern

解释观察者模式 观察者模式:观察者模式是软体设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件, 并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。 此种模式通常被用来实时事件处理系统。 —-Wikipedia 观察者类图: 通过定义和类图可能还是没有办法非常好的理解其中的意思,其实观察者模式就是通过一个对象的变化触发另一个对...

Thinking in Java Concurrence

1. Runnable 和 Thread的关系 Thread可以通过extends来继承并且实现其中的run()方法,而Runnable则是通过implements来实现其中的方法。 两者看似相同,但是却存在着非常大的区别。其中我们必须遵循 Inherit less, interface more 的原则,就是尽量以实现来代替继承。 原因是一个类可以实现很多接口但是却只能继承一个类。 R...

Thinking in Java String

昨天在看Java面试题的时候看到了一道关于String的题目。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class StringEqualTest { public static void main(String[] args) { String s1 = "Programming"; String s2 = n...

Leetcode-6

LeetCode 6 ZigZag Conversion Problem : The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for be...