HeZephyr

HeZephyr's Blog

日拱一卒无有尽,功不唐捐终入海

HeZephyr's GitHub chart

【论文阅读笔记】ZooKeeper: Wait-Free Coordination for Internet-Scale Systems

1 摘要

这篇论文介绍了ZooKeeper,一个用于协调分布式应用进程的服务。ZooKeeper旨在提供一个简单且高性能的内核,用于构建更复杂的客户端协调原语。它整合了组消息传递、共享寄存器和分布式锁服务的元素,形成了一个复制的、集中式的服务。Zookeeper提供了一个接口,具有共享寄存器的无等待特性和类似分布式文件系统缓存失效的事件驱动机制,以提供简单而强大的协调服务。ZooKeeper还保证了每个客户端请求的FIFO执行和所有更改ZooKeeper状态的请求的线性化。

2 介绍

分布式系统中的基本协调机制

好用的工具

1 tunnelmole

source Tunnelmole 是一个简单的工具,可以为本地运行的 HTTP(s) 服务器提供公共 URL。例如,您可以获得一个公共 URL:

  • 网络服务器
  • Docker容器
  • API
  • 静态网站
  • etc..

安装方法如下:

【MIT 6.5840(6.824)学习笔记】Raft

1 脑裂

许多容错系统使用一个单主节点来决定主副本。

  • MapReduce:由单主节点控制计算复制。
  • GFS:主备复制数据,并由单主节点确定主拷贝的位置。
  • VMware FT:主虚机和备份虚机之间复制指令,需要单点的Test-and-Set服务确认主虚机。

这三个例子都是一个多副本系统,系统容错的关键点转移到这个主节点上

【论文阅读笔记】 SkexGen: Autoregressive Generation of CAD Construction Sequences With Disentangled Codebooks

1 摘要

SkexGen是一种新颖的自回归生成模型,用于创建CAD构造序列,其中包含草图和拉伸建模操作。这个模型利用不同的Transformer架构将构造序列中的拓扑、几何和拉伸变化编码到解耦的码本中。自回归Transformer解码器根据码本向量生成具有特定属性的CAD构造序列。广泛的实验表明,我们的解耦码本表示可以生成多样且高质量的CAD模型,增强了用户的控制能力,并能够有效探索设计空间。

【code】

2 引言

SkexGen是一种新颖的自回归生成模型,使用离散码本进行CAD模型生成。作者采用草图和拉伸建模语言来描述CAD构造序列,其中草图操作创建二维原语,拉伸操作将它们提升并组合成三维。Transformer编码器学习到解耦的潜在表示,作为三个码本,分别捕捉构造序列的拓扑、几何和拉伸变化。给定码本向量,自回归Transformer解码器生成草图和拉伸构造序列,进而处理成CAD模型。

【论文阅读笔记】Hierarchical Neural Coding for Controllable CAD Model Generation

1 摘要

作者提出了一种CAD的创新生成模型,该模型将CAD模型的高级设计概念表示为从全局部件排列到局部曲线几何的三层神经代码的层级树,并且通过指定目标设计的代码树来控制CAD模型的生成或完成。具体而言,一种带有“掩码跳过连接”的向量量化变分自编码器(VAE)的新变体在三个层次上提取设计变化作为神经码本。两阶段的级联自回归Transformer学习从不完整的CAD模型生成代码树,然后根据预期设计完成CAD模型。广泛的实验表明,在无条件生成等传统任务上表现出优越性能,同时在条件生成任务中实现了新颖的交互能力。

【论文阅读笔记】In Search of an Understandable Consensus Algorithm (Extended Version)

1 介绍

分布式一致性共识算法指的是在分布式系统中,使得所有节点对同一份数据的认知能够达成共识的算法。且算法允许所有节点像一个整体一样工作,即使其中一些节点出现故障也能够继续工作。之前的大部分一致性算法实现都是基于Paxos,但Paxos难以理解和实现,为此作者开始寻找一种新的易于理解的一致性算法,Raft则是作者工作的产出。

【论文阅读笔记】DeepCAD: A Deep Generative Network for Computer-Aided Design Models

1 引言

现有3D生成模型:

  • 3D点云:大量离散的3D点组成的数据表示形式;

  • 多边形网格:一系列相连的多边形组成的3D模型;

  • 水平集场:使用数值函数来表示物体的边界,并根据函数值的正负来确定物体内部和外部的区域;

Shell 23道例题实战

1 统计文件的行数

编写一个shell脚本以输出一个文本文件nowcoder.txt中的行数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

# 方法1:使用 wc -l 和 awk
# 统计行数并使用 awk 提取第一个字段,即行数
lines=$(wc -l nowcoder.txt | awk '{print $1}')
echo "使用 wc -l 和 awk:$lines 行"

# 方法2:通过输入流传递文件内容给 wc -l
# 使用 < 操作符
lines=$(wc -l < nowcoder.txt)
echo "通过输入流:$lines 行"

# 方法3:使用 cat 和管道传递给 wc -l
# 使用 cat 命令和管道
lines=$(cat nowcoder.txt | wc -l)
echo "通过管道:$lines 行"

# 方法4:使用 sed 统计行数
# 使用 sed 的 -n '$=' 选项
lines=$(sed -n '$=' nowcoder.txt)
echo "使用 sed:$lines 行"

2 打印文件的最后5行

查看日志的时候,经常会从文件的末尾往前查看,请你写一个bash shell脚本以输出一个文本文件nowcoder.txt中的最后5行。

计算机网络 面试题目总结

1 基础

1.1 计算机网络体系结构

计算机网络体系结构通过将复杂的网络通信分解成不同的层次,来标准化交互的过程。常见的模型包括 OSI 七层模型、TCP/IP 四层模型和五层体系结构。OSI 是理论上的网络通信模型,TCP/IP 是实际应用层面上的网络通信模型,五层结构是为了方便理解和记忆。

0%