自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 问答 (4)
  • 收藏
  • 关注

原创 GIT cmd

【代码】GIT cmd。

2023-05-08 15:35:26 125

原创 GBase8a 指定写入方式

导出

2022-09-02 11:47:04 309 2

原创 GBase8a 指定导出的文件个数

导出文件

2022-09-02 11:44:53 199

原创 GBase8a 指定导出文件大小

导出文件

2022-09-02 11:41:32 161

原创 GBase8a 加载日志汇总与查询

加载日志

2022-09-02 11:39:00 332

原创 gbase8a的orato8a和db2to8a 数据抽取工具简介

orato8a,db2to8a

2022-07-29 11:06:17 307

原创 gbase8a 集群间同步工具

集群间同步工具

2022-07-29 11:01:38 599

原创 GBase8a 数据抽取与加载的关系

数据抽取,db2to8a

2022-07-29 10:58:50 186

原创 gbase8a 指定转义符为“g”

转义符

2022-06-29 18:08:33 385

原创 gbase8a 使用NULL_VALUES指定空值字符加载数据文件

NULL_VALUES,空值字符

2022-06-29 18:06:40 390

原创 gbase8a gcmonit的配置文件

gcmonit

2022-06-29 18:05:17 164

原创 GBase8a智能索引

智能索引是一种粗粒度索引,每65536行数据打成一个DC包,每个数据包在加载数据时自动建立智能索引,包含过滤信息和统计信息,在数据查询时不需要解包就能得到统计值,可进一步降低I/O,对复杂查询的优化效果明显。表中的索引自动创建,不需用户手工建立和维护; 索引本身占空间很少,扩展性很好,建立索引后无膨胀; 建立索引的速度快,后续的数据包建立索引的速度不会受到前面数据包的影响。与传统数据库索引技术相比,智能索引建立在数据包上(粗粒度索引),并且每个字段均自动建有索引,而传统索引建立在每行数据上(细粒度索

2022-05-27 17:21:04 729

原创 GBase8a高效压缩

高效透明压缩技术能够按照数据类型和数据分布规律自动选择最优压缩算法,尽可能减少数据所占的存储空间,降低查询的I/O消耗,提升查询性能。并设置了库级,表级,列级压缩选项,灵活平衡性能与压缩比的关系,而且压缩与解压缩过程对用户是透明的。 从 I/O 资源消耗节约的角度来看,对 I/O是主要瓶颈的分析系统而言,相较于传统的行式数据库,高效透明压缩技术可以带来约一个数量级的性能提升。压缩比可达到2~20倍甚至更优,远远高于行存储; 节省50%-90%的存储空间,大大降低数据处理能耗; 内置数十种不同等级..

2022-05-27 17:20:23 177

原创 GBase8a虚拟集群

虚拟集群以大规模集群为基础开发,一个集群中包含多个VC。每个VC是一个物理集群,该虚拟集群下的所有物理集群由同一套coordinator节点控制,各VC在根集群范围内独立运行,共享统一的入口; 虚拟集群技术提供的统一访问入口能够实现对仓库和集市的统一访问,对应用来说应用对多个物理集群的访问是透明的,访问的就是一个统一的集群,但内部可以根据业务系统把原来的物理集群可规划成多个虚拟集群;权限许可的情况下,各虚拟集群间可以相互访问。...

2022-05-27 17:19:29 105

原创 GBase8a分布式存储

GBase 8a MPP Cluster可处理PB级别以上的结构化数据,采用hash或random分布策略进行数据分布式存储。用户可以按照业务场景的需求,自定义数据分布策略,从而在性能、可靠性和灵活性间获得最佳匹配。随机分布模式随机分布模式是指数据库创建随机分布的分布表,在对其进行加载时按随机模式分发数据内容。哈希模式哈希模式是指在加载之前先对原始数据中的每条数据中指定的哈希列进行处理,处理后的数据按照哈希值装入特定的哈希桶中,每个哈希桶对应一个集群节点。这样每个节点所得到的

2022-05-27 17:18:54 138

原创 GBase8a列存和行列混存

数据在磁盘中按照列的方式进行组织和物理存储。列存储架构对查询、统计和分析类操作具备天然的优势。面对海量数据分析的I/O瓶颈,分析型数据库把表数据按列的方式存储,其优势体现在以下几个方面。降低I/O只有访问查询所涉及的列产生I/O,查询没有涉及的列不需要访问,不产生I/O。高压缩比压缩比可以达到 2 ~ 20 倍以上。支持行列混存支持列存和行列混存。...

2022-05-27 17:18:18 263

原创 GBase8a节点及服务部署方案

方案1coordinator节点与data节点分别部署在不同服务器上: 管理集群的节点单独部署在管理服务器上,所有coordinator节点需在一个网段内。 数据集群的节点独立部署在数据服务器上,data节点可跨网段部署,只要保证网络通信质量即可。方案2coordinator节点和data节点共同部署在同一个服务器上: 管理集群节点和数据集群的节点部署在同一个服务器上。 根据集群规模和业务并发量,Coordinator节点个数建议3~11的奇数个,如小规模集群(data节点数<=10)设

2022-05-27 17:17:28 341

原创 GBase8a基于GDB调试之三——保存文档

使用gdb代码调试或attach住正在运行的环境时,特别是当线程栈比较多的情况下,在大量线程栈择出有用线程时,一个个翻页往往会费时费力,这时把线程栈保存成文件的方式就成了便捷的选择(gdb) set logging file name.log(gdb) set logging on(gdb) t a a bt(thread apply all bt)(gdb) set logging off(gdb) quit此时在当前路径下可以打开name.log文件查看所有栈信息,并使用文本方式予以必

2022-05-27 17:16:44 273

原创 GBase8a内存池内存头信息

8a内存池的头部采用一个size_t存储内存信息,占用64位空间(8字节),其中新结构如下typydef struct { size_t nframe : 6; //栈帧数(0~63) size_t nclass : 9; //内存类别 size_t inheap : 1; //内存类别 size_t blktype : 8; //堆类型 size_t size : 40; //内存大小} Memor

2022-05-27 17:15:57 131

原创 GBase8a的errmsg.sys文件解析

errmsg.sys文件并非文本文件,文件开头部分存储的时二进制信息,当因升级导致该文件不匹配时,一般需要拿到匹配文件或生成工具可以解决该类保存,当然也可以手动调整,但需要了解该文件存储结构模型。开头32字节为文件头信息:0~31 FE FE 02 01 01 .. [6, 7] [8, 9] ... 08 00 (ushort)[6, 7] length : err文本信息大小总和 (ushort)[8, 9] count : err信息个数统计count * 2 字...

2022-05-27 17:14:44 163

原创 GBase8a基于GDB调试之二——计算结构体或类的成员变量的偏移地址

基于gdb进行调试或core文件内存分析时,有时需要直接或间接快速定位到某个类或结构体的成员变量的偏移地址,但是无从知道该地址的偏移量。当然可以通过计算该变量在结构体或类中的位置,从头计算地址累加得出结果,但是当类的成员比较多而且嵌套很多其它自定义类成员或结构体成员、指针时,计算量就会大大增加,这时可以借助空指针(0x0地址)进行强转来得到结果:(gdb) p ((gns::SharedConnection*)(0x0))->m_paramCannot access memory at add

2022-05-27 17:13:00 381

原创 gbase8a针对第三方库使用patch编译

在调用第三方开源库或封装库时,一般编译时自动解压库后再加载代码文件。当需要修改第三方库的源码时,往往除了解压库、修改代码、重新压缩外,还要考虑到第三方库本身的版本迭代即维护,因此采用一种打补丁的方式更便于维护项目代码变更以及保持第三方库的独立性,patch补丁则是再编译阶段之前就完成的工作。生成patch文件:$diff -uprN [原始文件或路径] [更新的问价或路径] > xxx.patch$修改第三方库的编译配置文件*.ebuild...src_configure(){

2021-12-28 18:24:30 219

原创 gbase8a使用Pipe管道进行线程间通信的机制

Pipe管道分为读和写读空Pipe时:写端全关闭,read则返回0,即end-of-file; 如果存在写端,且设置了O_NONBLOCK,read返回-1,errno=EAGAIN; 如果存在写端,且为阻塞状态,read则阻塞等待;写管道Pipe读端全关闭,进程将异常终止(SIGPIPE); 读端存在,且为阻塞状态,如果buf满了,则写阻塞知道Pipe buf被读出数据并存在空间,未满则立刻写入数据,并返回写入的字节数; 读端存在,且设置了O_NONBLOCK

2021-12-28 18:21:33 184

原创 gbase 8a基于x86的AT&T格式汇编寻址指令

gbase 8a程序目前大部分是运行于x86架构下linux环境中,汇编语法是基于AT&T格式的,这与Intel汇编格式有一定的区别,最主要体现在三个方面:1. 立即数:立即数前面需要加上$符号,例如,$0x3E,我们使用Imm表示立即数;2. 寄存器:寄存器前面需要加上%符号,例如,%rax,我们使用R[Ea]表示寄存器;3. 寻址模式:源操作数在左,目标操作数在右;其中主要的寻址模式如下寻址名称 格式 操作数值 示例 立即数寻址 $Imm I

2021-11-30 11:35:38 166

原创 gdb自定义脚本

使用gdb调试过程中,对于批量的数据处理和检测,尤其是来自内存的信息时,手动调试需要不停的重复操作:查看地址内容->取地址内容->查看新的地址内容……,当需要做成百上千的重复操作时,这时候,使用gdb的自定义脚本会带来很大的便捷。外部编辑脚本文档:name.gdbdefine my_print if $argc != 2 help my_print else set $list = $arg0 set $span = $ar

2021-08-02 20:09:21 1375

原创 LIRS机制基本原理

LIRS分为两个队列:Stack S :存储LIR块和HIR块(常驻或非常驻内存)List Q :存储所有常驻HIR块如下图所示对LIRS中的数据又三种访问情况:访问一个LIR块X。LIR块的访问会在S中命中,此时需要将改X移动到S的栈顶,如果X最初在栈底,那么移动之后需要做【栈剪枝】操作; 访问一个HIR常驻内存块X。该访问也会被命中,首先将X移动到S栈顶,然后:X在S中,将X状态由HIR修改为LIR,并从Q中移除,将S栈底的LIR块移到Q的尾端,并将状态修改为HIR,S执行【栈剪枝】;

2021-08-02 20:08:45 1481

原创 低版本环境运行高版本生成的ASan程序

Address Sanitizer(ASan)是一个快速的内存错误检测工具。它非常快,只拖慢程序两倍左右(比起Valgrind快多了)。它包括一个编译器instrumentation模块和一个提供malloc()/free()替代项的运行时库。从gcc 4.8开始,AddressSanitizer成为gcc的一部分。当然,要获得更好的体验,最好使用4.9及以上版本,因为gcc 4.8的AddressSanitizer还不完善,最大的缺点是没有符号信息。但是,由于经常限于现有测试环境或生产环境的原因,

2021-06-29 11:20:37 414

原创 数据库底层代码调试分析STL的内存之std::set

我们都知道STL封装的std::set内部的各元素是使用红黑树(RBtree)来管理的,以进行对元素按照默认的或指定的排序方式进行排序。红黑树的原理就不做过多介绍了,本次主要分析一下set元素的内存分布。以下分析基于64位操作系统。typedef struct tagCell{ int id; void *ptr; tagCell() : id(-1) , ptr(NULL) {} }Cell;struct CMP {

2021-06-29 11:16:06 484

空空如也

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

TA关注的人

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