Andrew File System [安德鲁文件系统]
Andrew File System,最初是由CMU和IBM联合开发的分布式文件系统。按照在NFS中说的,系统最重要的是要先看它的目标是什么,对于AFS来说,目标只有一个large scale[大规模]。也就是说一个server能支持愈多的client越好。
Andrew File System,最初是由CMU和IBM联合开发的分布式文件系统。按照在NFS中说的,系统最重要的是要先看它的目标是什么,对于AFS来说,目标只有一个large scale[大规模]。也就是说一个server能支持愈多的client越好。
NFS最初是由Sun Microsystems公司提出,全名Sun Network Filesystem,旨在提供一个独立于机器和操作系统的能够快速从错误(crash,failure)中恢复的分布式文件系统。任何系统都要从这个系统的定位来看,也就是这个系统要达到什么目标。提出NFS的论文Design and Implemenatation of the Sun Network Fielsystem阐明,主要目标有五个:
Priority inversion[优先级反转,或者优先级翻转],单从字面理解可能会认为是CPU调度线程的时候,两个线程的优先级互换,这个理解也是我第一次听到这个词的想法,但是和真实意思相去甚远,写在这里,也是提醒自己凡事不要想当然。
在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同,比如客户端的一个重新连接函数,它可以不断执行直到成功连接上服务器,多次执行连接函数不会影响服务器的状态。但是客户端的对server的append操作就不是idempotent operation,因为每一次append操作都会对server进行修改从而改变server的状态。这个概念在分布式系统中发挥很大作用。
操作系统主要是用来屏蔽复杂的硬件细节,高校的管理计算机资源,并为用户提供丰富的程序接口。操作系统是随着硬件的发展而发展的。下面回顾了一些基本概念。
RDMA全称是Remote Direct Memory Access,中文翻译为远程直接数据存取。其核心理念就是通过RDMA硬件不经操作系统直接进行数据的传输,从而加快数据传输的性能。我使用的是InfiniBand RDMA[本文剩下地方RDMA都指的是InfiniBand],我从网上找到一个关于建立Server/Client通信的一个tutorial [see reference for copyright],虽然短,但是基本上关键点都进行了说明,这篇blog是我自己的根据tutorial完成后,对原文的翻译和自己的理解。
并行数据库[Parallel Database]是为了应对更高的数据吞吐要求而产生的数据库。它主要有三种架构模式:Shared Memory, Shared Disk,Shared Nothing。每种架构各有侧重,因为良好的scalability,Shared Nothing是目前主流的设计思路,Shared Disk在某些应用场景下也具有很大的优势,Shared Memory已经几乎没有用武之地了。Shared Memory, Shared Disk和Shared Nothing的架构实例如下图所示,
Anti-Caching的paper于2013年发表于VLDB [1]. 本文对其核心思想和实现方法做一个简单的总结,也算是自己的paper note [自己将Anti-Caching翻译成反缓存不知道合不合适?]。