自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Netty2】 Netty ByteBuf 扩缩容过程分析

【Netty2】 Netty ByteBuf 扩缩容过程分析ByteBuf 的组成ByteBuf 是一个抽象类,继承自Object,实现了ReferenceCounted,Comparable。ReferenceCounted是用于ByteBuf的回收工作,从其名称就能看出,是引用计数法,refCnt是引用数值;其提供了方法retain(),计数+1;release()方法,计数减1,当最终引用计数是0时,资源将被释放。Comparable主要用作比较。初始化 ByteBuf 并进行读写源码 D

2023-06-30 20:30:01 165

原创 Netty 1. Netty ByteBuf是什么

Netty 提供了CompositeByteBuf类, 它可以将多个ByteBuf合并为一个逻辑上的ByteBuf, 避免了各个ByteBuf之间的拷贝。通过wrap操作, 我们可以将byte[]数组、ByteBuf、ByteBuffer等包装成一个 Netty的ByteBuf对象, 进而避免了拷贝操作。ByteBuf支持slice操作, 因此可以将ByteBuf分解为多个共享同一个存储区域的 ByteBuf, 避免了内存的拷贝。

2023-06-28 21:17:25 135

原创 Presto的内存管理

Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。

2023-06-27 15:10:17 381

原创 iperf3 - 网络测试工具, 测试服务器之间的网络性能

最近公司在整改内网服务网络质量。内网间速度从百兆上升至千兆。此处记录下测试方法。

2023-06-27 14:44:32 733 1

原创 [fntdbs2013] The Design and Implementation of Modern Column-Oriented Database Systems

● seek times 寻道次数● tranfer time 传输时间把这个物化的时机尽量的拖延到整个查询生命周期的后期。把从各个列中获取的数据重新组装为行的过程称之为 tuple construction,late materialization 的目的就是尽可能推迟 tuple construction 的时机。延迟物化意味着在查询执行的前一段时间内,查询执行的模型不是关系代数,而是基于 Column 的。

2023-06-12 21:13:53 80

原创 Paper Translation : Modern Column-Oriented Database Systems - Late Materialization & Join

首先解释一下什么是物化:为了能够把底层存储格式(面向Column的), 跟用户查询表达的意思(Row)对应上,在一个查询的生命周期的某个时间点,一定要把数据转换成Row的形式,这在Column-Store里面被称为物化(Materization)。图1数据压缩,确定一列数据的规律* 查询时可以时读的数据量更少,在IO密集型计算中获得更多的性能优势* 相同类型压缩效率更高* 可以针对不同类型使用不同的压缩算法。

2023-05-16 17:28:30 146

原创 记一次内存溢出问题的排查过程

最近3个月,数据库内核做了非常多的新功能特性的开发,目前在测试收尾阶段。在进行多表多列(表数量1000+, 总计列数量100W+)场景的性能测试时,发现存储引擎节点在启动时出现启动加载过程缓慢和内存溢出导致启动失败的现象。此处记录的为内存溢出的排查过程。

2023-05-08 18:26:52 240

原创 What Does Tuple (Database) Mean?

在大数据领域的各种文献和Paper中,经常会提到tuple这个词。通过这篇文章我们来理解下。

2023-05-08 16:49:07 78

转载 JVM 内存分析 MAT 名词概念

最近在排查各种性能问题。又用到了好多年没有使用的mat。

2023-05-06 16:02:25 512

原创 Paper Translation : Modern Column-Oriented Database Systems - Compression

The Design and Implementation of ModernColumn-Oriented Database Systems.In this article, we survey recent research on column-oriented database systems, or column-stores, where each attribute of a table is stored in a separate file or region on storage. S

2023-04-24 21:14:30 87

原创 LevelDB 1. 基础数据结构

当需要在leveldb查找对象的时候,查找顺序是从第0层到第n层遍历查找,找到为止(最新的修改或者删除的数据会优先被找到,所以不会出现一个键有多个值的情况)。varint是一种紧凑的表示数字的方法,它用一个或多个字节来表示一个数字,值越小的数字使用越少的字节数。varint中的每个字节的最高位(bit)有特殊含义,如果该位为1,表示后续的字节也是这个数字的一部分,如果该位为0,则结束。slice的数据是外部管理的,因此slice的使用者需要保证生命周期内外部数组是有效的。,a的长度是5而不是3。

2023-04-15 14:30:02 69

原创 多年前的我,一如既往

闲暇时间打算用Rust撸一个LevelDB, 从0–1 打造一个kv数据库。至于以后的演进,暂时没想。最近几年一直在数据库领域学习和琢磨。一年来也逐渐成为了Rust的爱好者。不知不觉又晃三年,三年来经历良多。

2023-04-15 14:27:49 47

原创 Rust 常用 trait 实现

实现了 From trait 后会为你的类型提供 from()、into()、try_from() 和 try_into() 方法,使用 try_from() 和try_into() 方法始终是正确的,使用 into() 和 try_into()方法时要写上类型注解,否则 Rust 不知道你想转换成什么类型。可以直接使用 #[derive(PartialEq)] 派生宏交由编译器实现,对于 struct,Rust 会逐字段比较,对于 enum,会对 enum 中的数据进行比较。Eq,原因就是 NaN!

2022-09-28 14:41:34 879

原创 时间单位的换算(秒,毫秒,微秒,纳秒,皮秒)

时间单位的换算(秒,毫秒,微秒,纳秒,皮秒)

2022-09-05 10:45:07 37618

原创 1.1 算法篇-切面条

根据定理1,N|n=1 = 2^1+1 = 3,N|n=2 = 2^2+1 = 5,…1、不对折(对折零次),从中间切一刀,得到 2 根面条, 2 = 1 + 2。又有将一根面条对折一次,中间切一刀,会变成三根面条,对于本题,可以有。2、对折一次,从中间切一刀,得到 3 根面条, 3 = 1 + 2。3、对折两次,从中间切一刀,得到 5 根面条, 5 = 1 + 2。4、对折三次,从中间切一刀,得到 9 根面条, 9 = 1 + 2。一根面条,中间切一刀,会变成两根面条,所以对于本题,可以有。

2022-08-22 10:23:37 586

原创 Databend 设计概述 | 白皮书

Databend 是一个开源的、完全面向云架构的新式数仓,它提供快速的弹性扩展能力,并结合云的弹性、简单性和低成本,使 Data Cloud 构建变得更加容易。Databend 把数据存储在像 AWS S3 ,Azure Blob 这些云上的存储系统,可以使不同的计算节点挂载同一份数据,从而做到较高的弹性,实现对资源的精细化控制。Databend 受 ClickHouse 启发,计算模型基于 apache-arrow,开发语言 Rust,

2022-08-19 16:03:46 400

翻译 Firebolt whitepaper - 3. Scalability

官方文档的技术白皮书。

2022-08-17 19:05:59 84

翻译 StarRocks New DLA FrameWork

In StarRocks we have implemented1. a full vectorization engine2. a new CBO optimizer3. new pipeline based scheduling execution engine> 在 StarRocks 我们已经实现了> 1.全矢量化引擎> 2.新的CBO优化器> 3.新的基于管道的调度执行引擎......

2022-08-15 19:39:57 101

原创 UBUNTU 系统信息相关命令

UBUNTU 系统信息相关命令

2022-08-11 17:57:54 100 2

原创 [Issue Fixed]-Ubuntu20.10 执行apt-get update报错:404 Not Found [IP: xxx]

每一个Ubuntu发布版本都有它的结束时间,通常,Ubuntu发布版本支持18个月,而LTS (Long Term Support)(长期支持)版本分别支持3年(服务器版)和5年(桌面版)。对于那些使用旧版本的Ubuntu的用户,Canonical会维护 old-releases.ubuntu.com ,这是一个过期库的归档。因此,当Canonical支持的Ubuntu过期后,你必须把源切换到 old-releases.ubuntu.com, 或者 进行升级。...

2022-08-11 15:18:03 1256

翻译 Firebolt whitepaper - 2. Firebolt cloud data warehouse

The Firebolt cloud data warehouse was architected to deliver the speed and efficiency at scale needed for ad hoc, interactive operational and customer-facing analytics. Like some of its predecessors, it is built on a decoupled storage and compute architect

2022-08-10 20:10:17 137

翻译 Firebolt whitepaper - 1. Requirements for the modern cloud data warehouse

Today’s cloud data warehouse has to support more than traditional reporting and dashboards, and the analyst teams behind them.

2022-08-10 19:57:33 95

转载 程序员, 不要过度封装

过度封装是程序员最容易犯的错, 因为是否过度并没有固定的数值标准, 只能是有经验的程序员基于科学的判断. 过度封装的危害十分严重, 所以必须重视, 并且极力避免.首先, 什么是"过度封装"? 我们知道, 计算机科学领域最称为经典也是最强大的思想便是递归, 分而治之. 但是, 递归本身最重要的因素是: 结束条件. 一生二, 二生三, 三生万物, 总要有终止的条件吧? 不然一辆车不停地急驰, 你怎

2016-07-01 20:18:53 2728

空空如也

空空如也

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

TA关注的人

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