Loading

摘要: Overview 日志复制 特性 Raft 算法保证所有已提交的日志条目都是持久化的并且最终会被所有可用的状态机执行。 日志匹配特性: 如果在不同的日志中的两个条目拥有相同的索引和任期号,那么他们存储了相同的指令。 如果在不同的日志中的两个条目拥有相同的索引和任期号,那么他们之前的所有日志条目也全部 阅读全文
posted @ 2022-01-08 12:15 Shadowdsp 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Preparation 实验:http://nil.csail.mit.edu/6.824/2020/labs/lab-raft.html 的 Part 2A. 论文: 英文版:https://raft.github.io/raft.pdf 中文版:https://github.com/maemua 阅读全文
posted @ 2021-09-05 12:15 Shadowdsp 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 简介 在 Kubernetes 中,调度是指将 Pod 放置到合适的 Node 上,然后对应 Node 上的 kubelet 才能够运行这些 Pod。K8s scheduler 就是用来调度 pod 的一个组件。 本文主要是通过源码了解调度器的部分工作流程。 源码分析 Based on Kubern 阅读全文
posted @ 2021-06-23 00:28 Shadowdsp 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 准备工作 实验地址:http://nil.csail.mit.edu/6.824/2020/labs/lab-mr.html 论文地址:mapreduce 实验环境可以在实验地址里面找到具体的搭建方式。 系统总览 MapReduce 系统是由一个 master 进程和多个 worker 进程组成。 阅读全文
posted @ 2021-03-12 01:13 Shadowdsp 阅读(213) 评论(0) 推荐(0) 编辑
摘要: [TOC] BenchMark介绍 最近大佬叫我做下Benchmark,之前一直没接触过,顺便学习一波。 BenchMark 又叫做基准测试,主要用来测试一些方法的性能,可以根据不同的参数以不同的单位进行计算(例如可以使用吞吐量为单位,也可以使用平均时间作为单位,在 BenchmarkMode 里面 阅读全文
posted @ 2018-07-23 09:27 Shadowdsp 阅读(6123) 评论(0) 推荐(4) 编辑
摘要: 在实习中使用 框架,但是挺多不懂的,看了部分源码搞懂了一些,还是有一些比较复杂没搞懂。 第一部分:初始化 service 并修改端口 main.go go micro.go 这里定义了一个 ,一开始对这个不太熟悉,看了 "这篇文章" 之后懂了点。定义这个 之后的初始化操作就是将 当做参数,传入到 中 阅读全文
posted @ 2018-05-24 17:08 Shadowdsp 阅读(514) 评论(0) 推荐(0) 编辑
摘要: [TOC] RabbitMQ简介 "wikipedia" RabbitMQ在CentOS上安装 "csdn blog" 配置文件 application.properties pom.xml 我是通过maven来构建项目的。因此在一个SpringBoot项目的基础上还需要添加一个依赖。 实践 概述 阅读全文
posted @ 2018-05-17 00:10 Shadowdsp 阅读(4884) 评论(6) 推荐(1) 编辑
摘要: "题目链接" 题意 给出 n 个餐厅,m 个停车场,现在要将 n 个餐厅中的 m 个变成停车场,使得每个餐厅到最近的停车场的距离之和最短,输出哪个餐厅变成停车场和它服务哪些餐厅,还有最短距离之和。 思路 首先确定在 i 到 j 之间,一定是选择 i 和 j 的中位数那个餐厅作为停车场可以使得i到j的 阅读全文
posted @ 2018-03-30 09:45 Shadowdsp 阅读(427) 评论(0) 推荐(0) 编辑
摘要: [TOC] 判断对象是否死亡 引用计数器算法 给对象添加一个引用计数器,每当有地方引用它,计数器值就加1;当引用失效时,计数器值减1;计数器为0的对象就不可能再被使用。 缺点 是很难解决对象之间相互循环引用的问题。 可达性分析算法 通过一系列称为 “GC Roots” 的对象作为起始点,从这些节点开 阅读全文
posted @ 2018-03-05 14:58 Shadowdsp 阅读(663) 评论(0) 推荐(0) 编辑
摘要: [TOC] 简介 由于HashMap是非线程安全的,而且HashTable和Collections.synchronizedMap()的效率很低(基本上是对读写操作加锁,一个线程在使用,其他线程必须等待)。因此可以使用并发安全的ConcurrentHashMap。 ConcurrentHashMap 阅读全文
posted @ 2018-02-23 17:43 Shadowdsp 阅读(336) 评论(0) 推荐(0) 编辑
摘要: [TOC] 简介 它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数 阅读全文
posted @ 2018-02-21 22:28 Shadowdsp 阅读(580) 评论(0) 推荐(0) 编辑
摘要: [TOC] 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 动态加载和动态连接 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的。 类加载的时机 类的生命周期 类 阅读全文
posted @ 2018-02-03 21:44 Shadowdsp 阅读(317) 评论(0) 推荐(0) 编辑
摘要: Java动态代理 为什么使用动态代理 当需要对某个类的某个方法进行修饰(增强)的时候,可以使用继承、装饰者模式和动态代理。 三种方式局限性: 1. 继承:增强的对象不能改变,增强的内容不能改变。 2. 装饰者模式:增强的对象不能改变,增强的内容能改变。 3. 动态代理:增强的对象可以改变,增强的内容 阅读全文
posted @ 2017-12-03 10:20 Shadowdsp 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 2017青岛ICPC 11月4日 早上很早到达了青岛,然后去报道,走了好久的校园,穿的很少冷得瑟瑟发抖。中午教练请吃大餐,吃完饭就去热身赛了。 开幕式的时候,教练作为教练代表讲话,感觉周围的队伍看过来,想到和tmk和师兄他们的差距,有点感慨,但是也是最后一场了,没什么好想的了。 热身赛 开场也是试试 阅读全文
posted @ 2017-11-12 11:34 Shadowdsp 阅读(762) 评论(1) 推荐(1) 编辑
摘要: 2017沈阳ICPC 10月20日 早上十点抵达沈阳,趁着老师还没到,跑去故宫游玩了一下,玩到一点多回到宾馆,顺便吃了群里大佬说很好吃的喜家德虾饺(真的好好吃),回到宾馆后身体有点不舒服了,头晕晕的,可能是吃太多热气的东西,也可能是去故宫玩的原因,wx也有一点(这是我作为一个队长的不称职了,非但没督 阅读全文
posted @ 2017-11-11 21:55 Shadowdsp 阅读(379) 评论(0) 推荐(1) 编辑