腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
腾讯云架构师技术同盟
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
腾讯云架构师技术同盟
返回腾讯云官网
木鸟杂记
专栏成员
举报
122
文章
82444
阅读量
28
订阅数
订阅专栏
申请加入专栏
全部文章(122)
数据库(36)
编程算法(27)
数据(27)
分布式(25)
https(24)
sql(21)
网络安全(20)
系统(17)
存储(16)
模型(9)
缓存(8)
数据结构(8)
go(7)
算法(7)
对象存储(6)
http(6)
开源(6)
腾讯云开发者社区(6)
node.js(5)
github(5)
mapreduce(5)
任务调度(5)
raft(5)
分布式系统(5)
日志(5)
git(4)
api(4)
unix(4)
函数(4)
论文(4)
事件(4)
事务(4)
索引(4)
html(3)
文件存储(3)
TDSQL MySQL 版(3)
spark(3)
zookeeper(3)
大数据(3)
框架(3)
面试(3)
排序(3)
c++(2)
python(2)
云数据库 SQL Server(2)
postgresql(2)
深度学习(2)
消息队列 CMQ 版(2)
rpc(2)
数据分析(2)
数据处理(2)
并发(2)
测试(2)
工具(2)
工作(2)
基础(2)
接口(2)
客户端(2)
路由(2)
内存(2)
软件(2)
设计(2)
数组(2)
同步(2)
协议(2)
优化(2)
指针(2)
官方文档(1)
ios(1)
iphone(1)
php(1)
javascript(1)
scala(1)
css(1)
jquery(1)
json(1)
android(1)
nosql(1)
ide(1)
apache(1)
日志服务(1)
云数据库 MongoDB(1)
腾讯云测试服务(1)
mongodb(1)
网站(1)
DevOps 解决方案(1)
数据备份(1)
日志数据(1)
企业(1)
游戏(1)
运维(1)
压力测试(1)
爬虫(1)
shell(1)
tcp/ip(1)
markdown(1)
windows(1)
kafka(1)
mvcc(1)
数据库管理(1)
数据湖(1)
教育(1)
app(1)
backup(1)
channel(1)
code(1)
cypher(1)
facebook(1)
file(1)
filter(1)
io(1)
key(1)
leveldb(1)
logging(1)
pipeline(1)
range(1)
state(1)
std(1)
编程语言(1)
操作系统(1)
程序(1)
创业(1)
大数据处理(1)
队列(1)
翻译(1)
分布式存储(1)
分布式事务(1)
服务(1)
服务器(1)
集群(1)
脚本(1)
交换机(1)
进程(1)
连接(1)
流量(1)
排序算法(1)
生命周期(1)
实践(1)
数据中心(1)
通信(1)
网络(1)
文件系统(1)
线程(1)
消息队列(1)
原理(1)
数据流(1)
搜索文章
搜索
搜索
关闭
Infra 面试之数据结构五:顺序组装
面试
生命周期
数据
数据结构
std
这是我在很早之前遇到的一个题,很有意思,所以到现在仍然记得。题意借用了 TCP 的上下文,要求实现 TCP 中一个“顺序组装”的关键逻辑:
木鸟杂记
2024-05-08
109
0
DDIA:流积分就是快照,快照微分就得到了流
日志
事件
数据
系统
数据库
我们在这里讨论的事件溯源(event souring)和领域驱动设计(domain-driven design,DDD)社区中的相关概念有些相似之处。由于这个概念会牵扯出流式系统中的一些重要的思想,因此我们这里简单讨论一下。
木鸟杂记
2024-04-23
96
0
DDIA:数据库导出就变成了流
数据库
日志
事件
数据
系统
我们已经对比了消息代理和数据库的诸多方面。在传统上,他们被认为是两个完全不同类别的系统,但在之前小节的分析我们看到,基于日志的消息系统中成功地从数据库中借鉴了许多经验。其实,我们也可以有另外一条路,从消息系统中借鉴一些思想,应用到数据库中。
木鸟杂记
2024-04-16
93
0
DDIA:日志和消息队列只有一线之隔
缓存
日志
数据
系统
消息队列
通过网络发送数据包或者给一个服务发送网络请求都是透明的操作,不会留下任何永久痕迹。尽管,我们可以将其永久地记下来(通过抓包工具或者日志工具),但通常不会这么做。即使消息代理会暂时地将消息写到外存中,但在其被消费后也通常会删除,这一切是因为,我们认为消息是一种暂态数据。
木鸟杂记
2024-04-10
128
0
写对代码的利器——“循环不变性”
数组
算法
指针
测试
接口
初学者在构建复杂代码时,往往会吃不准——我这样写对吗?本文就从”不变性“(invariants)的角度,给大家一些增加信心的”打开方式“。
木鸟杂记
2024-03-22
99
0
DDIA:消息系统——生产者和消费者的游戏?
数据库
游戏
事件
数据
系统
在第十章的时候,我们讨论了批处理——它总是读取一些文件作为输入,产生一些新文件作为输出。这里的输出就是一种“衍生数据”:即,如果有需要,我们可以通过再跑一遍批处理任务获取相同的结果集。从之前章节的讨论我们可以看出,这种思想简单却强大:像搜索引擎、推荐系统、分析系统等很多现代常见的数据系统都是基于这种思想构建的。
木鸟杂记
2024-03-22
170
0
想徒手写个文件系统?来一起呀
缓存
数据
索引
文件系统
指针
文件系统基本都是构建于块存储之上的。但当然,现在的一些分布式文件系统,如 JuiceFS[2],底层是基于对象存储的。但无论块存储还是对象存储,其本质都是按 “数据块” 进行寻址和数据交换的。
木鸟杂记
2024-03-05
160
0
现代操作系统最核心抽象之一 —— 文件
工具
接口
进程
系统
操作系统
说到文件,用惯了图形化操作系统的我们,第一反应是:文件夹中的一个个图标。但现代操作系统鼻祖 —— Unix 最初设计“文件”时,对其定义远不止于此。即使在今天的 Linux、MacOS 、Windows 的应用开发者眼里,文件的范围也要更大的多。
木鸟杂记
2024-01-24
154
0
DDIA:数仓和大数据的双向奔赴
大数据
框架
数据
算法
优化
在 MapReduce 流行这些年之后,针对大数据集的分布式批处理执行引擎已经逐渐成熟。到现在(2017年)已经有比较成熟的基础设施可以在上千台机器上处理 PB 量级的数据。因此,针对这个量级的基本数据处理问题可以认为已经被解决,大家的注意力开始转到其他问题上:
木鸟杂记
2024-01-23
161
0
DDIA:图计算和迭代处理
模型
数据
算法
通信
框架
在图数据建模一节中我们讨论过使用图模型对数据进行建模、使用图查询语言对图中的点边属性进行查询。但第二章相关讨论主要集中在偏 OLTP 方向——对符合要求的小数据集的查询。
木鸟杂记
2024-01-17
137
0
Y Combinator 2024 年关注 20 个创业领域
企业
教育
创业
服务
软件
虽然,我们投资过的最棒创业 idea,往往并不是一开始我们想找的,反而是那些无心插柳的。
木鸟杂记
2024-01-03
312
0
DDIA:MapReduce 进化之数据流引擎
mapreduce
模型
排序
数据
数据流
尽管 MapReduce 在本世纪10年代最后几年中被炒的非常热,但它其实只是众多分布式系统编程模型中的一种。在面对不同的数据量、数据结构和数据处理类型时,很多其他计算模型可能更为合适。
木鸟杂记
2024-01-02
150
0
DDIA:批处理和 MPP 数据库千丝万缕
数据库
模型
数据
索引
系统
我们已经讨论了串起 MapReduce 工作流的一些算法,但我们忽略了一个重要的问题:当工作流结束后,处理结果是什么?我们一开始是为什么要跑这些任务来着?
木鸟杂记
2023-12-26
210
0
分布式存储系统在大数据处理中扮演着怎样的角色?
存储
大数据处理
分布式存储
数据
系统
传统上,无论是基于 MapReduce 的数据流,还是基于 Spark/Flink 的流水线,其数据的来源和最终落脚点都可以是分布式存储(比如 GFS、HDFS、S3)。
木鸟杂记
2023-12-19
150
0
DDIA:批中典范 MapReduce
mapreduce
函数
连接
排序
数据
MapReduce 在某种程度上有点像 Unix 工具,但不同之处在于可以分散到上千台机器上并行执行。和 Unix 工具一样,MapReduce 虽然看起来简单粗暴,但组合起来却非常强大。一个 MapReduce 任务就像一个 Unix 进程:接受一到多个输入,产生一到多个输出。
木鸟杂记
2023-12-19
225
0
DDIA:Unix 中蕴含的批处理哲学
unix
程序
工具
数据
系统
在本书的前两部分,我们讨论了请求(requests)和查询(queries),与之相对的是响应(responses)和结果(results)。这种请求应答风格的数据处理是很多现代系统的基本设定:你向系统询问一些事情,或者你发送一个指令,系统稍后(大概率上)会给你一个回复。数据库、缓存、搜索引擎、 web 服务器和其他很多系统,都以类似的方式工作。
木鸟杂记
2023-12-13
217
0
DDIA:共识协议和分布式事务有什么关系?
分布式事务
事务
算法
系统
协议
分布式事务,尤其是使用两阶段提交实现的分布式事务,毁誉参半。一方面,他们可以提供其他方式难以实现的安全保证;另一方面,由于运维复杂、降低性能、承诺过多,他们广受诟病。为了避免分布式事务带来的运维复杂度,很多云服务选择不支持分布式事务。
木鸟杂记
2023-12-04
335
0
DDIA:一文带你了解“两阶段提交”
数据库
事务
算法
索引
系统
在分布式计算领域,共识问题是最重要而基础的问题。从表面上看含义很直接:可以粗略的理解为多个节点就某件事达成共识。乍看起来,你会觉得,这有什么难的?但不幸的是,很多系统都因为低估了共识算法的实现难度而问题百出。
木鸟杂记
2023-11-30
694
0
DDIA:分布式系统最重要的事情——“顺序”和“因果”
并发
分布式系统
日志
事件
系统
该定义暗含着:所有操作会形成一个确定的执行顺序。在图 9-4 中,我们就根据读到的结果来推测出了一个服务器端所有操作的看起来的执行顺序。
木鸟杂记
2023-11-27
524
0
用“隐喻”的方式带你建立对 Raft 的直觉
raft
论文
日志
同步
协议
相比 Paxos,Raft 的一大特色就是算法拆成了相对正交的几个部分——领导者选举、日志同步、状态持久化、日志压缩和配置变更。你如果对课程照目录看下就能看出来,除却最后一部分,这些模块就是我们课程 PartA ~ PartD 要分别实现的内容。将算法正交化拆分的好处是,让每个模块相对内聚,使得整体更易理解和实现——这也是 Raft 算法设计的初衷。
木鸟杂记
2023-11-20
203
0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档