E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
DDIA
DDIA
笔记—第六章 数据分区
第六章数据分区数据分区与数据复制分区通常与复制结合使用,即每个分区在多个节点都存在副本,这就意味着某条记录属于特定的分区,而同样的内容会保存在不同的节点上以提高系统的容错性。每个节点同时充当某些分区的主副本和其他分区的从副本:如何进行分区?如何决定哪些记录放在哪些节点上?分区的主要目的是将数据和查询负载均匀的分布在所有节点上。如果分区不均匀,则会出现某些分区节点比其他分区承担更多的数据量和查询负载
会飞的bird
·
2023-03-29 22:30
DDIA
分布式存储
ddia
-读书笔记 第五章 数据复制
复制主要是指通过网络在多台机器上保存相同的副本,来达到以下目的高可用:部分故障,依然可用连接断开与容错:允许程序在网络中断时继续工作低延迟:数据放在离用户较近的地方可扩展:多副本读取本章假设每个副本保存完整数据,第六章再讨论分区三种流行的复制数据变化的方法主从复制主副本写,从副本只读复制方式同步复制异步复制需要考虑的问题新加从节点节点失效异步复制滞后,通过以下一致性模型来处理写后读一致性:保证用户
J贝
·
2023-03-29 22:56
读书笔记
分布式存储
数据库
设计数据密集型应用(五),
DDIA
七、批处理7.1-关于衍生数据第三部分的内容,主要讨论将多个不同数据系统(有着不同的数据模型,并针对不同的访问模式进行优化)集成为一个协调一致的应用架构时,会遇到的问题。从高层次看,存储和记录数据系统分为2大类:️记录系统(Systemofrecord):数据的权威版本(如果其他系统和记录系统之间存在任何差异,那么记录系统中的值是正确的)️衍生数据系统(Deriveddatasystems):通常
屏占比
·
2023-03-29 22:25
大数据
大数据
数据库
分布式
设计数据密集型应用(六),
DDIA
八、流处理流处理和批处理最原始的区别在于,流处理处理无界数据,而批处理针对有界数据。在流处理中的上下文中,记录通常被叫做事件,一个事件由生产者(producer)/发布者(publisher)/发送者(sender)生成一次,然后可能由多个消费者(consumer)/订阅者(subscribers)/接收者(recipients)进行处理。流处理的目标是事件发生后,立刻得到处理。流处理中相关的事件
屏占比
·
2023-03-29 22:25
大数据
数据库
分布式
大数据
设计数据密集型应用(四),
DDIA
六、第9章节-一致性与共识构建容错系统的最好方法,是找到一些带有实用保证的通用抽象,实现一次,然后让应用依赖这些保证。比如通过使用事务这个抽象,应用可以假装没有崩溃(原子性),没有其他人同时访问数据库(隔离性),存储设备是完全可靠的(持久性)。即使发生崩溃,竞态条件和磁盘故障,事务抽象隐藏了这些问题,因此应用不必担心它们同样的分布式系统最重要的抽象之一就是共识(consensus):其非正式定义是
屏占比
·
2023-03-29 22:55
大数据
大数据
数据库
分布式
共识算法
数据密集型应用系统设计(
DDIA
)读书笔记(6~9章)
文章目录前言一、数据分区二、事务三、分布式系统的挑战四、一致性与共识参考文档前言已经读完本书的第二部分了,发现第一篇读书笔记中的第5章应该放到这一篇来的,算了,有空改一下目前读到这儿的最大感受是,共鸣非常多,就是平时有很多耳熟而不一定能详的名词术语,在本书中都有多次提及并进行了详细的讨论(例如:数据分区,事务,ACID,分布式系统,CAP理论,两阶段提交,ZooKeeper等)如果还在犹豫要不要读
皇家茶壶
·
2023-03-29 21:24
读书
DDIA
读书笔记 6 数据分区
6数据分区6.1数据分区与数据复制面对海量数据集或者非常高的查询压力,只使用复制技术还不够,需要将数据分区,也称为分片分区通常和复制结合使用6.2键值数据的分区目标:将数据和查询负载均匀分布在所有节点上。负载不均匀的情况称为倾斜,基于范围区间和基于哈希值的方法都无法有效解决该问题,需要开发者在应用层解决6.2.1基于关键字区间分区基于关键字的区间范围来分区代表产品:Bigtable,HBase,R
JackComeOn
·
2023-03-29 21:48
DDIA
读书笔记 | 第五章:复制
问题引出一、共享架构垂直伸缩、向上伸缩1.共享内存架构特点:所有的组件都可以看作一台单独的机器,许多处理器,内存和磁盘可以在同一个操作系统下相互连接,快速的相互连接允许任意处理器访问内存或磁盘的任意部分分区:在大型机中,尽管任意处理器都可以访问内存的任意部分,但总有一些内存区域与一些处理器更接近(称为非均匀内存访问)。为了有效利用这种架构特性,需要对处理进行细分,以便每个处理器主要访问临近的内存,
我是真的菜啊啊
·
2023-03-29 21:39
DDIA读书总结
数据库
分布式
架构
DDIA
读书笔记 7.2 弱隔离级别
Designfordataintensiveapplication读书笔记第七章第二节第二节:弱隔离级别(Weakisolationlevels)当两个transaction不触及相同数据的时候,可以彼此并行处理.但当触及相同数据的时候就会有并发问题(Concurrencyissues,raceconditions)长期以来,数据库开发人员试图去通去提供transactionisolation来解
尚无花名
·
2023-03-25 22:03
ddia
第六章 分区
定义分区:在Mongo/ES和Solr被称为分片(shard),在HBase中称为区域(Region),Bigtable中是表块(tablet),Cassandra和Riak中是虚节点(vnode),Counchbase中叫做虚桶(vBucket).分区主要是为了可扩展性,不同的分区可以放在非共享集群的不同节点上,每个节点可以独立执行对自己的查询.分区通常与复制结合,使得每个分区副本存储在多个节点
寻找傅里叶
·
2023-03-21 20:44
书籍阅读列表
生活把时间当做朋友1怦然心动的人生整理魔法0.2穷查理宝典(穷查理年鉴)哲学西方哲学史技术
DDIA
重构设计模式
黑魔术师
·
2023-03-15 21:27
DDIA
读书笔记第五章——复制
分布式系统中采用复制的原因:1、提高可用性:冗余容错2、降低延迟:使得数据与用户更接近3、提高读吞吐:水平扩展可以接受读请求的机器数量如果数据只读,那么复制做起来很简单,设计系统时可以考虑这点,比如LSMtree。难点在于数据可以变更,怎样保证副本上的数据一致性。常见的三种复制算法:单领导者、多领导者、无领导者设置复制时的取舍:同步复制or异步复制,复制失败时如何处理领导者与跟随者存储冗余数据的成
fayadexinqing
·
2023-02-05 04:40
DDIA读书笔记
分布式
系统架构
数据库
DDIA
Ch8
UnreliableClocks这一章重点就是clocksynchronizationistricky(evenforNTP)thereisleapsecondetc主要是VM的问题,因为VM通常是由host来分配时间片,那么咋没有轮到他的时候,他的clock是虚拟的,然后轮到他的时候他就会看到自己的时间jumpforwardInvirtualmachines,thehardwareclockis
Wilbur_
·
2023-02-04 12:11
DDIA
Ch10
MapReduceMapReduce就是分布式的unixtools,如果他是在一台机器上跑,那就是unixpipeHadoopimplementationofMapReduce,thatfilesystemiscalledHDFS(HadoopDistributedFileSystem),anopensourcereimplementationofGoogleFileSystem(GFS)Vari
Wilbur_
·
2023-02-01 14:57
2022 年终总结
除此之外,看了两本书,一本
ddia
(数据密集型设计),凤凰架构。这两本挺不错的。练
·
2023-01-19 17:39
程序员
Replication(上):常见的复制模型&分布式系统的挑战
本系列文章分上下两篇,以《数据密集型应用系统设计(
DDIA
)》(下文简称《
DDIA
》)为主线,文中的核心理论讲解与图片来自于此书。
美团技术团队
·
2022-11-15 19:09
分布式
hashtable
控制器
uefi
labview
Replication(上):常见复制模型&分布式系统挑战
本系列文章分上下两篇,以《数据密集型应用系统设计(
DDIA
)》(下文简称《
DDIA
》)为主线,文中的核心理论讲解与图片来自于此书。
·
2022-09-01 16:07
美团后端大数据
随便看看
ddia
(完)
第一部分第一章1.讲了一个现代应用系统的基本架构和对软件来讲至关重要的三个问题:可靠性,可扩展性,可维护性。中位数的性能判定法。总之哦,好像和我这种搬砖的离的太远了。还有扩展在水平(加机器)和垂直(升级机器)之间做取舍。第二章1.nosql的诞生讲了一下nosql的诞生和其优点:更好的可伸缩和更大的吞吐量,以及一些关系所不支持的特殊的查询操作.2.对象关系不匹配即数据库存储的结构(table)和应
小王ovo
·
2022-08-29 16:33
Replication(上):常见复制模型&分布式系统挑战
本系列文章分上下两篇,以《数据密集型应用系统设计(
DDIA
)》(下文简称《
DDIA
》)为主线,文中的核心理论讲解与图片来自于此书。
·
2022-08-29 14:12
后端数据美团
一个程序的自我修养「GitHub 热点速览 v.22.19」
知其然知其所以然,
DDIA
则带你了解数据库设计背后的思考。更甚者,你对数据背后的验证有兴趣,你可以通
削微寒
·
2022-05-09 08:00
DDIA
5. 数据分区
目录范围分区vs哈希分区二级索引的全局所以和分区索引分区重平衡(海量,动态,按节点比例)请求路由(3种router方案,zookeepervsgossip)image.png分区策略数据分区的目的是:将数据和查询负载均匀地分布在节点上。(其实副本也有同样的效果,取决于副本同步机制)而如果数据分区不公平,则会出现某些分区的数据或查询比其他分区要多,我们称之为偏斜。数据偏斜就使得分区效果变差,导致负载
西部小笼包
·
2022-02-17 02:15
DDIA
Ch9
ConsistencyGuarantees主要还是要了解更强的consistencymodels,oncewehaveseenit,wewillbeinabetterpositiontodecidewhichonebestfitsourneeds.Butwhilethereissomeoverlap,theyaremostlyindependentconcerns:transactionisola
Wilbur_
·
2022-01-29 11:45
设计数据密集型应用-Data-Intensive Application_王 炸的博客-CSDN博客
不懂数据库的全栈工程师不是好架构师——Vonng周六停更SpringBoot从入门到实践系列教程读一本好书《设计数据密集型应用》-DesigningData-IntensiveApplication简称:
DDIA
·
2021-08-17 22:00
DDIA
7. 分布式系统的麻烦
目录局部故障(部分失效是不确定性的)不可靠的网络(超时的3种情况,tradeoff超时间隔太长或太短的问题)不可靠的时钟(单调钟vs时钟,事件的时间戳排序的问题)不可靠的租约(栅栏令牌)不可靠的节点(拜占庭问题)故障当我们在使用单机系统时,它通常以一种相当可预测的方式工作:要么它正常工作,要么不工作。而当我们在使用分布式系统时,情况就不同了。在分布式系统中,系统的某些部分可能以某种不可预知的方式被
西部小笼包
·
2021-06-21 20:22
HBase是面向列还是面向行的存储?
其实按照MartinKleppmann在他的名著
DDIA
里面的说法,HBase的数据模型本质上还是行式存储。
小麦哥
·
2021-06-07 18:07
GitHub最火star174k!你能想象的编程书籍这里都有!免费开源!
直达链接:https://github.com/EbookFoundation/free-programming-books推荐链接https://github.com/Vonng/
ddia
JavaEdge.
·
2021-05-30 17:25
DDIA
-数据复制
综述首先介绍什么是复制,然后介绍了下主流的复制方式(主从),重点关注了主从复制的流程、技术实现及存在的问题。最后顺带介绍下另外两种复制方式基本理念,多主节点复制和无主节点复制。为什么要复制单台机器存储系统的容量是有限的,且无任何容错性。随着数据量越来越大,单台机器存储的系统越来越捉襟见肘,必然要进行扩展。分布式数据系统就是单机存储水平扩展自然而来,单机存储是简单的,分布式存储的复杂的,但对于因为分
构建者
·
2020-11-14 10:06
DDIA
-数据存储与检索
#日志结构存储引擎使用日志记录数据,仅支持追加形式的记录集合。#面向页的存储引擎#索引是基于原始数据派生而来的额外的数据结构,是为了快速定位想要的数据,也就是提高查询的性能。#在存储系统中重要的权衡设计:适当的索引可以加快读取速度,但是每个索引会减慢写的速度,两者需要根据实际进行权衡。#哈希索引:以键-值方式索引数据。#为什么日志采取追加方式,而不进行原地更新?1.追加和分段写主要是顺序写,比随机
构建者
·
2020-11-08 21:14
数据密集型应用系统设计(
DDIA
)读书笔记(1~5章)
文章目录前言一、可靠、可扩展、可维护的应用系统二、数据模型与查询语言三、数据存储与检索四、数据编码与演化五、分布式数据系统参考文档前言漫长的内功修炼过程,阅读过程中产生的读书笔记,可以看成是目录的升级版或者正文的简略版(笔记中详略均依据本人主观意见)每章的小结值得反复阅读一、可靠、可扩展、可维护的应用系统构成数据密集型系统的基本模块P11硬盘的平均无故障时间(MTTF)约为10~50年P15滚动升
皇家茶壶
·
2020-09-14 06:42
读书
分布式
DDIA
理解data model & data structure:I models
刚看完
DDIA
(DesigningData-IntensiveApplications)第一部分,介绍了datasystem的基础,如:三大原则,基本/常见的数据模型(models),数据存储结构(structures
vickeex
·
2020-08-22 19:03
[
DDIA
]Chap1可靠、可扩展且易维护系统
当前很多应用都是data-intensive型,而非compute-intensive。如存储数据后供其他应用访问(Database)记录一些比较重的操作的结果用以加速获取操作(Cache)支持用户通过关键词或者过滤器检索数据(searchindex)通过发消息到进程以异步化(streamprocessing)定期获取大量数据(batchprocessing)这些(data-intensive)应
牛奶路
·
2020-08-19 20:50
Amazon Dynamo:一个高可用性的键值服务
而且感觉
DDIA
第五章的无主节点
一个划水的人
·
2020-08-18 09:44
分布式
数据密集型应用系统设计(
DDIA
)读书笔记(10~12章)
文章目录前言十、派生数据十一、流处理系统十二、数据系统的未来前言最近活真是多,忙里偷闲,磨磨蹭蹭的终于把
DDIA
看完了,后面几章看起来说实话比较费劲,还是需要结合实践反复理解,最后一节讲到了道德约束,感觉就是像是武林前辈把绝世武功秘籍传授给你之后
皇家茶壶
·
2020-08-07 13:49
读书
LSM存储引擎基本原理
本文是阅读了
DDIA
的第三章后整理的读书笔记,总结了什么是LSM存储引擎,以及在实现上的一些细节优化。1什么是LSM?
weixin_33743248
·
2020-08-03 06:15
DDIA
第三章读书笔记 数据存储与检索(olap相关摘取)
索引索引可以加快读取速度。那为啥不对所有数据建索引呢建索引会带来额外的空间开销写数据的时候,需要更新索引。任何类型的索引都会降低写速度哈希索引bitcask存储引擎内存中维护hashmap,kv分别对应key和其在数据文件的字节偏移量。所以在文件中追加新的kv对的时候,还需要更新hashmap来反映刚写入数据的偏移量。比较适合key数量较少(足够全部放在内存中),但是value数量频繁更新,数量庞
小凯Alex
·
2020-07-31 10:09
数据库
《
DDIA
》读书笔记(一):可靠性、可扩展性、可维护性
这一节描述了密集型应用的基本思考方式。可靠性。意味着系统发生故障,也能保持正常的运行。故障会集中在三个方面,硬件故障(通常是随机和不相关的)、软件故障(通常是系统性的bug,较难发现,较难处理),人为故障(不可避免得时不时出错)。提供合理的容错技术能够隐藏某一些类型的故障。可扩展性。意味着在负载增加的情况下也有保持性能的策略。通过推特主页的时间线为例,描述了负载和性能之间的关系。在可扩展的系统下,
勤学996
·
2020-07-13 01:51
#
读
书/论文
笔记整理
(
DDIA
)数据存储与检索(三)——B-tree
翻译《DesigningData-IntensiveApplications》作者:MartinKleppmann译者:雨钓(有增改)B-Tree目前我们所讨论的日志结构的索引已经被广泛认可,但是他们却不是最普遍的索引类型。被用于构建索引的最普遍的数据结构于此有很大的不同,我们称之为:B-Tree在1970年引入,不到10年之后,已经发展到“无所不在”,B-trees经受住了时间的考验。它们仍然是
雨钓Moowei
·
2020-06-22 22:41
(
DDIA
)数据存储与检索(二)——LSM简介
一、SSTablesandLSM-Trees在图3-3中,每个日志结构的segment文件存储的都是键值对。这些key-value会按照他们被写入的顺序存储,并且在日志中后加的key-value的值更有用。现在我们可以对segment文件的格式做一个简单的更改。我们要求key-value对的序列按键排序。乍一看,这个要求似乎破坏了顺序写的优势,但我们马上就会讲到这样做是值得的。我们把这种格式称为S
雨钓Moowei
·
2020-04-07 13:25
分布式系统原理
分布式原理》链接:https://pan.baidu.com/s/1DrSwxnBKZzSqoyiqXu_OJw密码:rz2t更多书籍:《DesigningData-IntensiveApplication》
DDIA
-零
·
2020-04-05 11:00
DDIA
理解data model & data structure:II structures
上一篇留下了datastructure部分,在这里继续完成。开始前,先介绍涉及到的一个概念:数据仓库。DataWarehouse数据仓库数据库:服务于业务,进行基本的事务处理如数据的增删改查等操作。数据仓库:常用于商业用途,提供复杂的数据分析和决策支持,提供直观的查询结果OLTP,onlinetransactionprocessing:基于数据库的基本操作,对实时性要求比较高,需要高并发度。比如,
vickeex
·
2020-04-04 05:34
DDIA
9. 批处理
目录MapReduce工作流程MapReduce业务场景(Map端3连接)批处理的意义(分区,容错)MapReduce之后批处理是我们构建可靠、可扩展和可维护应用程序的重要组成部分。而谷歌在2004年发布的批处理算法:MapReduce,是处理大规模数据集的重要模型,虽然与为数据仓库专门开发的并行处理系统相比,MapReduce是一种相当低级的编程模型,但它依然对批处理的模型理解有很大的帮助,所以
西部小笼包
·
2020-02-20 21:45
DDIA
(一)
数据密集应用存储数据以便于再次使用——数据库存储开销较大的计算结果以便于加大读取速度——缓存通过关键字去索引和过滤——搜索引擎发消息给其他进程,异步的处理——流式处理周期的处理大量的积累的数据——批处理数据密集主要的考虑点:可靠性:reliable,在硬件或者软件甚至是认为错误的情况下仍然可以正确的工作。可伸缩:scalable,处理增长,当业务规模增大的时候能够可靠的方式处理。可维护:maint
崔瀚泽
·
2020-02-01 15:59
DDIA
(二)
数据模型:数据模型恐怕是开发软件中最重要的一部分,因为它不仅影响到软件如何编写,同时也影响我们如何去思考要解决的问题。在复杂的系统中会有很多的中间层,API通常构建在其他的API之上,但是基本的思路是一样的,屏蔽底层实现细节,提供一个一致的数据模型。NoSql的诞生:确切的说NoSQL是说NotOnlySQL,主要基于以下几个驱动力:更容易的水平扩展来解决大数据集和吞吐量的问题。关系型数据库不支持
崔瀚泽
·
2020-01-02 00:55
DDIA
6. 事务
目录理解ACID读已提交(行锁,handle脏读,脏写,更新丢失)不可重复读(快照隔离,handle读偏差)可序列化(2阶段锁定,间隙锁,可序列化快照隔离,解决写偏差,幻读)事务,作为一个简化访问数据库的应用程序的编程模型。通过使用事务,应用程序可以忽略某些潜在的错误场景和并发问题,由数据库负责处理它们。ACID原子性(Atomicity):一般来说,原子指的是不能分解成更小的部分的东西。如果写操
西部小笼包
·
2019-12-27 07:48
DDIA
读书笔记 第一章 可靠性,可扩展,可维护
可靠性程序按照预期运行有一定容错能力(用户使用方式错误)在预期的负载和数据量下,系统性能足够好预防未授权访问和滥用错误!=失败,我们只能保证容忍某些特定错误,提供容错性来尽量避免系统fail可以特意触发某种错误来检测我们系统的容错和errorhandling的能力(NetflixChaosMonkey)尽管我们更倾向于提高容错性而不是完全避免错误,如果涉及到安全性相关的场景,需要做到完全防范(错误
mualex
·
2019-12-23 03:53
【译】为什么永远都不要使用MongoDB Why You Should Never Use MongoDB
背景最近在学习
DDIA
(DesigningData-IntensiveApplications)这本分布式领域非常经典的入门书籍,里面第二章《数据模型与查询语言》,强调了一对多、多对一、多对多等各种不同的数据关系进行建模时要怎样选择合适的数据库模型
奔跑的猪0101
·
2019-11-30 22:00
从微信朋友圈的评论可见性,谈因果一致性在分布式系统中的应用
概述最近在读DesigningData-IntensiveApplication(简称
DDIA
)设计数据密集型应用,中文翻译,整体感觉翻译得还是不错的。
奔跑的猪0101
·
2019-11-21 20:00
LSM-tree入门
最近练手的项目里用到了LevelDB,具有很优秀的存储效率,
DDIA
中有介绍它底层是LSM-tree实现的,今天决定看看LSM-tree,给看到的文章做总结,也给自己想要动手写了好久的技术博客开个头吧。
SpaceZenMaster
·
2019-10-02 20:34
leveldb
LSM tree 入门
最近练手的项目里用到了LevelDB,具有很优秀的存储效率,
DDIA
中有介绍它底层是LSM-tree实现的,今天决定看看LSM-tree,给看到的文章做总结,也给自己想要动手写了好久的技术博客开个头吧。
芥川世之介
·
2019-10-02 19:10
设计数据密集型应用-Data-Intensive Application
不懂数据库的全栈工程师不是好架构师——Vonng周六停更SpringBoot从入门到实践系列教程读一本好书《设计数据密集型应用》-DesigningData-IntensiveApplication简称:
DDIA
我是王炸
·
2019-06-22 21:05
Java
上一页
1
2
3
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他