自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (1)
  • 收藏
  • 关注

原创 StarRocks 存算分离成本优化最佳实践

除此之外,对于某些导入模型,例如 Routine Load,我们还可以降低 Job 的并发 Task 数量来降低对象存储的写入频率,我们可以观察 BE 日志中每个 Task 的单次 KafKa 消费数据量,如果发现量较小,那我们就可以降低 并发 Task 数量来降低对象存储写入次数。由于 StarRocks 使用了多版本存储机制,用户通过 show data 命令看到的表的大小与表实际在对象存储可能会有所差距,因此,我们建议用户应当特别关注在对象存储上实际占据的存储容量。

2024-08-28 10:22:31 329

原创 StarRocks 巧用 Storage Volume,强大又便捷

我们可以为存算分离表每个表指定特定的 Storage Volume,可以在建表时通过属性设置,具体可参考文档 https://docs.starrocks.io/zh/docs/sql-reference/sql-statements/data-definition/CREATE_TABLE/。可以在单个集群内创建多个 Storage Volume(数量无限制),且为不同的表指定不同的 Storage Volume,这样不同的表数据可以存储在不同的地方,可带来更好的数据隔离性。

2024-08-28 10:16:58 458

原创 妙用 Batch,StarRocks 存算分离实时性能起飞

当大家提到存算分离时,尤其是考虑后端使用 AWS S3 为代表的对象存储作为数据存储时,直觉就是性能拉胯,只能用作批量数据处理场景,至少这是我在跟很多用户交流时获得的第一感受。而 StarRocks 作为一个具备强实时性数据分析引擎,在引入了存算分离架构后,又能否能胜任实时场景呢,无数用户心理可能会打个问号。我们内部也考虑到了用户的心声,在新版本中引入了一键性能飞升能力,当然,多说无益,我们拿实际测试来说话。

2024-08-27 10:57:45 843

原创 垃圾去无踪,生活更轻松 - StarRocks 如何清理对象存储垃圾数据

StarRocks 存算分离新架构使用采用数据多版本技术,每次导入会产生新的数据版本,用户通过对象存储观察到存储空间使用是所有历史版本的容量之和,而用户通过 show data 查看到的则是当前最新版本的数据容量,这两者之间可能存在一些差异,这属于正常现象。然后,用户可以根据解析出相应的 DB id、Table id、Partition id 等信息,然后在系统中查询该 Table、Partition 等是否存在,如果不存在,可以安全地删除对象存储上的数据(直接使用对象存储的命令行工具物理删除即可)。

2024-08-27 10:51:52 345

原创 StarRocks 存算分离数据回收原理

StarRocks存算分离表中,垃圾回收是为了删除那些无用的历史版本数据,从而节约存储空间。考虑到对象存储按照存储容量收费,因此,节约存储空间对于降本增效尤为必要。用户手动执行了删除库、表、分区等命令,如执行了 drop table、drop database 以及 drop partition 等命令随着系统内 Compaction 任务不断进行,合并之前的数据文件可以被安全回收目前在 StarRocks 的存算分离表存储在对象存储上的文件类型包含如下几种:Segment 文件。

2024-08-21 11:33:13 952

原创 StarRocks 存算分离 Compaction 原理

StarRocks 中每次数据摄入都会生成一个新的数据版本,而查询时需要将所有版本数据进行合并才能获得一个正确的结果,如果历史数据版本太多,那么查询时需要读取的文件数也会很多,造成查询效率低下。因而 StarRocks 存在内部任务定期将历史数据版本进行整合,消除重复数据记录,我们称之为 Compaction。Compaction 是为了将不同版本的数据文件进行整合,合并成大文件的动作,减少系统中小文件数量,进而提升查询效率。Compaction 调度由 FE 发起,BE执行。

2024-08-21 11:24:43 988

原创 借你慧眼,把 StarRocks Compaction 看得明明白白

StarRocks 中 Compaction 是为了将不同版本的数据文件进行整合,合并成大文件的动作,减少系统中小文件数量,进而提升查询效率。随着导入任务的执行,系统内部也在不断地调度执行 Compaction 任务,这些任务会被发往计算节点 CN 执行,系统也提供了一系列命令可以查看当前 Compaction 任务执行情况。因为 Compaction 对于查询性能的影响至关重要,因此,我们建议用户时刻关注系统中表与分区的后台数据合并情况,在这里我们给用户提供几点最佳实践的建议和指导。

2024-08-13 17:22:11 1042

原创 StarRocks 存算分离 Data Cache 二三事

StarRocks 存算分离模式架构中,数据导入后,会被写入远端对象存储。而对象存储由于其访问延迟较高特性,如果没有任何优化,每次查询直接访问后端对象存储,那么性能就会变得非常差,也就失去了 StarRocks 的性能优势。一般而言,在存算分离架构下需要在计算节点上使用本地磁盘来缓存系统经常访问的热点数据,这样,当查询访问到这些数据时,直接访问本地磁盘中的缓存即可,可以提供与存算一体架构同等的查询性能。

2024-08-13 16:37:36 541

原创 指如疾风,势如闪电-StarRocks Fast Schema Evolution in V3.3.0

使用 StarRocks 存算分离功能的同学可能之前常常被 DDL (常见的如增加列等)所困扰,主要在于 DDL 的执行时间过长并可能由此引发的一系列问题(如超时失败等),用户可能有时候不得不采用其他方式来替代(如按照新的 Schema 来重建表并重新导入数据)。幸运的是,在 3.3.0 版本中即将推出的 Fast Schema Evolution 能力让这一困扰我们许久的问题彻底变为历史。

2024-08-08 14:34:11 777

原创 延迟降10倍,冷查不担心

在数据海量增长的今天,自从 AWS S3 服务于 2009 年推出以后,对象存储凭借其 API 简单、成本低、高可靠性和可用性、海量扩展性等优势已经逐步成为海量数据存储的事实标准,各大云厂商以及私有化存储服务供应商也纷纷推出类似服务。随着 AWS S3 推出了15个年头,越来越多的服务开始基于对象存储来构建,由于构建在独立的存储之上,这些服务天然就是存储计算分离架构,节约成本的同时更带来了极致的弹性能力。

2024-07-15 17:47:32 682

原创 StarRocks 集群管理又添“猛将“ ,随配随用随时修改

快速解决你在集群管理中遇到的问题!

2024-07-11 11:53:43 266

原创 StarRocks 存算分离成本优化最佳实践

除此之外,对于某些导入模型,例如 Routine Load,我们还可以降低 Job 的并发 Task 数量来降低对象存储的写入频率,我们可以观察 BE 日志中每个 Task 的单次 KafKa 消费数据量,如果发现量较小,那我们就可以降低 并发 Task 数量来降低对象存储写入次数。由于 StarRocks 使用了多版本存储机制,用户通过 show data 命令看到的表的大小与表实际在对象存储可能会有所差距,因此,我们建议用户应当特别关注在对象存储上实际占据的存储容量。

2024-06-25 14:35:53 855

转载 单次遍历,带权随机选取问题(一)

在单次遍历,等概率随机选取问题中已经剧透了今天的内容,那就是带权随机选取(Weighted Random Sample)问题。问题描述:有一组数量未知的数据,每个元素有非负权重。要求只遍历一次,随机选取其中的一个元素,任何一个元素被选到的概率与其权重成正比。设元素总数为n,当然在遍历结束前n是未知的。设第i(1 i(> 0),则权重总和为w=∑ni=1wi ,也是在遍历结束时才

2014-11-23 10:00:50 1098

转载 golang: 详解interface和nil

golang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方有明确的说明:http://pkg.golang.org/pkg/builtin/#T

2014-11-20 21:57:02 2345

原创 golang编译过程的一个奇怪问题

在编译golang程序的时候,出现如下错误:cannot create /go.o: No such file or directorymake: *** [build/mds] Error 2错误原因go build的时候会创建临时文件,猜测与临时目录相关的问题,查看了下源代码

2014-11-17 09:17:59 1993

原创 nginx之hash

nginx的hash

2014-10-29 22:02:37 950

原创 nginx虚拟主机实现原理

nginx虚拟主机实现原理

2014-10-26 19:57:24 2991

原创 对ngx_http_conf_ctx_t结构的思考

前言ngx_http_conf_ctx_t结构是

2014-10-21 22:21:00 2351

原创 nginx配置解析原理(三)

在前一篇文章(二)中我们说到:

2014-10-21 05:47:51 1010

原创 nginx配置解析原理(二)

前面的nginx配置原理解析(一)我们重点chansh

2014-10-20 06:52:47 1635

原创 nginx配置解析原理(一)

概述这几篇博客文章我们将会重点分析nginx配置项解析的原理

2014-10-19 07:28:48 1811 2

原创 linux下的cc和gcc

在Linux下一会看到cc,另一会又看到gcc,感觉又点混乱的样子。它们是同一个东西么,有啥区别呢?一分为二地看:首先,如果讨论范围在Unix和Linux之间,那么cc和gcc不是同一个东西。cc来自于Unix的c语言编译器,是 c compiler 的缩写。gcc来自Linux世界,是GNU compiler collection 的缩写,注意这是一个编译器集合,不仅仅是c或c+

2014-10-08 21:29:56 702

原创 一次迷失的http请求--- 一次线上问题定位跟踪过程

概述本篇博客阐述一次线上问题

2014-10-01 06:43:37 2744 1

原创 x-forward-for科普

问题背景:在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.getRemoteAddr()获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办? part1:解决方案我在查阅资料

2014-09-26 07:18:12 3730 1

转载 nsq系统架构

go语言nsq源码解读二 nsqlookupd、nsqd与nsqadmin发表回复上一篇go语言nsq源码解读-基本介绍  介绍了最基本的nsq环境搭建及使用。在最后使用时,我们用到了几个命令:nsqlookupd、nsqd、nsqadmin、curl及nsq_to_file,并看到用curl命令写入的几个”hello world”被nsq_to_file命令保存在了硬盘文

2014-06-09 21:31:14 4028

原创 消息队列

关于消息队列,可以参考这篇文章:http://rdc.gleasy.com/gleasy%E7%9A%84%E5%88%86%E5%B8%83%E5%BC%8F%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97cloudmq.html

2014-06-09 05:31:44 798

转载 讲故事,学(Java)设计模式—抽象工厂模式

讲故事,学(Java)设计模式—抽象工厂模式 本文由 ImportNew - 汤米猫 翻译自 programcreek。欢迎加入Java小组。转载请参见文章末尾的要求。抽象工厂模式是在工厂模式的基础上增加的一层抽象概念。如果比较抽象工厂模式和工厂模式,我们不难发现前者只是增加了一层抽象的概念。抽象工厂是一个父类工厂,可以创建其它工厂类。故我们也叫它“工厂的工厂”。1、抽

2014-06-07 09:16:10 825

转载 讲故事,学(Java)设计模式—工厂模式

讲故事,学(Java)设计模式—工厂模式 本文由 ImportNew - ImportNew读者 翻译自 programcreek。欢迎加入Java小组。转载请参见文章末尾的要求。文章由@昵称神马的太讨厌了翻译。如果你也希望参与类似的系列文章翻译,可以加入我们的Java开发 和 技术翻译 小组。1.关于工厂模式工厂模式是根据不同的参数创建对象。例如用工厂创建人。

2014-06-07 09:14:14 709

转载 Unix调试的瑞士军刀:lsof

Unix调试的瑞士军刀:lsof这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat 是进行网络诊断的瑞士军刀,那么lsof就是Unix调试的瑞士军刀。Lsof是遵从Unix哲学的典范,它只做一件事情,并且做的相当完美——它可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文

2014-06-06 21:01:29 529

转载 使用 lsof 查找打开的文件

使用 lsof 查找打开的文件通过查看打开的文件,了解更多关于系统的信息。了解应用程序打开了哪些文件或者哪个应用程序打开了特定的文件,作为系统管理员,这将使得您能够作出更好的决策。例如,您不应该卸载具有打开文件的文件系统。使用 lsof,您可以检查打开的文件,并根据需要在卸载之前中止相应的进程。同样地,如果您发现了一个未知的文件,那么可以找出到底是哪个应用程序打开了这个文件。

2014-06-06 20:59:09 798

转载 Linux系统监控工具之vmstat详解

Linux系统监控工具之vmstat详解vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。本文介绍了虚拟内存的运行原理,继而介绍了vmstat的用法和使用范例。vmstat是一个十分有用的Linux系统监控工具,使用vmstat命令可

2014-06-06 20:45:04 698

转载 通过IOStat命令监控IO性能

网站的很多性能问题最终都会归结到IO头上,所以说理解iostat命令是非常有必要的。小技巧:你知道iostat是从哪里得到IO相关信息的吗?使用strace命令能跟踪到答案:shell> strace -eopen iostatopen("/proc/diskstats", O_RDONLY)注:Strace教程:5 simple ways to troubl

2014-06-06 20:27:55 1268

转载 iostat来对linux硬盘IO性能进行了解

以前一直不太会用这个参数.现在认真研究了一下iostat,因为刚好有台重要的服务器压力高,所以放上来分析一下.下面这台就是IO有压力过大的服务器 12345678$iostat -x 1Linux 2.6.33-fukai (fukai-laptop)         

2014-06-06 18:00:48 499

转载 go channel实现

go channel实现Go语言经过多年的发展,于最近推出了第一个稳定版本。相对于C/C++来说,Go有很多独特之出,比如提供了相当抽象的工具,如channel和goroutine。本文主要介绍channel的实现方式。简介channel有四个操作:创建:c = make(chan int)发送:c 提取:i 关闭:close(c)根据创建方式的不同,channel

2014-05-19 09:10:17 2176

转载 golang internals

2014年5月>日一二三四五六2728293012345678910111213141516171819202122232425262728

2014-05-17 08:07:43 846

转载 Go Data Structures: Interfaces

Go Data Structures: InterfacesPosted on Tuesday, December 1, 2009. Go's interfaces—static, checked at compile time, dynamic when asked for—are, for me, the most exciting part of Go f

2014-05-16 09:28:17 999

转载 Go 语言的错误处理机制

这段时间在学习 Go 语言,接触到一些比较“另类”的语言特性,其中一个就是它的错误处理机制,跟我以往所知的都不太一样。在我正儿八经地使用过的编程语言(C / Python / Ruby / JavaScript)里面,处理程序错误的方式大致有两种:1. 返回特殊值 2. 抛出异常。C 语言属于第一种。函数调用出错时会返回特殊值,并有可能根据场景设置某个全局的(一般是 thread-loca

2014-05-16 09:07:33 1684

转载 golang: 详解interface和nil

声明:文章zhuanzgolang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方有明确的说明:http://pkg.golang.org

2014-05-16 08:18:01 1088

转载 golang: 类型转换和类型断言

本文为转载,原文地址:http://my.oschina.net/goal/blog/194308类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转换,是因为interface类型作为一个特例,会有不同

2014-05-16 08:07:15 2068

转载 内存映射文件原理探索

分类: Linux2010-09-17 13:49 7268人阅读 评论(22) 收藏 举报null硬件驱动数据结构目录(?)[+]一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。

2014-05-16 07:41:56 698

hack's delight

hacker's delight专门描述了计算机编程之中的各种位运算技巧,看完受益匪浅

2012-10-23

空空如也

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

TA关注的人

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