设计模式
文章平均质量分 74
Android路上的人
开源社区爱好者, Apache Hadoop PMC & Apache Ozone PMC, 专注于分布式存储领域, 大数据方面的研究
展开
-
文件系统大目录下的操作性能效率提升
文章目录前言现有HDFS大目录文件操作效率基于哈希分区的多List目录存储结构HashedArrayList的element的索引查找HashedArrayList的代码实现HashedArrayList性能测试引用前言在文件系统的存储中,我们一般不建议是一个目录下存放过多的文件或子目录。因为这会造成后续在此目录下文件或子目录的操作效率。我们宁愿用分散存储的方式,也比用集中在一个目录下的方式...原创 2020-04-11 18:08:21 · 1948 阅读 · 0 评论 -
分布式系统阅读笔记(八)-----分布式对象和组件
一、介绍在分布式系统中,一个完整的中间件需要展现一定的对于上层程序语言的以及底层的物理设施的抽象性。而分布式对象和分布式组件恰恰是2种重要的实现方式。1、分布式对象包集成了面向对象的语言的特征和优点。能够使用户用类似面向对象的语言调用的层次上去实现远程的方法调用。2、分布式对象有下面的一些优点:1、包装性。2、他将一个对象的实现和对象本身分离了。3、具有动态性和扩展性。3、分布式组原创 2014-12-29 09:41:01 · 3604 阅读 · 0 评论 -
分布式系统阅读笔记(九)-----Web Service服务
一、介绍Web Service用一句话概括就是它提供了一个服务接口使客户端能够与服务端进行交互用非常多种的方式,超过普通的浏览器的模式。在Web Service中通常是以XML的格式方式进行传输和通信的。这其中还涉及了XML的Security安全方面的操作。1、Web Service服务是Web服务器的一个扩展形式。2、Web Service采用的XML的数据格式保证了可读性。3、原创 2014-12-30 15:57:03 · 2159 阅读 · 0 评论 -
分布式系统阅读笔记(十)-----P2P对等网络系统
一、介绍P2P系统全称是peer-To-peer System,就是对等系统的意思。他的出现使得资源可以在所有的节点间进行数据的共享了,前提是只要他是连上网络的。在P2P系统中,所有的资源和数据对象都分布于各个节点中。1、P2P系统可以用在一些分布式的应用和服务当中。2、在P2P中一个好的资源存放算法就显得非常重要。3、正是因为上面的第2条原因,出现了P2P的中间件,目的就是为了l原创 2015-01-01 15:05:59 · 5614 阅读 · 0 评论 -
分布式系统阅读笔记(十一)-----安全
一、介绍在分布式系统中,对于数据的隐私的保证性,完整性和可用性显得至关的重要。安全攻击的手段可以去窃取,篡改用户的信息。正是因为如此种种的情况发生了,才有了后面一系列的安全的相关防御方法。1、这些安全的机理本质上就是以一种预想的方式对资源进行一层包装。这种包装隔离的手段可以是物理上的隔离,比如对于公司内的资源,只允许内网中的人使用,外面的人是无法访问的,当然也可以是网络层次上的隔离。2原创 2015-01-04 11:00:22 · 4181 阅读 · 0 评论 -
Storm源码目录结构分析
前言由于公司业务的需要,我从比较熟悉的Hadoop平台的学习转到了实时计算框架Storm上面,还好其中的很多东西都是类似的,比如JobTracker对应于Storm中的Nimbus等等.相比于Hadoop的这种离线批处理的作业方式,Storm则是跟他完全相反的实时处理计算,数据源源不断的产生,结果同样在不断的产生.目录结构分析因为Storm主要由2部分的语言构成,1个是JAVA,还有1原创 2015-03-17 18:44:30 · 3705 阅读 · 0 评论 -
聊聊错误注入技巧
前言什么是“错误注入”?错误注入指的是将错误引入到我们的程序中。可能有人会很好奇,这么做有什么目的呢?答案很简单:程序的测试。因为在很多时候,当我们要进行边缘情况测试的时候,往往模拟测试的场景不是非常好造的(尤其是分布式类的程序更是如此),这个时候,我们需要有快捷的方式将错误注入到程序中,以便在我们需要发生错误时,进行错误的产生。本文笔者将结合HDFS现有的错误注入方法来介绍此部分内容。错误注入技术原创 2017-02-26 20:00:32 · 6407 阅读 · 7 评论 -
状态机在分布式系统中的应用
前言在大型的分布式系统中,经常会涉及到状态的改变,这里的状态变化可以分很多种,最极端的情况是,任何状态之间都可以互相切换。这种状态之间的切换,转变,更加官方一点的称为叫状态机。这个词可能很多人会感到比较陌生,英文就是State Machine。所以如果大家在学习开源项目中,看到这个单词,指的就是状态机的意思。那么状态机有什么用途呢,为什么我们要定义这样一个概念呢?本文笔者就来简单聊聊状态机的管理。状原创 2017-09-10 15:58:09 · 7109 阅读 · 0 评论 -
存储系统双缓冲设计模式
文章目录前言单缓冲模式单缓冲模式改进: 双缓冲模式前言在存储系统写数据的过程中,出于性能上的考虑,新写的数据并不是每次都flush到目标存储中的,而是先放入到一个buffer空间里,等到buffer空间满了,再做一次flush出去的动作。这种情况和人们等车的例子极为类似,一辆车等人都上满了再开,才能保证更高的效率。但是这种缓冲设计模式还是存有一个主要弊端的,当缓冲数据满后将会阻塞住后面的数据...原创 2019-05-19 12:18:27 · 2787 阅读 · 6 评论 -
一个简单Table Cache的实现
文章目录前言Table Cache的作用Table Cache的核心要点:数据访问的一致性Table Cache的样例实现Full Table Cache的实现Partial Table Cache的实现引用前言在数据存储中,比较常见的一种存储形式是以表的形式进行数据的存储。表由一条条的数据记录所构成。当然,我们也会对表内的数据做各种维度的分析或者更新处理等等。而在这些过程中,我们免不了会对...原创 2019-07-27 22:43:09 · 1814 阅读 · 0 评论 -
基于状态机方法构建高容错性服务
文章目录前言状态机理论和系统容错性的关联状态机理论状态机方法论的实际应用前言当今技术进步更新十分的块,外界环境的变化对系统服务提出了更高的要求。传统中心集中式的系统服务管理模式越来越暴露出其不足之处,诸如单点瓶颈问题,不可容错等等。因此分布式的且具有高容错性的服务设计理念应运而生。分布式的服务设计意味着其中会涉及到不同服务之间的通信协调,但同时分布式的服务部署在一定层面带来了更高的系统容错度...原创 2019-08-01 23:25:46 · 838 阅读 · 0 评论 -
分布式系统阅读笔记(七)-----操作系统的支持
介绍)前面主要介绍了一些直接通信和间接通信,包括一些中间件的一些技术,这次我学习的内容是层级再往下,用一句话形式就是:在分布式系统中的操作系统级别对于中间件的支持。在这篇中,主要关注与操作系统级别对于通信的一些支持,包括RPC这样的远程调用等。操作系统的层次)操作系统是一个凌驾于纯硬件资源上面的一个软件系统,封装了对于硬件的抽象,在上面有内存管理,I/O管理,CPU的管理等等。1.原创 2014-12-27 15:42:17 · 2150 阅读 · 0 评论 -
分布式系统阅读笔记(五)-----远程调用
介绍)这篇笔记主要讲的是远程调用的主要2种形式,RPC(远程过程调用),RMI(远程方法调用),这2种方法作为远程调用的实现形式,对于我们理解他们的过程非常有用。请求回复协议)在远程调用中,一个很重要的概念是啊请求回复协议,由客户端发送Request到服务端,服务端执行好操作之后,把结果在回传到客户端上,就完成了一个基本的调用过程。这里有几点比较重要的概念:1.消息标识别。这里指的原创 2014-12-24 09:31:04 · 2839 阅读 · 0 评论 -
分布式系统阅读笔记(十二)-----分布式文件系统
一、介绍一个分布式系统本质上就是一段程序能够存储和访问远程文件就像访问本地文件类似,能够允许任何连上网络上的用户都可以访问。在后面的记录中,主要是对2大文件系统NFS和AFS做详细的介绍和分析。1、文件系统在最初的设计时往往是按照中心结点服务的方式构建,在中心节点服务器中保持着大量的文件资源。2、对于文件系统的分块有下面的分法:1、目录模块。2、文件模块。3、访问控制模块。4、文件访问原创 2015-01-06 15:17:40 · 3031 阅读 · 0 评论 -
分布式系统阅读笔记(一)-----分布式系统的特征
1)引言从今天开始,我将会开始学习分布式系统的一些理论知识,全方面的重新学习分布式的各个技术点,所以选用了原版本的英文教材>作为学习的资源。在期间,我会没读完一章,及时的做一些阅读的笔记,1个是怕自己忘了,还有一个是把知识分享给大家,这也是我首次阅读全英文的书籍,还是挺吃力的,希望能坚持把长达1000页的书籍学习完把。2)分布式系统的介绍分布式系统是通过网络连接各个计算机,通过消息通信原创 2014-12-18 13:18:17 · 5949 阅读 · 0 评论 -
分布式系统阅读笔记(十三)-----命名服务
介绍这篇笔记将要讲述的是命名服务,命名服务用一句话说就是帮助客户端进行资源的定位通过给定他们的名字的方式,与命名服务十分类似的,这里还会提到目录服务,具体的说是可以通过属性查找,后面将会以DNS,GNS等为例子。1、在这里说的名字是指与对应的对象进行了绑定的关系,而属性指的是对象与多个属性值进行了关联。在DNS中,IP地址与域名进行了绑定,在CORBA中,将对象的名字与对象的引用进行了映射原创 2015-01-08 16:50:46 · 5479 阅读 · 0 评论 -
分布式系统阅读笔记(二)----系统模型
1)引言这篇笔记将为你讲述在分布式系统中经常会提到的3种模型结构,而且也用在了很多的方面。2)介绍主要分为3个:1.物理模型,就是对于底层物理机子的一层包装。2.结构模型,由一系列的用于计算和通信的节点所组成3.基本模型,基本模型涵盖的方面是非常多的,具体细分可以有安全模型,用于沟通等的交互模型。3)物理模型简单的就一句话描述:由分布式系统中的底层的硬件设置组成的一原创 2014-12-19 15:44:35 · 3273 阅读 · 0 评论 -
分布式系统阅读笔记(三)-----计算机网络和网络互连技术
1)介绍当前网络在分布式系统中的主要问题有2个,1个是延时问题,还有一个数据传输速率的问题,后者可能受各方面的因素影响,比如网络总带宽的限制等。下面列表几个在分布式网络系统中的几个主要可能的讨论点:1.扩展性。2.可靠性。3.安全性。4.网络移动性。5.网络服务质量。6.多播传送。2)网络类型网络的类型有下面几种1.PAN,私人区域网络,是本地网络的一个子集原创 2014-12-21 16:06:50 · 2776 阅读 · 0 评论 -
分布式系统阅读笔记(四)-----进程间通信
介绍)进程间通信的方式里包含了非常多的内容,比如用于实现进程间通信需要用到许多协议提供的API,在进程间的远程方法的调用上需要的约定一定的数据格式,这就衍生出了数据集中编组的一种方式。还有多播网络技术和对于特定应用的虚拟网络技术。协议的相关API)为了实现进程间通信中,根据不同类型的通信方式,系统有不同的API和类。进程间通信,离不开send process,和receive proc原创 2014-12-22 21:14:41 · 3645 阅读 · 0 评论 -
分布式系统阅读笔记(十四)-----时钟和全局状态
介绍在分布式系统中,时间是一个巨大的问题,因为在不同的电脑上会有他们自己的物理时间,如何做到状态事务的一致性往往比较难。缺少一个全局的物理时间使得很难去发现一段分布式程序的执行的状态是如何。时钟,事件,进程状态和时间同步算法小标题中提到的3个 名次在分布式的时间中出现最多频率的词。如何同步不同机器上的物理时间呢,下面简单的列举几个算法1、一个叫Cristian方法同步物理时间的办法原创 2015-01-12 11:22:26 · 5306 阅读 · 0 评论 -
分布式系统阅读笔记(十五)-----协调和一致性
介绍这里说的协调和一致性指的是在分布式系统的环境下,对于多进程访问共享资源的一个协调和数据状态的一致性的保证。其中的措施包括分布式的共有排除机理,在组通信中的协调和一致性的手段,还有这其中可能会出现的一些问题。在整个协调服务的过程中,有一个东西非常重要,就是失败的监听,这里需要一个失败监听器。可以用一个进程作为失败监听进程,都其他的进行进行监听,方式可以通过类似心跳机制,发送消息证明自己目前是原创 2015-01-14 14:17:00 · 3071 阅读 · 0 评论 -
fastJson解析框架的学习
最近偶然间看到了以前写过的代码,发现了以前用的非常频繁的json解析框架fastjson。这个框架的确非常方便,帮助开发者省了很多的人工代码。以前那是因为没有时间写学习其中的原理,周末抽了点时间分析了下他的源码,可以作为不错的json解析框架的资料。主要分为2个步骤,1个是对象转json字符串,还有1个是json字符转对象的处理。fastjson介绍fastjson是阿里巴巴内部的json原创 2014-12-08 20:27:25 · 12097 阅读 · 2 评论 -
分布式系统阅读笔记(六)-----间接通信
介绍)这次的内容其实与上篇学习的内容正好是相对的,之前的各种通讯方式其实说的都是直接通讯,而这次我学习的内容是间接通讯,二者的本质区别在于间接通讯把时间和空间进行了分离,直接通讯在这2点上都进行了耦合,有点事操作直接简单,但是缺点也是非常明显的,扩展性差,不能很好的面对变化。根据空间和时间2个维点,可以有4种不同的类型的通信方式,时间的分离是这样的形式:消息的本质在传送的过程中有一定的生存时间原创 2014-12-25 19:46:40 · 3539 阅读 · 0 评论 -
浅谈设计模式
随着对于编程的越来越深入,原创 2014-08-04 15:57:10 · 1912 阅读 · 0 评论