自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 BitLocker 安全验证工作原理

BitLocker 是一种全盘加密(FDE)技术,最早在 Windows Vista 中引入,并在后续版本的 Windows 中得到了持续改进。BitLocker 使用高级加密标准(AES)来加密整个磁盘分区,确保只有授权用户才能访问存储在设备上的数据。BitLocker 主要用于保护数据免受物理盗窃或丢失设备的情况下被非法读取。

2024-07-31 16:03:54 269

原创 正交的拉丁方阵(MOLS)

基于两个集合S和T(两个集合可以是相同的),每个集合包含n个符号,形成一个n×n的单元格排列的方阵。例如,如果一个方阵的阶数为 4,那么最多可以有 3 个互相正交的拉丁方阵形成一个完全集。在组合数学中,如果两个同阶的拉丁方阵叠加后,每个位置上的有序对条目都是唯一的,则这两个拉丁方阵被称为正交的。定理:对于任何给定的阶数n,最多可以有(n-1)个相互正交的拉丁方阵(MOLS),当n是素数的幂时,达上界。如果一组同阶的拉丁方阵中,任意两个方阵都是正交的,则这组方阵被称为一组相互正交的拉丁方阵(MOLS)。

2024-07-04 16:07:49 455

原创 Host Aware SMR

首先给一点前置SMR知识。SMR优势:Capacity的提升。看图:由于重叠Track使得存储密度得到了提升。但是由于Track的重叠,使得SMR只能顺序写。在SMR中,多个Track组成一个Band,各个Band之间可以随机写这个 Boundaries 在 drive 外是无法感知的。

2024-04-10 18:22:38 266

原创 Open-Channel SSD

对于多租户的应用架构(multi tenant architecture)中,I/O 隔离有助于解决 nosiy neighbor 问题(指的是由于物理资源的共享,本来逻辑隔离的业务性能上难以避免地彼此影响),而Open-spec指出,Host 可以根据自己的业务来控制drive的并行度,SSD firmware不应当对任何形式的workload(比如传统意义上的顺序写,随机写)进行优化处理。这是显然的,对于open-channel SSD,drive 将自己的物理结构信息和内部控制能力开放给Host,

2024-04-10 11:31:47 999

原创 学习:面向云备份提供商的 Solidigm 固态硬盘

考虑到SSD与HDD的容量,SSD提供高达60TB的选项,您将能够在更小的空间中存储相同数量的数据,从而增加规模经济。第2年、第3年和第4年都显示出相似的故障率曲线,但值得注意的是,SSD 在第4年之前一直保持在1%的故障率阈值以下,而HDD在第2年的故障率为1.54%。(3)正如我们在上面的研究中讨论的数据所证明的那样,与HDD相比,SSD更可靠。在五年之后,这一点尤其重要,因为HDD的故障率是SSD的三倍。相比之下,第5年的SSD故障率低于1%的阈值,这意味着SSD的可靠性是HDD的3倍。

2024-04-07 17:20:41 1089

原创 Multipath

在企业中,服务器与存储通常是分开放置的,服务器上的硬盘通常用来安装操作系统和应用软件,业务数据则是存储在单独的存储设备上,那么,服务器与存储是如何连接的呢?对于NAS存储,只要使用IP访问即可,但是对于SAN存储,需要专业的硬件支持,主要是 SAN HBA卡和 SAN 交换机。在SAN网络中,大企业为了业务稳定,不因硬件损坏而导致业务停滞,在硬件采购时,往往采用“双份”的策略:2个网卡做绑定、2个CPU、2个风扇、2个HBA卡、2个SAN交换机等等。架构优势。

2024-03-29 10:30:33 1083

原创 数据库性能压测之TPC-C基准测试

本文作为学习笔记记录。

2024-03-24 23:08:34 1398

原创 LSM树(Log-Structured-Merge-Tree)

学习笔记:参考NoSQL(HBase,LevelDB,RocksDB)采用LSM树核心:利用顺序写来提高性能,但因为分层(内存和文件两部分)的设计会降低读性能。//牺牲小部分读性能来换高性能写。

2024-03-14 18:50:47 898

原创 Device Mapper Multipath (DM-Multipath)

学习记录:参考Device Mapper Multipath(DM-Multipath)可以将服务器节点和存储阵列之间的多条I/O链路配置为一个单独的设备。这些I/O链路是由不同的线缆、交换机、控制器组成的SAN物理链路。Multipath将这些链路聚合在一起,生成一个单独的新的设备。

2024-03-10 15:19:16 479

原创 NUMA简介

早期的计算机,内存控制器还没有整合进 CPU,所有的内存访问都需要经过北桥芯片来完成。如下图所示,CPU 通过前端总线(FSB,Front Side Bus)连接到北桥芯片,然后北桥芯片连接到内存——内存控制器集成在北桥芯片里面。这种架构被称为 UMA1(Uniform Memory Access, 一致性内存访问 ):总线模型保证了 CPU 的所有内存访问都是一致的,不必考虑不同内存地址之间的差异。在 UMA 架构下,CPU 和内存之间的通信全部都要通过前端总线。

2024-03-08 19:44:46 388

原创 APB协议(附:AHB2APB bridge实现)

APB在AHB和低带宽的外围设备之间提供了通信的桥梁,所以APB是AHB或ASB的二级拓展总线.:一旦 AHB 接口识别出某个事务是针对 APB 总线上的外设的,它就会通过 AHB-APB 桥接器将事务的相关信息(如地址、数据、控制信号等)转发到 APB 总线上。:当 AHB 总线上的一个事务(例如,读取或写入操作)的地址落在 AHB-APB 桥接器所管理的地址范围内时,解码逻辑识别出这个事务需要通过 APB 总线来处理。因此APB是非常低效的。:APB 总线上的外设再根据收到的信息进行相应的读写操作。

2024-01-28 14:22:55 1578

原创 Log-structured File System LFS入门

90年代初,文件系统如Unix File System或是FFS都有大量的随机读写需求,但速记读写速度受限于物理上的寻道时间,难以短语10ms,因此随机读写成为系统的性能瓶颈。思想:把磁盘看做 append only log,永远顺序写入,每当写入新文件,总是顺序追加在log的最后。段的批量写入解决随机写入问题:LFS中空余空间用固定大小的段进行管理:硬盘被分割成固定大小的段,写操作会先写入内存,当内存中的缓存的数据超过段的大小,LFS将数据一次性写入到空闲的段中。解决:删除文件/用新内容覆盖旧内容。

2023-06-27 14:47:16 308

原创 NVMe入门

由于SSD本身的物理特性,其数据的访问已经非常快了,性能的瓶颈就是出在计算机与设备连接的接口和协议上面。对于SATA的SSD,类似于一个单臂的机器人,仓库生产的很快,但机器人每次只能拿一个,搬移的速度就比较慢。- SAS(串行SCSI)和FC(Fibre Channel)接口,仅用于服务器领域和数据中心 PCIe接口要比SATA接口快的多,SATA3最大带宽是6Gb/s,而基于4X PCIe的M.2接口最大可以达到32Gb/s。NVMe协议原理:本质上建立了多个计算机与存储设备的通路(队列)

2023-06-27 00:14:02 132

原创 小猫爬山DFS

dfs算法题

2023-02-28 20:23:55 141 1

原创 Leetcode 搜索旋转排序数组

leetcode刷题、二分排序

2023-02-24 08:50:22 97

原创 背包问题总结

背包算法题

2023-02-11 20:16:43 65

原创 算法题25.剪绳子

算法题

2023-02-09 12:35:33 67

原创 WSGI 与 wsgiref 实现demo

WSGI接口-wsgiref

2022-11-14 12:25:30 402

原创 SONiC+P4实践——P4Runtime下发ACL表项

本文详细介绍了如何在SONiC系统中实现P4runtime的部署

2022-08-06 13:47:10 3167

原创 XDP学习笔记

一些知识XDP程序是通过bpf()系统调用控制的将数据包交给XDP程序后,可以对它执行操作(如修改),完成后所设计的返回值将向XDP数据包处理器指示接下来如何处理数据包。XDP_DROP指示应丢弃数据包XDP_PASS指示数据包应向上传递到正常网络堆栈以进行进一步处理XDP_TX和XDP_REDIRECT告诉数据包处理器立即重新传输数据包。XDP_TX将(可能修改过的)数据包转发回它进入的同一网络接口,XDP_REDIRECT使是举报通过不同的NIC或可能通过BPF cpumap将其转发

2022-05-08 11:49:49 2137

原创 hypersplit

#include "HyperSplit.h"HyperSplit::HyperSplit(uint64_t binth) { this->binth = binth; gChildCount = 0; gNumLeafNode = 0; gNumLeafNode = 0; gWstDepth = 0; gAvgDepth = 0; gNumTotalNonOverlappings = 0; gNumTreeNode = 0;}.

2022-03-26 15:33:54 274

原创 Docker

Dockerps:你知道的越多,不知道的就越多Docker概述Docker为什么出现环境配置十分麻烦、每个机器都要部署环境(集群Redis…)费时费力发布一个项目(Redis、MySQL、jdk、ES),项目能不能带上环境安装打包?之前在服务器配置应用环境 Redis、MYSQL、jdk、Hadloop,配置环境超麻烦,不能够跨平台传统:开发jar,运维做现在:开发打包部署上线,一套流程做完隔离:Docker核心思想,打包装箱,每个箱子是相互隔离的Docker历史2010年,docke

2022-03-24 21:15:11 788

原创 1987.粉刷栅栏(差分+用map离散化)

题目:农夫约翰发明了一种绝妙的方法来粉刷牛棚旁边的长栅栏(把栅栏想象成一维的数轴)。他只需要在他最喜欢的奶牛贝茜身上挂一个刷子,然后在一旁悠闲的喝凉水就行了。贝茜沿着栅栏来回走动时,会将她走过的栅栏部分涂上油漆。贝茜从栅栏上的位置 0 处开始,共进行 N 次移动。移动可能形如 10 L,表示向左移动 10 单位距离,也可能形如 15 R,表示向右移动 15 单位距离。给定贝茜的 N 次移动列表,约翰想知道至少被涂抹了 2 层油漆的区域的总长度。整个行进过程中,贝茜距离出发地的距离

2022-02-14 21:44:05 127

原创 2508.笨拙的手指(进制转化+巧用异或运算)

摘要:1)2进制转10进制int get(string s, int num){ int res = 0; for(auto c : s) res = res * num + c - '0'; return res;}2)运用auto遍历string3)运用异或运算,使奇数变偶数奶牛贝茜正在学习如何在不同进制之间转换数字。题目但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。每当贝茜将数字转换为一个新的进制并写下结果时,她总是将

2022-02-11 16:54:26 103

原创 java学习笔记第三部分

类变量(静态变量)static ...就可以在类的所有实例中共享(例如需要计数器时就可以使用 public static int count = 0)类变量可以用类名访问static类变量在类加载的时候就生成

2022-02-01 18:39:41 1731

原创 java面向对象部分笔记

四种访问限制符:public、protected、默认、privatepublic class a { public static void main(String[] args) { Person p1 = new Person(); //有括号 }}class Person { int age; String name;}类和内存对象的分配机制:1. 栈:存放基本数据类型(局部变量)2. 堆:存放对象(Cat cat、数组等)3. 方法区:常量池(常量,如字符串

2022-01-22 21:13:42 177

原创 Java基础语法笔记

System.out.println("hello" + 100 + 3);// 输出hello1003 System.out.println(100 + 3 + "hello"); //输出103hello 浮点数=符号位+指数位+尾数位 错误写法:float num2 = 1.1; 正确写法:double num3 = 1.1f; double num = 8.1 / 3 != 2.7 (2.66666667)if(Math.abs(num1 - num2) < 0.000....

2022-01-18 21:48:42 416

原创 Floyd求所有顶点对之间的最短路径

可以处理具有正或负边权(但没有负权回路)的加权图算法思想——逐个点试探求最短路径步骤(1)初始时设置一个n阶方阵,令其对角线元素为0,若存在弧<Vi,Vj>,则对应元素为权值;否则为INF。(2)逐步试着在原直接路径中增加中间顶点,若加入中间点后路径变短,则修改之;否则,维持原值。(3)所有顶点试探完毕,算法结束相对dijkstra算法floyd算法#include<iostream>using namespace s...

2021-12-07 20:22:00 541

原创 Bellman-Ford算法(限制边权的最短路、负权回路)

算法思想Bellman-Ford算法构造一个最短路径长度数组序列dist1[u], dist2[u], …, distn-1[u]。其中:dist1[u]为从源点v到终点u的只经过一条边的最短路径长度,并有dist1[u]=Edge[v][u];dist2[u]为从源点v最多经过两条边到达终点u的最短路径长度;dist3[u]为从源点v出发最多经过不构成负权值回路的三条边到达终点u的最短路径长度;……distn-1[u]为从源点v出发最多经过不构成负权值回路的n-1...

2021-12-06 16:45:41 753

原创 Dijkstra求最短路

Dijkstra算法思想:核心:按路径长度递增次序产生最短路径算法过程:把V分成两组:1.S:已求出最短路径的顶点的集合2. V-S = T:尚未确定最短路径的顶点集合将T中顶点按最短路径递增的次序加入到S中可以保证:1.从V0到S中各顶点的最短路径<=V0到T中任何顶点的最短路径2.每个顶点对应一个距离值 ① S中顶点:从V0到此顶点的最短路径长度 ② T中顶点:从V0到此顶点的只包括S中顶点作为中间顶点的最短路径长度...

2021-12-06 15:29:43 1154

原创 列出连通集(图的bfs + dfs)

7-6 列出连通集 (25 分)给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{v1​v2​...vk​}"的格式,每行输出一个连通集。先输出DFS的结果,再输出BFS的结果。输...

2021-12-05 17:38:44 101

原创 最小生成树的唯一性 (kruskral + 次小生成树)

给定一个带权无向图,如果是连通图,则至少存在一棵最小生成树,有时最小生成树并不唯一。本题就要求你计算最小生成树的总权重,并且判断其是否唯一。输入格式:首先第一行给出两个整数:无向图中顶点数N(≤500)和边数M。随后M行,每行给出一条边的两个端点和权重,格式为“顶点1 顶点2 权重”,其中顶点从 1 到N编号,权重为正整数。题目保证最小生成树的总权重不会超过 230。输出格式:如果存在最小生成树,首先在第一行输出其总权重,第二行输出“Yes”,如果此树唯一,否则输出“No”。如...

2021-12-04 21:39:05 4197 2

原创 pta数据结构——六度空间

“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。图1 六度空间示意图“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社会学家努力追求的目标。然而由于历史的原因,这样的研究具有太大的局限性和困难。随着当代人的联络主要依赖于电话、短信、微信以及因特网上即时通信

2021-11-29 16:27:18 1207

原创 超市(贪心+小根堆+vector小tips / 并查集解法)

超市里有N件商品,每件商品都有利润pi和过期时间di,每天只能卖一件商品,过期商品不能再卖。求合理安排每天卖的商品的情况下,可以得到的最大收益是多少。输入格式输入包含多组测试用例。每组测试用例,以输入整数N开始,接下来输入N对pi和di,分别代表第i件商品的利润和过期时间。在输入中,数据之间可以自由穿插任意个空格或空行,输入至文件结尾时终止输入,保证数据正确。输出格式对于每组产品,输出一个该组的最大收益值。每个结果占一行。数据范围0...

2021-11-24 22:50:56 407

原创 红色警报(并查集)

战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出两个整数N(0<N≤500)和M(≤5000),分别为城市个数(于是默认城市从0到N-1编号)和连接两城市的通路条数。随后M行,每行给出一条通路所连接的两个城市的编号,其间以1个空格分隔。在城市信息之后给出被攻占的信息,...

2021-11-22 20:18:40 108

原创 pta7-2朋友圈(并查集)

某学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。请编写程序计算最大朋友圈中有多少人。输入格式:输入的第一行包含两个正整数N(≤30000)和M(≤1000),分别代表学校的学生总数和俱乐部的个数。后面的M行每行按以下格式给出1个俱乐部的信息,其中学生从1~N编号:第i个俱乐部的人数Mi(空格)学生1(空格)学生

2021-11-15 13:07:14 179

原创 验证二叉搜索树(leetcode习题)

题目给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。思路设计一个递归函数helper(root, lower, upper)来递归判断,表示以root为根的子树,判断子树中的所有节点的值是否都在(l, r)的范围内(开区间)根据二叉搜索树的性质,在递归调用左子树时,需要把上界upper改为root.val,同理调用右子树时,需要把上界改为root.val/** * Definition for a binary tree node. * struct Tree

2021-11-14 23:30:46 5088

原创 二叉树的中序遍历递归、迭代写法(leetcode题解学习)

迭代写法class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> res; stack<TreeNode*> stk; while (root != nullptr || !stk.empty()) { while (root != nullptr) {

2021-11-14 22:11:00 859

原创 7-2 整型关键字的平方探测法散列

本题的任务很简单:将给定的无重复正整数序列插入一个散列表,输出每个输入的数字在表中的位置。所用的散列函数是H(key)=key%TSize,其中TSize是散列表的表长。要求用平方探测法(只增不减,即H(Key)+i2)解决冲突。注意散列表的表长最好是个素数。如果输入给定的表长不是素数,你必须将表长重新定义为大于给定表长的最小素数。输入格式:首先第一行给出两个正整数MSize(≤104)和N(≤MSize),分别对应输入的表长和输入数字的个数。随后第二行给出N个不重复的正整数,数字...

2021-11-13 19:54:48 308

原创 练习题:修改数组(并查集解法)

题目:给定一个长度为N的数组A=[A1,A2,···AN],数组中有可能有重复出现的整数。现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改A2,A3,···,AN。当修改Ai时,小明会检查Ai是否在A1∼Ai−1中出现过。如果出现过,则小明会给Ai加上1;如果新的Ai仍在之前出现过,小明会持续给Ai加1,直到Ai没有在A1∼Ai−1中出现过。当AN也经过上述修改之后,显然A数组中就没有重复的整数了。现在给定初始的...

2021-11-13 17:18:49 1089

空空如也

空空如也

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

TA关注的人

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