(undone) MIT6.824 Lecture1 笔记
参考1MIT课程视频:https://www.bilibili.com/video/BV16f4y1z7kn/?spm_id_from=333.337.search-card.all.click&vd_source=7a1a0bc74158c6993c7355c5490fc600
参考2某大佬笔记:https://ashiamd.github.io/docsify-notes/#/study/%E5%88%86%E5%B8%83%E5%BC%8F%E7%AD%96%E7%95%A5/MIT6.824%E7%BD%91%E8%AF%BE%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-01
参考3mapreduce论文:https://pdos.csail.mit.edu/6.824/papers/mapreduce.pdf
参考42021MIT6.824schedule:http://nil.csail.mit.edu/6.824/2021/schedule.html
最近工作上遇到了一些高并发和一致性的问题,发现并行代码要写好、写的没有错误、DEBUG 真的很难。故决定学习 MIT6.824 来补充一下这方面的知识。
我们开始看 Lecture 1 吧,先来看教授的课程。
分布式系统的定义:多个计算机(而不是多处理器)通过网络连接,只能通过发送接收数据包交互,来合作提供一些服务。
分布式系统的意义:1.通过并行提高速度 2.容忍错误,一部分计算机宕机、其它计算机能继续工作 3.提高安全性。把安全相关的服务放在一台机子上,其它服务放在别的机子上
最直接的分布式系统应用:数千万人同时访问的网站,自然需要分布式系统提供服务
分布式系统中的难点:
1.许多并发的部分
2.当一部分计算机故障时,分布式系统应该能够使用剩余的计算机继续正常提供服务
3.想要实现分布式系统在理论上的性能优势并不容易
这门课的实验是模拟的,假装有很多台机器在运行服务,但实际上是在你自己的机子上单机跑。有兴趣可以看看是怎么实现的
分布式系统的主题有:
1.Fault tolerance (分为 available(部分机子宕机依然能运行) 和 recoverability (宕机的计算机能够恢复并重新加入工作))
2.Consistency 一致性。(并行、并发情况下,如何保证结果不会错误?并发 bug 是很常见的)
3.性能 Performance (包括 Throughput 和 latency)
性能和前两者往往冲突,所以这就需要工程上的 trade-off
教授简单介绍了 MapReduce:一种框架,让非专业人士能够轻易写分布式代码
以下是一个案例
如果让 N 台计算机去统计全世界所有书籍的各单词计数,那么比较好的方式是:
1.把所有 corpus 平均分成 N 份
2.每台计算机统计分给自己的 corpus,产出 <单词,计数> 键值对
3.所有计算机都产出键值对后,统一把这些键值对相加,得到最后的结果
前两步叫 Map,最后一步叫 Reduce
教授指出,最昂贵的步骤是 mapper 和 reducer 之间的 shuffle 操作,这个到论文中再仔细看吧
TODO:here
相关文章:

(undone) MIT6.824 Lecture1 笔记
参考1MIT课程视频:https://www.bilibili.com/video/BV16f4y1z7kn/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 参考2某大佬笔记:https://ashiamd.github.io/docsify-notes/#/study/%E5%88%86%E5%B8%83%…...
小白投资理财 - 开篇
小白投资理财 - 开篇 第一健身第二提升工作技能第三理财自律和规划 我认为的人生三件大事值得投资,一是强身健体,有个好身体;二是提升工作技能,不断学习工作领域里的新知识;三是投资理财,确保资产不贬值。 …...

高中还来得及选择信息学奥赛赛道吗?
随着信息学奥赛(NOI)在升学中的重要性日益凸显,越来越多的学生和家长将其视为进入顶尖高校的一个重要途径。然而,很多学生可能直到高中阶段才意识到信息学奥赛的重要性,或者才开始对编程产生兴趣。于是问题出现了&…...
01_OpenCV图片读取与展示
import cv2 img cv2.imread(夕阳.jpg, 1) #cv2.imshow(image, img) #此行只能命令行处py文件执行,会弹出一个视频窗口 #cv2.waitKey (0)以下会在jupyter Lab控件中显示读取的图像 #bgr8转jpeg格式 import enum import cv2def bgr8_to_jpeg(value, quality75):ret…...
C语言中的输入控制重要基础
在C语言编程中,处理输入数据是一个常见的任务。根据不同的情况,我们可以采用不同的输入控制方法。本文将介绍三类输入控制方式,分别是已知数据组数的输入、以特定符号结束的输入,以及以EOF结束的输入。 1. 已知数据组数的输入 在…...
Vue 学习
使用 vue 创建一个项目 检查是否已经安装了 npm 和 node npm --version node --version 使用 npm 安装 vue npm install -g vue/cli 检查 vue 工具是否安装成功 vue --version 使用 vue 工具创建一个名为 vue-router-syntax 的项目 这是命令行的创建方式 vue create vu…...

Redis集群的两种方式
1.Redis集群 1.1 搭建主从集群 单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写的分离。一般情况下,主节点负责写操作,从节点负责读操作。而从节点如何得知数据呢ÿ…...

QT--基础
将默认提供的程序都注释上意义 0101.pro QT core gui #QT表示要引入的类库 core:核心库 gui:图形化界面库 #如果要使用其他库类中的相关函数,则需要加对应的库类后,才能使用 greaterThan(QT_MAJOR_VERSION, 4): QT wid…...

一、前后端分离及drf的概念
1.1什么是前后端分离 程序角度 前后端不分离:一个程序(如django),接收请求处理HTML模版用户返回 前后端分离:两个程序 --前端:vue.js/react.js/angular.js --后端:Django drf(django rest framework) 2.专业角度 --…...

AI垃圾溢出识别摄像机
随着城市化进程的加快,垃圾处理成为城市管理中的一项重要工作。然而,垃圾桶溢出现象经常发生,给城市环境卫生和市民生活带来不便。为了解决这一问题,AI垃圾溢出识别摄像机 应运而生,利用人工智能技术,实现对…...
【抽代复习笔记】29-群(二十三):生成子群的两道例题及子群陪集的定义
例1:取S3的子集S {(12),(123)},S的生成子群包含哪些元?一个群的两个不同的子集会不会生成相同的子群? 解:(1)S的生成子群就是S3。证明[有不理解之处可以回头看看第27篇笔记中生成子群的定…...

安全防护装备检测系统源码分享
安全防护装备检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…...

easyexcel常见问题分析
文章目录 一、读取数字多了很多小数位的精度问题 一、读取数字多了很多小数位的精度问题 浮点型转成BigDecimal的时候会出现精度问题,例如 这儿设置的实体类对象类型是String,默认用到的是StringNumberConverter转换器 2.1.4 版本 public class Strin…...

精通推荐算法31:行为序列建模之ETA — 基于SimHash实现检索索引在线化
1 行为序列建模总体架构 2 SIM模型的不足和为什么需要ETA模型 SIM实现了长周期行为序列的在线建模,其GSU检索单元居功至伟。但不论Hard-search还是Soft-search,都存在如下不足: GSU检索的目标与主模型不一致。Hard-search通过类目属性来筛选…...
Python知识点:如何使用Python进行卫星数据分析
开篇,先说一个好消息,截止到2025年1月1日前,翻到文末找到我,赠送定制版的开题报告和任务书,先到先得!过期不候! 如何使用Python进行卫星数据分析 卫星数据分析是地球观测领域的一项关键技术&a…...
Python实现Phong着色模型算法
目录 使用Python实现Phong着色模型算法引言Phong着色模型的基本原理1. 模型组成2. 公式 Phong着色模型的Python实现1. 向量类的实现2. 光源类的实现3. 材质类的实现4. Phong着色器类的实现 整体实现总结 使用Python实现Phong着色模型算法 引言 在计算机图形学中,光…...
异步框架 fastapi -- 连接mysql数据库
文章目录 docker部署mysqlfastapi连接mysql docker部署mysql 拉取mysql镜像 # 查看docker 服务状态 systemctl status docker systemctl start docker # 设置 开机启动 systemctl enable docker# 拉取mysql 镜像 docker search mysql:latest # 不指定版本时,默认…...
Spring 全家桶使用教程 —— 后端开发从入门到精通
Spring 全家桶是 Java 后端开发的利器,提供了从基础开发到复杂微服务架构的一整套解决方案。通过对各个 Spring 组件的掌握,开发者可以快速构建高效、稳定的企业级应用。本文将详细介绍 Spring 全家桶的各个组件,帮助开发者深入理解其核心功能…...

AI动漫转真人终极教程!3步做出爆款内容,音乐推广号变现
从小到大,我们看过的动漫、玩过的游戏有很多很多 但我们会发现里面的角色或者人物都是二次元的 我就会好奇这些动漫人物在现实中会长什么样 而现在,我们通过AI绘画竟然就能还原出来他们现实中的样子 除了动漫角色和游戏人物,古代的画像、…...

vue2 vconsole有助于移动端开发页面调试
项目场景: pc项目开发中,有浏览器自带的调试工具。但在移动端,就需要自己搭建调试工具了。vconsole一种非常方便的前端调试依赖库,有助于我们在移动端开发式进行调试,快速排查移动端问题。 搭建步骤 1、安装依赖库。…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...

STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...