自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许自己以未来

脚踏实地,积少成多

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

原创 MIT6.824 分布式系统课程实验笔记 Lab 2

Raft 算法本身是一个复制状态机架构,其中的外部事件它称为日志(log),日志是有时间顺序的,不同的节点之间只要日志是一致的,那么状态就是一致的。所以 Raft 算法最重要的部分就是日志的正确同步。图中的部分其实就是需要保证分布式一致性的数据,在不同的应用中指代的对象可能是不同的。比如在分布式 KV 数据库中,它可能存储的就是键和值;在分布式消息队列中,它可能存储的就是消息的状态。Raft 算法并不知道每一条 Log 代表的含义,也不知道状态机目前的状态,它只保证不同节点之间的状态机是一致的。

2024-03-17 15:45:46 1036

原创 MIT6.824 分布式系统课程实验笔记 Lab 1

MIT 6.824 是麻省理工大学的一门研究生课程——Distributed Systems,学习这门课程对于了解分布式系统的构建原理、理解分布式程序的运行、优化分布式程序的运行环境会有很大的帮助。课程内容涵盖:分布式、容错、多副本、一致性等议题,附带了 4 个大的实验 Lab 并配套了相关的测试用例,需要基于 Go 语言完成。Lab 会将课程所讲的知识进行实践、贯通,有助于加深我们的理解和记忆。

2023-12-05 20:35:56 3764

原创 MIT6.830 SimpleDB 实现笔记 Lab 6

Lab 6 实现 SimpleDB 的基于日志系统的回滚(rollback)和恢复(recover)功能。

2023-12-01 19:15:06 863

原创 MIT6.830 SimpleDB 实现笔记 Lab 5

Lab 5 要求实现 SimpleDB 的 B+树索引存储机制。整体的 B+树相关代码还是较为复杂的,但是 SimpleDB 帮我们写了大部分结构性的代码,让我们去完成较重要的功能性代码。但是所有的代码都需要理解透彻。

2023-12-01 19:14:34 1014

原创 MIT6.830 SimpleDB 实现笔记 Lab 3

上一个 Lab 完成的是查询过程,Lab 3 的内容是查询优化(Query Optimization),主要完成两个部分,表统计信息和连接优化器。

2023-12-01 19:13:30 844

原创 MIT6.830 SimpleDB 实现笔记 Lab 4

Lab4 是实现 SimpleDB 的并发事务系统,跟前面的内容相比较为复杂。一般来说数据库的事务需要满足 ACID 特性,即。

2023-10-18 21:13:54 129

原创 MIT6.830 SimpleDB 实现笔记 Lab 2

Lab2 总共有 5 个 exercise,主要练习了与执行计划相关的各种 execution 操作。比如过滤、连接、聚合、插入、删除等操作。每一个操作算子都继承了Operator

2023-07-15 17:29:17 242

原创 MIT6.830 SimpleDB 实现笔记 Lab1

MIT 6.830是麻省理工学院关于数据库系统的高级课程,旨在教授学生关于数据库的设计、实现和优化的知识和技能。课程附带了6个Lab以供练习,最终目的是使学生能够用Java写出一个简易数据库系统SimpleDB,这6个Lab由浅入深,覆盖了数据库的核心知识点。Lab1 总共有 6 个 exercise,主要是练习的是数据库的数据存储部分。

2023-07-14 20:57:32 650

原创 Java实现可高亮的编程记事本——MyNotepad 附GitHub地址

核心功能: 代码高亮、自定义高亮(对任何文本文件)、运行代码(可配置不同文件的运行脚本)其他功能: 记笔记、更改字体、进入代码模式、查找替换、字数统计、自动识别文件编码等实用功能。具体代码与说明详见:https://github.com/PowerPollery/MyNotepad程序截图:C语言代码高亮:运行结果:菜单功能:还可自定义高亮其他文件(详见GItHub):...

2022-02-14 12:52:29 1123

原创 不换行的JTextPane的实现

JTextPane默认是自动换行的(占据一行的长单词不换)。而且没有自带的方法能够关掉换行。在谷歌上搜索后发现重写以下两个方法就可以实现不换行。public class NoWrapJTextPane extends JTextPane { @Override public boolean getScrollableTracksViewportWidth() { // Only track viewport width when the viewport is wider

2022-02-01 21:13:14 461

原创 Java 实现经典扫雷游戏 Github代码

使用Java GUI编写,有分等级、计分、计时、记录、自定义、自动扫雷、存档、读档等功能!GitHub地址:https://github.com/PowerPollery/Minesweeper

2020-08-28 12:08:37 944 2

原创 完全分布式Hadoop集群在虚拟机CentOS7上搭建——过程与注意事项

搭了几次集群后,从什么都不懂到懂了点皮毛,有了些心得体会,写在前面,不一定对但我是这么理解的:master = Namenode + SecondaryNamenodeslave = Datanode每个slave节点都要保证能与master相互免密SSH连接,但slave节点之间无所谓其实不管是master节点还是slave节点,它们的配置都可以是一样的,只是后期确定一个master,...

2019-12-07 17:30:38 755 2

原创 Windows下编写的Java程序(jar文件)在Linux服务器上运行的一系列问题

将Windows下编写的Java程序(jar文件)部署到Linux服务器上:首先要保证在Windows下的jar包能够运行。有时候IDE生成的jar文件运行时会找不到诸如jdbc connector之类的依赖包,所以只好自己动手敲命令。方法一IDE都会生成class文件,找到这些文件的目录,在根目录下放入所要依赖的jar包,然后退到上一级目录(一般是IDE的输出目录),新建MANIFE...

2019-11-19 17:44:52 4052

原创 #{}的困惑 - Mybatis中的参数传递

Mybatis的初学者一定对sql映射文件中许多的#{}符号感到陌生。其实我们都知道,它可以理解为一个占位符,把传递过来的数据放到sql语句中,但有些时候它又我觉得困惑,最后大致了解了,下面说一下我所学到的知识。#{}符号大致有以下两种用途:1. 获取传递来的参数我们经常将操作方法定义在一个接口里面。当我们在接口里定义诸如User getUser(Integer id);的方法时,我们...

2019-09-15 18:27:49 473

原创 “Unknown initial character set index '255' received from serve”错误解决过程 - Mybatis 示例

今天在学习Mybaits的时候,根据教程写出了一个第一个程序——从数据库读取一条数据并打印。当一切都就绪了:user.javaUserMapper.xmlmybatis-config.xml测试类依葫芦画瓢地写下来,以为没问题了,运行这个测试方法,竟然报错了:org.apache.ibatis.exceptions.PersistenceException: ### Err...

2019-09-05 14:31:56 4803

原创 IntelliJ IDEA搭建SSH框架 maven项目的过程总结

本人第一个博客需要了解maven在idea里的使用及作用本步骤使用spring的XML配置方式搭建,不使用注解ssh搭建的步骤创建maven项目配置Tomcat配置pom.xml建立目录结构配置spring.xml创建maven项目New Project -> 在 create from archetype 上打勾 -> 选择 maven-archetype-webapp -...

2019-08-11 16:36:14 505

空空如也

空空如也

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

TA关注的人

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