深入理解分布式系统(五)分布式事务
分布式事务 5.1 什么是分布式事务 ACID: 原子性(Atomicity):一个事务被视为一个不可分割的最小工作单位,事务中的所有操作要么全部完成,要么全部撤销回滚,不允许出现部分完成的情况。 一致性(Consistency):事务开始前和结束后,数据库必须处于一致的状态,即事务执行后所得的结果必须符合预期的规定的结构和约束条件。 隔离性(Isolation):多个事务相互隔离不受干扰,每个事务只能“看到”其所执行的数据和其他事务已提交的数据,而看不到其他事务未提交的数据。 持久性(Durability):一个事务提交后,它对数据库的改变必须被永久保存到数据库中,即使出现断电等故障,其对数据库的改变也不能丢失。 分布式事务两种变体: 同一份数据需要在多个副本上更新,一个分布式事务需要更新所有的副本,如果有的节点提交了事务,有的节点回滚了事务,那么这样的结果对于用户来说是无法接受的。(可利用单主复制解决) 数据进行了分区,事务跨越多个节点,还要同时保证整体数据一致和事务的ACID属性。(常见且重点) 分布式事务通常不讨论ACID中的一致性。 想要实现持久性,只需在向客户...
深入理解分布式系统(六)时间和事件顺序
时间和事件顺序 6.1 物理时钟 机械时钟 石英时钟 原子钟:原子共振频率标准来计算 GPS 6.2 时钟同步 NTP:(430条消息) NTP详解(网络时间协议)_127.127.1.0 ntp含义_思福迪小白的博客-CSDN博客 针对NTP同步导致时间回退甚至是负数的情况–单调时钟,保证返回的时间严格单调增长 Cloudflare没用单调时钟,而是在发现时间差为负数或者0时变为一个默认值(golang没暴露单调时钟) 单调时钟的局限性:以自身所在的计算机的某个时间为起点,也就是说,来自同一个节点的单调时钟才有意义。 如何发明分布式系统中的单调时钟? 6.3 逻辑时钟 Lamport Clock Happens-Before: if a->b if a and b are in the same process, and a is before b, then a->b if a is the event that sends a message , b is the event that receives the message, then a->...
深入理解分布式系统(四)分布式共识
分布式共识 4.1 分布式共识简介 分布式共识(Distributed Consensus)是指在分布式系统中,多个节点(或进程)协同完成某个任务或达成某个决策的过程。在这个过程中,每个节点需要就该任务或决策达成一致,并且能够互相通信、协调、协作。 分布式共识的一个重要应用是在区块链技术中,用于解决双花问题(Double-spending problem)和确定哪些交易会被写入区块链。比特币等加密货币就是通过共识算法来实现去中心化的交易记录。 常见的分布式共识算法包括拜占庭将军问题(Byzantine fault tolerance, BFT)、Raft、Paxos、Proof of Work(PoW)、Proof of Stake(PoS)等。这些算法都有各自的优缺点,适用于不同的场景。例如,PoW 算法被应用在比特币等加密货币中,而 PoS 算法则被用在以太坊等区块链平台中。 4.1.1 什么是分布式共识 分布式共识是指在一个分布式系统中,多个节点之间需要就某些决策达成一致意见的过程。在这个过程中,各个节点通过相互通信和协作来达成共识,以保证系统能够正常运作并避免出现错误或冲...
P4&SRV6
B-EP2 背景:互联网变得臃肿,网络管理员迫切需要一种快速高效的网络遥测方案,能够利用采集到的实时准确的网络状态信息来快速检测和定位常见网络故障,然后需要一个有效的网络控制和管理(NC&M)方案,以实现只能及时决策以在网络路径上梳理和路由流量,以同时实现高效的利用和高质量的服务(QoS)。 采集网络信息,定位故障 有效的网络控制和管理方案 (465条消息) P4学习笔记(一)初识P4_p4接口是干嘛的_程序员学编程的博客-CSDN博客 基于P4的主动遥测 探针代替数据分组进行遥测,降低了遥测开销(因为数组分组比如INT即带内网络遥测(460条消息) 带内网络遥测INT–In-band Network Telemetry_袁冬至的博客-CSDN博客 https://www.sdnlab.com/23822.html (465条消息) Telemetry 技术概述_LeocenaY的博客-CSDN博客 ,在转发数据分组时能够在数据在网络结构流动的过程中,通过在路径中间节点插入元数据,监控系统可以通过这些元数据进行收集网络状态,但这样载荷比就大),INT之类的带...
保研复习准备
保研 (453条消息) 2021年计算机保研面试题_一个主机将两个端口接到网络上是否会提升吞吐量_Challow的博客-CSDN博客 (453条消息) 吐血整理,20个计算机保研常见问题及回答模板_计算机专业20个面试常见问题_Baoyan_cs的博客-CSDN博客 [(453条消息) 2021计算机保研经历(清软, 北深, 浙大, 南大, 中科大, 北航, 哈深, 南开, 华科, 武大, 中大)_inicho的博客-CSDN博客](https://blog.csdn.net/qq_43280818/article/details/123450451?ops_request_misc=&request_id=&biz_id=102&utm_term=计算机网络 保研&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-9-123450451.142^v87^insert_down28,239^v2^insert_chatgpt&spm=...
Java刷题
Java 2024年 Java 面试八股文(20w字)_java八股文2023-CSDN博客 SQL SQL 50 题(MySQL 版,包括建库建表、插入数据等完整过程,适合复习 SQL 知识点)_sql50题-CSDN博客 SQL常见语句及用法_sql语句大全及用法-CSDN博客 SQL中的 聚合函数 ,where ,having_where后面可以跟聚合函数吗-CSDN博客 Spring 面试被问了几百遍的 IOC 和 AOP ,一篇文章带你搞清楚!!!_ioc和aop的原理面试-CSDN博客 Sentinel sentinel (史上最全)-CSDN博客 Gradle&Maven gradle中的build script详解_gradle buildscript-CSDN博客 [Gradle和Maven的区别-CSDN博客](https://blog.csdn.net/weixin_45626288/article/details/131973787?ops_request_misc={"request_id"%3A"172024305...
保研经验贴
保研经验贴 背景 今天被两三个25届的同学问到保研的事 尘封许久的记忆再次打开 再次汇总了之前收到的所有信息和仅存的记忆 给一点模板上的参考 注:是疫情解封后第一次线下 故之前很多经验贴没有参考性 bg: 985本SE rank: 3/181 3.99/4.00 论文: 无 竞赛: 双国三 双省一 一省三 n校奖 奖学金: 两年国奖 方向: 分布式系统/存储 偏架构和系统设计方向 实习: 某自驾公司地图存储系统/字节抖音电商开发岗 由于夏令营已经上岸 故没有参加后续预推免 入营: 夏令营: ①北大计算机 直博(放弃且意愿不强 真不想读博) ②北大软微 硕士(计算机学院组➕老师 最终去向) ③中国科学院计算所 硕士 ④上海交通大学电院 硕士 ⑤南京大学计算机学院 硕士 ⑥北京航空航天大学计算机学院 硕士(放弃) ⑦中国人民大学信院 硕士 ⑧西安交通大学计算机学院 硕士 被拒: ①复旦大学计算机学院(只要第一我也没办法) 参加: 由于在实习真抽不开时间去其他地方参营 ①北大软微 ②北航计算机 ③南大计算机(参加了部分 获得软件所的通过了但后面不是很想去参加了…跟北大有冲突也是个重要原...
关于动态规划/性价比/背包问题的思考
关于动态规划/性价比/背包问题的思考 01背包本质上就可以用空间换时间,动规本质上也是那空间换时间,本身也就是一个贪心算法,所以 01背包<–>贪心<–>动态规划 如果说是0-1背包问题,需要逆序更新,原因是东西只有一个,不能影响之前的部分 如果是东西有无数个,则直接顺序更新 如果东西是牛奶之类的,有性价比,并且可以买非整数数量的,可以退化为贪心来做,结构体:数量,价格,性价比,sort一下就完事儿了。 讲究序列(排列问题),先遍历背包,不要求序列(组合问题),先遍历物品 滚动数组 另外,0-1背包要求倒序,若要求组合而非排列,即为先物品,再背包,且倒顺序,滚动数组添加 而且,如果是算有多少种,直接加就行,dp[0]=1,其他为0 123dp[j]+=dp[j-nums[i]] //这里怎么去理解呢,会导致重复吗? //不会重复 如果是要算最多/最少,还要min和max比较 1dp[j]=max(dp[j],dp[j-nums[i]]+value[i]) [(425条消息) 背包问题(背包九讲)_你好世界wxx的博客-CSDN博客](https...
保研夏令营他人经验总结
保研夏令营 准备 CSP,最好300+?(对于北航有效) 报名一般5月开始,联系老师建议4月 入营 主要看成绩,高质量科研成果加分,实习经历、获奖无用,入营后成绩影响不大(rank1可加印象分)——郑博文 清北上交学硕rank1都不一定进得去 都留给本校学生了 复旦卡rank1 南大比较海rank5/6好像就行 中科大有点歧视非计科出身,软院入营看运气 自动化所要rank1/2 计算所联系老师 清深热门专业也比较难入 其他方向还好 北大整个都是联系老师流的 浙大夏令营没有学硕,就不说了 清华也没学硕,直博也不给offer 人大高瓴要rank1/2 ——郑博文 机试 非常不推荐力扣(不需要自己设计数据结构、不需要自己处理输入输出),不推荐其他语言 语言:C++ 平台:洛谷、AcWing ——郑博文 狠抓,因为很多学校都因为这个初筛,人工智能机试卷中卷,尽量现在就连起来 leetcode(主要看思想) pat要相对难一点,重点!!!要看输入输出;在保研成绩稳的情况下,准备机试(我摔了很多次的地方一定要在强调很多遍) 数据结构——刘...
深入理解分布式系统(一)认识分布式系统
认识分布式系统 1.1 什么是分布式系统 定义: 分布式系统指的是由多台计算机组成的系统,这些计算机通过网络连接起来,协同工作以实现共同的目标。在分布式系统中,各个计算机之间相互独立,同时也需要协同工作来处理大量的数据和任务。分布式系统可以包括不同类型的计算机,包括服务器、台式机、移动设备等等。 分布式系统的一个主要特点是其高度的可扩展性,可以随着需求增长而增加计算机的数量。分布式系统还具有高可靠性,因为即使其中一个计算机发生故障,系统也可以继续运行,不会因为单一点的故障而完全崩溃。分布式系统还可以提供更好的性能和更快的响应时间,因为可以将任务分配给多个计算机并行处理,而不是依靠单个计算机来处理所有任务。 分布式系统的应用非常广泛,包括云计算、大数据处理、分布式数据库、分布式存储系统、分布式搜索引擎等等。 1.2 为什么需要分布式系统 分布式系统是由多个独立计算机组成的网络,这些计算机通过网络互相通信和协调,共同完成某些任务或提供某些服务。分布式系统之所以重要,是因为它可以带来以下几个好处: 可靠性:分布式系统可以提高系统的可靠性,因为它可以在某个节点或多个节点发生故障的情况下...









