自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一把健

人的一生,最快乐的事情,不是做自己喜欢的事情,而是喜欢上自己要做的事情

  • 博客(90)
  • 收藏
  • 关注

原创 2019年_保研目录

2019 年于本人而言是及其特别的一年,在这一年里,本人经历了面试,复习,保研,实习 等等。现将保研的经历整理成文,希望能帮到其他人。本人情况:中南大学 - 软件工程 16 级 10/172;英语四六级低分飘过,无特别获奖,但是有一线厂实习经历;按照时间顺序,如下:中科院_深研院中科院_深研院_数字所_保研夏令营_记录南京大学_计算机学院南京大学_本科开放日_计算机系_保研夏...

2020-01-17 21:03:28 1192

原创 面试_个人摘要

面试_个人摘要将 企业 笔试 面试经历汇总成 目录并且 精简总结 其中的问题方便自己 查漏补缺 和 回顾成长2019 年 3 月字节跳动——前端字节跳动_前端实习视频面试_内推一面promise 和 setTimeout 的区别(微队列和宏队列)算法:字符串的最大非重复子串字节跳动_前端实习视频面试_内推二面富文本编辑器的实现vue virtual DOM字节跳动_...

2019-11-20 16:41:34 490

原创 mit_6.824_2021_lab4B_Sharded_Key/Value_Server

mit_6.824_2021_lab4B_Sharded_Key/Value_Server最后,构建一个分片的 kv 容错系统;感觉比 lab2 更难理解,因为 lab2 有一个模板论文可以参考,但是 lab4b 基本没有一个固定的范式Part B: Sharded Key/Value Server每个 shardkv server 相当于副本组的一部分,每个副本组相当于 lab3,都支持Get, Put, Append操作,当然它们各自仅维护各自的分片;客户端使用key2shard()去找到一个

2021-12-21 15:17:10 954

原创 mit_6.824_2021_lab4A_The_Shard_controller

mit_6.824_2021_lab4A_The_Shard_controllerlab4 系列除了构建一个 键值存储系统,还需要将系统按键 分片(shard) 或对一组副本进行分区;分片的策略有很多,比如:所有以 “a” 开头的键是一个分片,所有以 “b” 开头的键是一个分片,等等为什么需要分片?从性能考虑,每个副本只处理一部分分片的 put 和 get,并且这些副本之间是支持并行操作的;因此,系统的总吞吐量和副本的数量成比例增加shard kv 系统组成分片键值对存储系统将由两个组件组成;首

2021-12-07 20:22:47 484

原创 mit_6.824_2021_lab3B_kvraft_with_snapshots

mit_6.824_2021_lab3B_kvraft_with_snapshotsPart B: Key/value service with snapshots紧接着 lab3A,将键值存储服务的快照功能加上,这里的代码量不多,主要是对lab3A,和 raft 一些细枝末节的改动,让整体代码更可读,但还是发现了一个 raft 初始化的 bug,导致自己卡了一会,不过也加深了自己对 persist 这一部分的理解实验内容首先要知道,重启的服务器会执行一次完整的Raft日志以恢复其状态,但是,raf

2021-11-24 21:55:29 421

原创 mit_6.824_2021_lab3A_kvraft

mit_6.824_2021_lab3Amit_6.824_2021_lab3A_kvraftlab3 系列是将此前写好的 lab2 的 raft 库加以调用,在此基础之上实现上层的状态机,即 service 层;所以,lab2 写得不好,lab3 怎么也过不去,故需要确保 lab2 基本万无一失;但是在此基础上,还需要依靠 service 层实现线性一致性,lab3 工作量不大,但是还是需要有良好的设计参考了网上的部分博客和思路https://blog.csdn.net/qq_40443651

2021-11-21 20:36:54 1727

原创 mit_6.824_2021_lab2D_log_compaction

mit_6.824_2021_lab2D_log_compactionlab2D 主要是日志压缩功能,实验里是采用论文的最简单的方式,snapshot 压缩快照,并且更简单的是不分块的形式;感觉主要有两点需要注意:快照功能的加入对原有逻辑的修改快照功能的流程(InstallSnapshot, Snapshot, CondInstallSnapshot, applyCh)lab2D_log_compaction实验内容要实现快照功能,需要实现 Snapshot、CondInstallSnap

2021-10-17 17:12:19 747

原创 mit_6.824_2021_lab2C_persistence

mit_6.824_2021_lab2C_persistencepersistence 引入持久化,持久化的相关代码已经在 persister.go 中实现,我们要做的只是调用 api 就好,相对容易的一节;但同时也是不容易的一节,因为这一节中有两个关于 图8 的网络崩溃节点崩溃实验,基本都会出 bug,出 bug 基本都是因为 lab2A 和 lab2B 引入的 bug;本人也因为 lab2B 引入的 bug 导致在 lab2C 卡了很久;这里阐述一下自己的心路历程lab2C_persistenc

2021-10-15 20:36:56 318

原创 mit_6.824_2021_lab2B_log_replication

mit_6.824_2021_lab2B_log_replicationlab2B,日志复制,我愿称之为 raft 核心中的核心,细节爆炸????,细节都在魔鬼中还是需要将 Fig2 完全实现,并且将 5.3 和 5.4节完全实现,这里我在实现的时候顺便把 nextIndex 优化给做了,具体实现可以直接在助教的 guide 中直接找到lab2B:log replication实验内容实现 leader 和 follower 的相关代码以实现日志追加,用go test -run 2B -race进

2021-10-13 17:11:50 587 2

原创 mit_6.824_2021_lab2A_leader_election

mit_6.824_2021_lab2A_leader_election做完 lab2 之后回来写系列文章总结如果说 lab1 的 mapreduce 是用来入门分布式系统课程的,那么 lab2 开始就是课程设计的真正开始lab2 系列为 raft 分布式一致性协议算法的实现,论文 extended Raft paper 更是要反复看,尤其是 Figure 2,以及第五章节的一些实现细节raft 将分布式一致性共识分解为若干个子问题,lab2 系列也随之挂钩:leader election,领

2021-10-10 23:46:21 504 1

原创 GFS_论文笔记

GFS 论文笔记Google 三驾马车之一1. 介绍列出了设计 GFS 的三大基本假设首先,组件故障是一种常态,而不是例外。因此,持续监控、错误检测、容错和自动恢复必须与系统集成在一起。其次,文件大小很大 ,因此,设计假设和参数(如I/O操作和块大小)必须重新考虑。第三,大多数文件是通过追加新数据而不是覆盖现有数据来改变的2. 设计摘要系统由大量廉价的普通服务器组成,需要容错负载基本是 大量的流式读取和小量随机读高持续带宽比低延迟更重要。此外,GFS还有快照和记录追加操作。2.3

2021-09-10 22:27:03 329

原创 mit_6.824_2021_lab1_mapreduce

mit 6.824 2021 lab1 mapreducelab1 mapreduce实验:https://pdos.csail.mit.edu/6.824/labs/lab-mr.html实验结果源码:https://github.com/SwordHarry/mit6.824实验背景mapreduce paper: https://static.googleusercontent.com/media/research.google.com/zh-CN//archive/mapreduce-

2021-07-17 23:39:35 804 2

原创 字节跳动-后端实习-技术中台-一二三面(offer)

前言算法还是很重要的,一面擦线A出来了,二面思路正确但是没A出来指针有点小问题还是给过了,但是三面就很难了,三面算法有见过,但是每次见到以为不会考这么难的就略过,结果真的考了,难受。思路有个大概,A出了面试官给的测试用例,但是心里清楚肯定在 leetcode 上不能A;算法两道困难一道中等,太顶了;不管怎么说,求 offer QAQ,许愿offer,我太tm想去字节了QAQ字节跳动-后端实习-技术中台(用户中心)-一面2021-3-15 用时 55 min一面问实习和某个项目挺深入,面试官喜欢用项目

2021-03-23 19:35:51 2330

原创 腾讯-后端实习-pcg腾讯看点-一二面hr面(offer)

腾讯-后端实习-pcg-腾讯看点-一面2021-3-5 用时 35min自我介绍进程、线程和协程间的概念和区别IO 密集型和 CPU 密集型如何分配线程优先级无锁编程(答了 CASselect 和 epoll 的区别go 语言的 panic 如何恢复有对项目和系统做性能测试吗?(benchmark 和 pprodf)go 中 new 和 make 的区别项目,jwt 是什么sql 执行慢,是什么原因,怎么解决以前的实习经历二叉树的最近公共祖先(https://leetcode-c

2021-03-22 13:53:10 780 1

原创 字节跳动-后端实习-头条+教育-一二三面(三面凉)

前言本人是985硕一找实习,没有很能拿得出手的项目,但有花时间复习基础感谢 http://cyc2018.gitee.io/cs-notes/#/ 和 https://codetop.cc/#/home;是很好的复习资料投的牛客上的内推,内推上说明了是教育部门,结果一二面是今日头条部门,一度以为能进头条,三面又变回清北网校;以下是面试过程中的问题,粗略列出如下字节跳动-今日头条-一面2021-2-23 用时 50 min按顺序问了 操作系统,计算机网络,golang,mysql,docke

2021-03-01 23:12:29 731 4

原创 论文笔记《Improving Docker Registry Design based on Production Workload Analysis》

论文笔记《Improving Docker Registry Design based on Production Workload Analysis》会议:File and Storage Technologies(FAST)时间:2018-12-15思维导图梗概为了更好地研究 docker 注册表服务对 docker 的作用,本文基于75天的时间内从五个托管生产级注册表的IBM数据中心收集的跟踪信息,对注册表工作进行分析。本文编写了一个跟踪重播器来进行分析,推断出许多关于容器工作负载的

2021-01-11 19:46:55 1890 6

原创 论文笔记《Wharf_Sharing_Docker Images_in_a_Distributed_File_System》

《论文笔记》:Wharf: Sharing Docker Images in a Distributed File System会议:SoCC’ 18原文:https://doi.org/10.1145/3267809.3267836梗概Wharf:通过分布式文件系统进行 Docker 镜像文件的共享,而不是一个物理机一个镜像文件。 Wharf将Docker的运行时状态划分为本地和全局部分,并有效地同步对全局状态的访问。思维导图1. 介绍四个问题现状:在Docker中,每个守护进程都是

2020-12-24 21:16:21 675 1

原创 xftp:传输类型设置_导致的各种bug

bug 阐述最近在用xftp,通过服务器进行 AI 训练模型和结果视频传输保存到本地的时候,有各种问题,困扰了快一周;比如:模型读取出现问题PytorchStreamReader failed reading zip archive: invalid header or archive is corrupted视频无法播放项目无法播放,请重新获取内容0xc00d36e5原因其默认使用的 ASCII 码,会将模型和视频编码,导致格式毁坏!xftp 传输类型:默认 ASCII ,需要

2020-12-20 22:18:27 2258 2

原创 算法:n后问题_局部搜索算法

n后问题_局部搜索算法题目局部搜索解n皇后,并测试n的极限回溯法难以求解更大规模的n皇后问题,但是基于概率的局部搜索算法可以解决一定规模上的 n 皇后问题思路根据课件上的局部搜索算法思路,n皇后具体流程为:随机将 N 皇后分布在棋盘上,并保证每行每列仅有一个皇后计算皇后间的冲突数 conflicts,注意这里只需要计算斜线的冲突,行列不需要如果冲突为0则转(6)对于棋盘上的任意两个皇后,交换位置,如果交换后冲突减少,则接受交换,更新冲突数 conflicts如果陷入了局部极小,即交换了

2020-11-28 19:42:55 822

原创 论文笔记《Slacker_Fast_Distribution_with_Lazy_Docker_Containers》

论文笔记:《Slacker:_Fast_Distribution_with_Lazy_Docker_Containers》会议:Conference on File and Storage Technologies(FAST’16)时间:February 22-25, 2016参考文献:Harter T, Salmon B, Liu R, et al. Slacker: Fast distribution with lazy docker containers[C]//14th {USENIX} C

2020-11-19 09:23:13 435

原创 论文笔记《FID_A_Faster Image_Distribution_System_for_Docker_Platform》

论文笔记:《FID:_A_Faster Image_Distribution_System_for_Docker_Platform》会议:FAS*W@SASO/ICCAC 2017梗概大规模容器平台进行镜像拉取时容易使得流量泛滥,给 docker 仓库导致负担或失败;继而推出 P2P 大规模镜像分布式系统。通过充分利用Docker Registry以及群集中其他节点的带宽,能够加快Docker映像分发的速度。实验表明,FID 能有效减少网络流量和减少镜像分配时间笔记思维导图:1. 介绍腾

2020-11-09 09:50:57 756 1

原创 《算法导论》散列表与Go语言中的map

《算法导论》读书笔记:散列表(附-Go语言中的map)参考书籍:《算法导论》散列表参考博客:https://mp.weixin.qq.com/s/OJSxIXH87mjCkQn76eNQsQ1. 直接寻址表全域 U 直接到槽 K但当全域 U 很大时,不可取2. 散列表装载因子表示哈希表中元素的填满程度。它的计算公式:装载因子=填入哈希表中的元素个数/哈希表的长度。装载因子越大,填入的元素越多,空间利用率就越高,但发生哈希冲突的几率就变大。反之,装载因子越小,填入的元素越少,冲突发生的几率

2020-11-03 20:16:43 370

原创 Go语言中的map[math.NaN()]

Go语言中的map[math.NaN()]最近在研究 Go 语言的 map 数据结构时发现的一个关于math.NaN()和map联动的现象func main() { m := make(map[float64]string) m[math.NaN()] = "123" m[math.NaN()] = "345" v, ok := m[math.NaN()] if ok { fmt.Println(v) } else { fmt.Println("未找到 math.NaN()") }

2020-11-03 20:15:19 729

原创 论文笔记《Dapper, a_Large-Scale_Distributed_Systems_Tracing_Infrastructure》

《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》论文笔记dapper,大型分布式系统跟踪设施1. 概述通篇论文介绍了 Dapper 作为一款内部使用的应用级别监控系统,其低开销,应用程序级透明性以及在大规模系统上普遍部署的设计目标和抽象的实现概念的介绍;并针对应用场景与其他跟踪系统进行对比,和它们在概念上具有相似之处,但是做出了某些设计选择,例如使用概率采样和二次采样;最终介绍了这两年来的构建,部署和使用经验,讲述了目

2020-10-30 11:27:06 727 1

原创 论文笔记《Understanding_Real-World_Concurrency_Bugs_in_Go》

论文笔记《Understanding_Real-World_Concurrency_Bugs_in_Go》论文会议:ASPLOS年份:2019论文概述该论文主要针对 Go 语言中的并发编程,对开源市场上的 6 款主流程序包括 Docker、Kubernetes 和 gRPC 等做了 bug 分析和重现,并分析了他们的 bug fix commit。通过对这些 bug 进行分类和源码分析与修复,得出未来Go 语言可进行工作的方向和需要注意的编程点。重点bug 分类论文将 bug 从两个正交维

2020-10-23 15:01:46 347

原创 算法:最优二叉搜索树

算法设计第五次作业part21.纸面题:对最优二叉树和矩阵连乘两种算法验证四边形法则,如果符合四边形法则则举几个正例,如果不符合则举几个反例四边形法则i<i‘   j<j‘w(i,j)+w(i‘,j‘)≤w(i‘,j)+w(i,j‘)i < i^`\ \ \ j < j^` \\w(i,j) + w(i^`,j^`) \le w(i^`,j) + w(i,j^`)i<i‘   j<j‘w(i,j)+

2020-10-23 15:00:12 1503

原创 算法:构造全部数量的二叉搜索树

算法设计第五次作业part11.给出一个数组,算出其能构成的不同二叉搜索树结构的数量package mainimport ( "fmt" "sort")/**1.给出一个数组,算出其能构成的不同二叉搜索树结构的数量*/type array []intfunc (a array) Len() int { return len(a)}func (a array) Less(i, j int) bool { return a[i] < a[j]}func (a

2020-10-23 14:58:04 336

原创 算法:最长公共子序列

10-8算法实验报告最长公共子序列题目:输出两个字符串的最长公共子序列要求1:不使用辅助数组// 要求1:不使用辅助数组func LongestSubsequence(x, y string) string { n, m := len(x), len(y) // 初始化数组切片 // go 自动初始化数组元素为 0 c := make([][]int, n+1) for i := 0; i <= n; i++ { c[i] = make([]int, m+1) } //

2020-10-23 14:56:22 428

原创 算法:线性时间选择

9-29算法实验报告1. 随机时间选择-求算法复杂度给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素template<class Type>Type RandomizedSelect(Type a[],int low,int high,int k){ if (low==k) return a[p]; int i=RandomizedPartition(a,low,high), j=i-low+1; if (

2020-10-23 14:54:30 1774

原创 算法:合法括号组合_正整数n的划分

9-22算法实验报告1. 给出n,输出n对合法的括号组合yupackage mainimport "fmt"/**给出n,打印出n对合法的括号对组合,例如n=3,输出如下: "((()))", "(()())", "(())()", "()(())", "()()()" */func printBrackets(n int) { printStrWithBrackets(n,n,"")}// 递归:左括号 和 右括号func printStrWithBr

2020-10-14 17:53:48 342

原创 算法:斐波那契数列通项公式推导

9-17_算法实验报告斐波那契数列已知:f(n)={f(n−1)+f(n−2);(n>2)1;(n=1,n=2)f(n) = \begin{cases}f(n-1) + f(n - 2);(n > 2)\\1;(n = 1, n = 2)\end{cases}f(n)={f(n−1)+f(n−2);(n>2)1;(n=1,n=2)​请使用 生成函数法 求该函数的时间复杂度。解答对于斐波那契数列,已知:f(n)=f(n−1)+f(n−2);(n>2)f(n) =

2020-10-14 17:46:48 3248 1

原创 goblog:基于gin、gorm和中间件的个人博客

goblog:基于gin、gorm和中间件的个人博客前言一直想尝试在互联网中留下属于自己的足迹,故搭建了一个从数据存储到页面展示都自主开发的个人博客;同时也是使用go语言开发,进行web练手学习。github:https://github.com/SwordHarry/goblog博客地址:备案中。。。主要围绕 gin 和 gorm 进行博客网页部分和api部分的业务开发,现支持 markdown 文件的上传部分细节参考于《Go 语言编程之旅》一书,好评业务总体上分为用于浏览的网页业务和

2020-08-17 18:24:29 3388 3

原创 JWT初识

JWT初识JWT全称:json web token市面上的 API 访问控制方案有两种,分别是OAuth 2.0 和 JWT,两者应用场景不同:OAuth2.0:用于授权的行业标准,常用于第三方登录JWT:开放标准,以JSON对象传输信息,并将该对象使用 RSA 或 ESCDA 的公钥或私钥对JWT进行加密JWT格式JWT 将json对象编码后,变成紧凑的字符串形式,以点"."分割成三部分,格式如下:Header.Payload.Signature三部分的含义如下:Header:头

2020-08-07 00:15:11 158

原创 goPetStore_v2:基于gin和sqlx的go web项目

goPetStore_v2: 基于gin和sqlx的go web项目前言为基于go的无框架web项目的框架版,采用 gin 和 sqlx 进行框架开发;旨在上手 go 主流框架github: https://github.com/SwordHarry/gopetstore_v2业务模块商品模块categoryproductitemsearch购物车模块cart用户模块account订单模块orderlineItemsequence架构temp

2020-06-23 23:03:26 903 2

原创 goPetStore: 基于go的无框架web项目

goPetStore: 基于go的无框架web项目前言原项目为 java 编写的 jpetStore,原 java 版:https://blog.csdn.net/qq_39446719/article/details/80821440现改为使用 go 语言编写,旨在上手 go web 编程,github:https://github.com/SwordHarry/gopetstore业务模块商品模块categoryproductitemsearch购物车模块cart用

2020-06-14 16:01:27 633

原创 给vscode和@/vue-cli_4.x项目初始化eslint

前言使用vscode,并且使用@/vue-cli初始化vue项目后,vue项目自带eslint,但若想自定义或从package.json中分离eslint配置,可以遵循如下做法。此做法适用于用webpack初始化的项目,自定义eslint用。步骤vscode先配置vscode,使得vscode支持自行检查eslint规范,进行错误警或自动纠正,这里建议开启错误警告和自动纠正,强制性便于代码...

2020-03-06 22:50:09 794

原创 HTTP 方法

HTTP 方法以下介绍 HTTP 1.1 中可使用的方法:GET: 获取资源POST: 传输实体主体(可理解为添加记录PUT: 传输文件(或更新记录DELETE: 删除文件(或删除记录HEAD: 获取报文首部OPTIONS: 询问支持的方法TRACE: 追踪路径(不常用CONNECT: 要求用隧道协议链接代理GET: 获取资源GET 方法用来请求已被 URI 识别的资源。...

2020-02-01 15:09:47 408

原创 中山大学_数据科学与计算机_预推免

前言2019 年 9 月中旬是中山大学预推免时间,本人没能进到夏令营,但是最后在预推免上岸也算不幸中的万幸。记忆不一定准确,但希望能帮到他人。想看 流程 的可以直接看总结,正文部分有本人心路历程。预推免中山大学的预推免大致可以分为 报道,机试,面试 三大部分,而且尤其是面试,所有人加起来总时长 3 天,幸运的是,本人被安排在第一天的下午第一场,上午就是机试,报道,机试,面试,无缝衔接。...

2020-01-17 21:02:28 4389 2

原创 华南理工_软件学院_预推免

前言9 月是广州两所知名学府 华南理工 和 中山大学 的预推免时间。这里仅凭本人记忆写下本人 2019 年 9 月在华南理工参加预推免的所见所闻所感,记忆不一定准确,但希望能帮到别人。仅想知道流程的,可以直接看 总结 部分,正文部分有本人的心路历程。总的来说,华南理工的软件学院预推免,水。预推免Day 1首先是报道。本人报名的是软件学院的预推免,故在软件学院院楼报道,报道时间是上午...

2020-01-17 19:52:37 2225

原创 javascript_冷知识之_(0, function)(param)

(0 , function)(param) 究竟是什么?最近在读一些 loader 的源码,发现有许多摸不着头脑的地方,其中一点是有许多函数在调用时,都采用了(0, function)(param) 的形式调用。如(0, _schemaUtils.default)(_options.default, options, { name: 'CSS Loader', baseData...

2020-01-04 23:09:37 5206

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除