DistributeSystem
文章平均质量分 93
哲米
深挖程序世界的各种疑难杂症
展开
-
并发编程技术
阻塞式IO非阻塞式IOIO复用(select 和 poll)信号驱动式IO(SIGIO)异步IO(POSIX的aio_系列函数)linux 中最常用的 IO 模型是同步 IO,在这个模型中,请求发出后应用程序会阻塞直到满足条件(阻塞 IO),或在不满足条件的情况下立即返回出错(非阻塞 IO),这样做的好处是程序在等待 IO 请求完成时不会占用 CPU。POSIX 定义了异步 IO 应用程序接口(AIO API),linux 2.6 以上版本的内核也实现了内核级别的异步 IO 调用。...原创 2022-08-28 13:02:25 · 1331 阅读 · 1 评论 -
分布式系统
分布式技术的算法和基本理论原创 2022-01-09 17:17:47 · 260 阅读 · 0 评论 -
分布式专题 - Rocksdb
1.RocksDB 简介RocksDB 是由 Facebook 基于 LevelDB 开发的一款提供键值存储与读写功能的数据库软件,旨在充分实现快存上存储数据的服务能力。 RocksDB是一个c++库,可以用来存储keys和values,且keys和values可以是任意的字节流,支持原子的读和写; RocksDB是一个基于LSM-Tree 存储引擎实现的数据库架构,LSM 通过 将磁盘的随机写转化为顺序写来提高写性能,而付出的代价就是牺牲部分读性能 、 写放大; RocksDB 所有的数据在引.原创 2020-11-06 20:12:02 · 1951 阅读 · 0 评论 -
服务端高并发分布式架构演进之路
1、概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2、基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍。1)什么是分布式?系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上。2)什么是高可转载 2020-10-27 09:55:01 · 468 阅读 · 0 评论 -
Introduction to the Storage Performance Development Kit (SPDK)
IntroductionSolid-state storage media is in the process of taking over the data center. Current- generation flash storage enjoys significant advantages in performance, power consumption, and rack density over rotational media. These advantages will conti转载 2020-08-31 12:04:54 · 734 阅读 · 0 评论 -
Google三大论文之 - GFS
摘要我们设计并实现了 Google GFS 文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。 GFS 虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。虽然 GFS 的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础的,不管现在还是将来,GFS 和早期的分布式文件系统的设想都有明显的不同。所以我们重新审视了传统文件系统在设计上的折衷选择,衍生出了完全不同的设计思路。原创 2020-06-27 16:10:46 · 525 阅读 · 0 评论 -
Google三大论文之 - BigTable
1 摘要Bigtable 是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的 PB 级的数据。Google 的很多项目使用 Bigtable 存储数据,包括 Web 索引、Google Earth、Google Finance。这些应用对 Bigtable 提出的要求差异非常大,无论是在数据量上(从 URL 到网页到卫星图像)还是在响应速度上(从后端的批量处理到实时数据服务)。尽管应用需求差异很大,但是,针对 Google 的这些产品,Bigtable 还是原创 2020-06-27 12:08:57 · 1246 阅读 · 0 评论 -
分布式专题 - LevelDB
LSMT是一个在分布式系统当中应用非常广泛,并且原理直观简单的数据结构。在上一篇文章当中我们进行了详细的讨论,有所遗忘或者是新关注的同学可以点击下方的链接回顾一下上一讲的内容。leveldb简介上一篇的内容我们介绍的算是最基础版本的LSMT,在这一篇当中,我们来具体看下levelDB这个经典的KV数据库引擎当中LSMT的使用以及优化。leveldb,既然是叫做db,显然和数据库有关。和一般的关系型数据库不同,它内部的数据全部以KV也就是key-value形式存储,并且不支持结构化的SQL进行数据转载 2020-06-18 21:00:15 · 1097 阅读 · 1 评论 -
分布式专题 - Raft(寻找一种易于理解的一致性算法(扩展版))
摘要Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一个用户研究的结果可以证明,对于学生而言,Raft 算法比 Paxos 算法更加容易学习。Raft 算法还包括一个新的机制来允许集群成员的动态改变,它利用重.原创 2020-06-27 12:31:53 · 785 阅读 · 0 评论 -
分布式系统的微服务架构实现
fastcgi + rpc + server原创 2019-10-19 13:02:49 · 116 阅读 · 0 评论