自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 Greenplum资源管理——Resource Queue常见使用问题

Resource Queue(资源队列)是Greenplum最早的资源管理方式,能够对数据库的CPU、内存等资源进行限制,对多租户资源限制、保障数据库稳定运行具有一定的作用。

2023-10-10 11:05:56 190

原创 Greenplum资源队列相关的死锁问题

说明了为什么数据库要有锁,数据库为什么会产生死锁,PostgreSQL怎么实现的锁,Greenplum怎么实现的资源队列,死锁的现象和产生原因,从理论层面说明了Greenplum常见资源队列死锁的底层原因,并阐述了解决办法。

2023-10-10 10:28:56 497

原创 Postgresql事务和Greenplum中的两阶段提交

PostgreSQL是当今最广泛应用的数据库系统(DBMS)之一。除了由于其具有优秀的性能、良好的兼容性之外,其完全开源的特性、完整的事务能力也是其中重要的原因。PostgreSQL支持完整的ACID特性,支持RC/RR/SSI等隔离级别。本文主要简化的介绍PG的事务模型和Greenplum基于两阶段提交的分布式事务。具体地,本文会首先介绍单机事务、ACID特性,以及PG中的事务实现;然后介绍一种分布式事务协议——两阶段提交协议,分析其实现、优点和局限性,并简单介绍以3PC为代表的两阶段提交协议优化。

2022-10-06 12:03:28 1458 1

原创 PostgreSQL保存点/子事务(SAVEPOINT)你想要了解的那些事

PostgreSQL是当今最广泛应用的数据库系统(DBMS)之一。除了由于其具有优秀的性能、良好的兼容性之外,其完全开源的特性、完整的事务能力也是其中重要的原因。PostgreSQL支持完整的ACID特性,支持RC/RR/SSI等隔离级别。PostgreSQL除了基础的事务能力之外,还提供了子事务的能力,也就是保存点(SAVEPOINT)的功能。保存点功能能够支持在发生错误时自动回滚到上一保存点,而无需回滚整个事务;或者在任意时刻回滚到某一特定保存点的状态,而放弃事务中的部分修改。

2022-10-06 11:20:12 2513

原创 Greenplum资源管理——Resource Group进阶篇(面向DBA)

Greenplum是一款广泛应用的开源MPP数据库的产品,兼容PostgreSQL生态,被广泛应用与大数据的存储与分析。ResourceGroup是Greenplum的一种资源管理方式。ResourceGroup由GP5开始被支持,相比于早期的ResourceQueue的资源管理方式,具有支持更细粒度的资源管理、支持组内资源共享等优点。在前一篇文章《Greenplum资源管理——Resource Group使用和实现分析》中笔者结合源码介绍了ResourceGroup的基础机制,这篇文章主要是...

2022-03-09 17:32:05 1127

原创 Greenplum资源管理——Resource Queue进阶篇(面向DBA)

Greenplum是一款广泛应用的开源MPP数据库的产品,兼容PostgreSQL生态,被广泛应用与大数据的存储与分析。ResourceQueue(资源队列)是Greenplum最早的资源管理方式,能够对数据库的CPU、内存等资源进行限制,对多租户资源限制、保障数据库稳定运行具有一定的作用。

2022-03-09 17:20:30 1178

原创 Greenplum错误排查——query plan with multiple segworker groups is not supported

query plan with multiple segworker groups is not supportedlikely caused by a function that reads or modifies data in a distributed table使用Greenplum的朋友可能会遇到过这样一个问题,即使没有遇到的话,社区关于这个错误也包含了很多issue。这个问题说实话不是第一次遇到了,但是当时第一次对内核还不够熟悉,加上时间紧任务重,就没仔细看,放过去了。这次选择了硬

2022-01-04 11:06:03 1273

原创 Greenplum资源管理——Resource Queue使用和实现分析

Greenplum是一款广泛应用的开源MPP数据库的产品,兼容PostgreSQL生态,被广泛应用与大数据的存储与分析。Resource Queue(资源队列)是Greenplum最早的资源管理方式,能够对数据库的CPU、内存等资源进行限制,对多租户资源限制、保障数据库稳定运行具有一定的作用。本文会介绍Resource Queue的使用方式,从源码角度分析它的实现,以及对它的优缺点进行总结。Resource Queue简介Resource Queue是Greenplum最早的资源管理方式,支持

2021-04-05 22:19:37 1236

原创 Greenplum资源管理——Resource Group使用和实现分析

Greenplum是一款广泛应用的开源MPP数据库的产品,兼容PostgreSQL生态,被广泛应用与大数据的存储与分析。Resource Group是Greenplum的一种资源管理方式。Resource Group由GP5开始被支持,相比于早期的Resource Queue的资源管理方式,具有支持更细粒度的资源管理、 支持组内资源共享等优点。本文会介绍Resource Group的使用方式,从源码角度分析它的实现,以及介绍一些使用中遇到的高频问题。Resource Group简介Reso.

2021-04-05 21:47:12 3129

原创 从Greenplum一个WARN的排查浅析PostgreSQL MemoryContext内存管理

Greenplum(GP)是一款开源的MPP数据库,兼容PostgreSQL生态。我们尝试基于开源GP支持多个副本,改造让集群从初始的最多只支持一个standby Master,到支持多个standby。相关实现并不复杂,内核和工具中没有太多对于standby个数的限制。经过多次的修改后,遗留的问题只剩下了一个:由一行代码引起的、但是找到这行代码花费了很久的WARN。本文就从这个WARN排查的角度,浅度分析下PostgreSQL 基于MemoryContext的内存管理。到处出现的WARN我

2021-01-16 18:19:58 828

原创 性能分析利器——最简单的利用火焰图教程C&Java

c语言下面火焰图绘制perf record -p 60175 -g -o perf.dataperf script -i perf.data | FlameGraph/stackcollapse-perf.pl | FlameGraph/flamegraph.pl > flameGraph.svgperf record -p 14975 -g -- sleep 30perf script | FlameGraph/stackcollapse-perf.pl | FlameGraph/fla.

2020-05-17 12:14:13 1719

原创 分布式数据库-CrateDB架构分析与源码阅读之常用命令

CrateDB的官方文档位于https://crate.io/docs/crate/reference/en/latest/,对整体结构、配置参数以及最佳实践等讲的都很好,个人认为是我看过的讲的最清楚的官方文档之一(也可能是我比较喜欢这种风格的文档,我很喜欢类似于kafka、hbase的这种官方文档,但有人就觉得接受不能),所以推荐有想入手看英文文档的朋友可以看一下。如果只想上手使用,想快...

2019-12-28 20:47:29 782

原创 分布式数据库-CrateDB架构分析与源码阅读之最佳实践

如果想要深入使用CrateDB,甚至用于生产的话,关于CrateDB的最佳实践还是很有研究价值的,比如对于同样一套框架,合理的参数配置的性能可能是不好的参数配置的性能的几倍以上。官网其实已经给出了很多清晰易懂的最佳实践案例:https://crate.io/docs/crate/guide/en/latest/best-practices/index.html 我不是一个喜欢翻译搬运的人,所...

2019-12-09 22:33:07 971

原创 分布式数据库-CrateDB架构分析与源码阅读之搭建部署

这篇博客主要是讲CrateDB的部署环境和开发环境的搭建,搭建过程如果有任何问题欢迎随时在评论区交流环境需求:Java版本>=11,无论是测试、生产环境的部署,还是本地开发环境都需要部署11.0以上版本的jdk,以及配置好JAVA_HOME。注意:CrateDB不能以root账号运行,以下所有命令都需要用一个非root执行。这篇博客亲身试验在mac和centos下部署是可行的,如...

2019-12-08 22:14:49 849

原创 分布式数据库-CrateDB架构分析与源码阅读之源码阅读

本章将以CrateDB3.3.6的版本为基础对CrateDB的源码做介绍,首先会对CrateDB各个包的功能做个整体介绍,然后会以一条insert语句的执行流程为例,结合源码介绍介绍crate执行过程,最后会对关键模块各找一个典型类进行详细的源码分析。由于CrateDB代码庞大,大概有几十万行,所以仅能通过对各个关键模块找典型类的方式介绍,也很推荐大家在阅读完源码介绍之后,详细的去看Crat...

2019-12-08 21:28:10 824 1

原创 分布式数据库-CrateDB架构分析与源码阅读之总体概述与架构分析

CrateDB是一个开源的HTAP(事务、分析混合型数据库)数据库,主页在crate.io ,项目开源在了github上(地址:https://github.com/crate/crate),支持SQL语言查询,支持基本的增删改查,能够快速对大规模数据进行准实时的分布式和分析。我会在这个专栏里详细介绍CrateDB的架构、常用命令、最佳实践等,并从源码角度对CrateDB的运行流程进行分析,对分布...

2019-11-25 22:18:52 2454

原创 分布式数据库-CrateDB架构分析与源码阅读之空间存储与空间计算

CrateDB除了支持存储常规字段之外,还支持对于空间字段的存储与计算,目前支持geo_point和geo_shape两种字段,能够支持点类型、线类型(lienstring)、多边形(ploygon)等基本空间类型的存储,以及multi geometry(比如multi ploygen)的存储与计算,能够支持按WKT格式导入。创建包含空间字段的表格create table test(id...

2019-11-25 20:07:51 750

原创 分布式空间分析引擎-Simba架构分析与源码阅读之SpatialJoin实现与总结

在分区器和索引部分铺垫了很多,其实Simba中Spatial join算子的部分是真正利用前面的结构来有效降低计算量的逻辑,也是simba最大的亮点。simba主要实现了三类spatial join算子:KNN query:select * from table IN KNN ($target) within ($k);Distance join:SELECT * FROM R JOIN ...

2019-11-23 21:56:42 722

原创 分布式空间分析引擎-Simba架构分析与源码阅读之SparkPlan优化

Simba在计算过程中主要进行了两方面的SparkPlan优化:1)基于索引的谓词下推;2)一些分区器的分区数动态计算。对这些概念有些模糊的朋友可以参见前几篇博客。基于索引的谓词下推为了减少参与join运算的计算量,simba专门为spatial join设计了谓词下推的优化,这部分主要是通过org.apache.spark.sql.simba.SimbaSessionState、org....

2019-11-23 21:37:49 418

原创 分布式空间分析引擎-Simba架构分析与源码阅读之索引部分源码

Simba实现了五种类型的数据索引,并结合Spark的RDD结构构建了two-level index的机制:在数据分区内部构建local index,以及为各个数据分区构建global index。本章会首先介绍simba的two-level机制,然后具体介绍几种类型的two-level index的具体实现,最后会结合上一章的分区器对几种索引进行总结与比较。two-level index机制...

2019-11-23 21:30:34 453

原创 分布式空间分析引擎-Simba架构分析与源码阅读之分区器源码

分区器是Spark中的一个概念,Spark依据分区器定义的分区规则把数据划分到多个数据分区,每个数据分区在一个task中由一个executor进行处理。开发者可以方便地继承Partitioner接口实现自己的分区器,定义numPartitions规定RDD的分区数以及在getPartition中实现分区规则。abstract class Partitioner extends Seriali...

2019-11-23 20:55:18 473

原创 分布式空间分析引擎-Simba架构分析与源码阅读之总体架构

Simba(SpatialIn-MemoryBig dataAnalytics)是一个基于Spark开发的分布式空间分析引擎,主打空间大数据的高spatialjoin性能 。它基于Spark SQL框架进行扩展,针对空间场景进行了一系列的算法研究和工程优化,在spatial join领域相对geospark、SpatialHadoop、Hadoop GIS等空间分析引擎具有一定的优势。下面...

2019-11-23 20:45:44 787

原创 第五届阿里中间件大赛参赛总结#复赛15名

在初秋写下这个标题,献给2019年的夏天。当时是六月初,正好结束实习回学校,毕业季一系列零零碎碎的事,觉得干点别的都不太合适,就决定把零碎的时间用来打第五届中间件的比赛,不知不觉三个月就过去了,中途掺杂了一系列想退赛的想法,最终还是坚持到了复赛结束,最终拿到了复赛15名,作为内部排名第二名受邀答辩,在决赛答辩中获得季军。我的队名是“你写代码像cxk”,这个队名是夹在一群大佬中间瑟瑟发抖的我的自...

2019-09-05 21:45:54 1110 1

单片机教程与实例

实例经典 单片机经典实用教程 十分有用 利于新手学习

2014-07-02

空空如也

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

TA关注的人

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