自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DBScale SQL 层的改造工作

最高层次的设计首先,确定数据结构:struct record_scan_plan { DataSpace* output_dataspace; vectorvector > table_struct; string table_name; string schema_name; string output_schema_name; str

2018-02-06 15:23:32 1039

原创 分布式 Join 对比(DBScale vs SparkSQL)

环境DBScale 后端两分片(50.103, 50.104)Spark 后端三节点 (50.101,50.102,50.103)数据量 10G执行的测试是 TPCH 测试安装需要有pythonpip install pyspark需要安装 spark 集群 TPCH DBSCALE CROSS DBSCALE SPARK 2 16

2018-01-03 18:02:27 235

翻译 CockroachDB 物理执行计划简单解析

如果还没有看过 CockroachDB 逻辑执行计划, 请先看那篇文章。本文翻译自: CockroachDB 物理执行计划的分析概述本篇文章主要是讲一个分布式SQL语句的执行过程。总的目标就是处理或者移动的计算要靠近数据源。概念KV - 逻辑存储层的操作,对应 range 和 batch APIk/v - 一个键值对,通常是对应 KV 中的 entry。Node - 集群中的一个机器Cli

2017-12-13 15:04:55 1147

翻译 CockroachDB中的Context

在说 CockroachDB 中的 Context 的用法之前,首先要明白Context的基本用处。有两点: 1. 标志线程结束的信号传递。 2. 共享信息通过Context传播。 具体请参考:golang context.ContextCockroachDB中,Context的使用在cockroachDB中主要分为三个方面,结束线程的信号,日志共享信息,性能tracing共享信息, 如下图所

2017-12-07 09:08:56 170

原创 golang 的 context.Context

Context 包含 Deadlines, cancelation signals, 和 other request-scoped values 贯穿不同的API和go线程. Context 一般会组织成一个树形结构,每一个Context的实现对应一个线程或者多个线程。Context 树可能的形式如下:定义type Context interface { Deadline() (d

2017-12-06 17:02:05 256

原创 cockroachDB中的命令组件--cobra

细细观看cockroachDB的初始化流程,绕不过去的就是cockroachDB中使用的一个叫做cobra的模块。本文就是要简单梳理一下cobra模块,若是使用golang进行开发,很可能会用上这个模块作为命令的处理模块。cobra 是什么cobra是基于golang的客户端接口工具。为实现客户端准备的。cobra 被使用之后是什么样的以 cockroachDB 为例,命令最终的效果就是:./coc

2017-12-06 09:14:47 413

原创 CockroachDB 中的 Visitor模式加composite模式

之前的 四人帮 的书中,提到过很多的设计模式,但是实际在编写代码的过程中能够用到的却是很少的。在阅读 cockroachDB 源代码的时候,发现这个composite模式和Visitor模式混合使用,感觉代码简洁很多,这里就记录下这两个模式的用处。回顾一下composite模式简单来说,这个模式就是实现类的树形结构的模式。图片来自w3sDesign.com。 以 cockroachDB 源码的方式

2017-12-06 05:25:42 301

原创 CockroachDB 逻辑执行计划简单分析

代码位置pkg/sql/plan.go中的makePlan层次结构解析makePlan 主要是生成执行计划的作用。执行计划分为两个步骤: 1. newPlan 生成一个原始执行计划 2. optimizePlan 优化执行计划,生成最终执行计划newPlan 会根据语句的类型生成对应的planNode。后续的说明会根据 selectCluase 解释说明。下图就是组成makePlan的代码部

2017-12-05 16:46:04 904

转载 MySQL 索引的理解以及添加索引的原则

转载自 http://www.cnblogs.com/DaBing0806/p/4876228.html索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行,还需要考虑每次读入数据页的IO开销。而如果采取索引,则可以根据索引指向的页以及记录在页中的位置,迅速地读取目标页进而获取目标记录。大多数情况下都(默认)

2017-03-21 16:22:31 282

转载 分布式数据库集群中间件------为什么选择MySQL

因为这个内容太多人讲,我自己又除了mysql没有其他数据库的使用经验,转载其他人的博客来丰富一下吧。转载自:http://www.infoq.com/cn/news/2013/12/mysql-vs-postgresqlNaresh Kumar是一位软件工程师与热情的博主,对编程与新事物充满了激情和兴趣。近日,Naresh撰写了一篇博文,对开源世界最常见的两种数据库MySQ

2015-08-26 09:32:36 1887

原创 分布式数据库集群中间件------分布式系统特性

分布式系统特性:CAP上一节我们通过原始村落村民的例子来说明分布式系统中的三个要素的概念。本节,我将介绍分布式系统中应该解决的几个特性。CAP1. Consistency(一致性)2. Availability(可用性)3. Partition tolarance (分区容错性)

2015-08-25 09:00:45 785

原创 分布式数据库集群中间件------分布式中的概念

分布式系统中,存在着三组非常重要的概念:节点,网络,存储。下面我们来从书上说的先来理解一下:节点:系统中通过一定的协议完成相应的计算的功能的一台机器或者一个进程等等。网络:通信通道。存储:系统需要持久化的数据以及一些维护系统正常运作的元数据信息等。举个例子:古村落需要交纳税款:分布式系统就好比是一个古村落,村子中每个人都过着安逸祥和的生活。那么每个家庭就

2015-08-24 08:02:13 867

原创 分布式数据库集群中间件理解------分布式模型

什么是分布式计算?所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。----百度百科这就是说我们一台机器不能完成这样的工作量,需要将数据和计算分到多台机器上才能更加高效的处理请求。接下来首先需要决策的就是,要选择什么样子的分布式模型进行系统的设计,一般有

2015-08-23 22:46:25 1551

原创 分布式数据库集群中间件

我是一个分布式数据库集群中间件的开发者,已经一年多一点的开发时间了,今天总结点我所知道的一些事情,给有新近来到这个领域的研发人员一点借鉴。生活不易,赚钱不易,离开只是为多赚点钱。----学渣我只是说我所开发过的系统:后面文章会有详细的分析,这里只做简单的梳理。也就是你要研发分布式数据库集群中间件,需要向着哪些方面去思考。首先我们从名字去分析我们正在从事的工作内容:

2015-08-23 21:25:17 930

原创 网络编程----阻塞、非阻塞和同步、异步IO

我是学渣,但我想进步。本文是面试我的牛人问我的,你知道什么是阻塞、非阻塞和同步、异步IO么?自认为是分布式系统程序员的我竟然不知道。学习吧。

2015-08-17 10:08:44 595

原创 一个有趣的现象----innodb_io_capacity

之前公司客户有出现过一种情况,是使用sysbench 进行压力测试,在测试的过程中发生一个现象,如下所示下面是客户那里的输出结果:[1310s] threads: 600, tps: 2176.70, reads: 1087.10, writes: 1089.60, response time: 1076.07ms (95%), errors: 0.00, reconnects: 0.0

2015-06-30 14:47:24 858

原创 innodb_old_blocks_pct 和 key_cache_division_limit

这两个东西是什么呢?为什么把他俩放到一起来讲?因为他们虽然是不同的参数,但是他们都与一种技术有关,叫做缓存(cache).innodb_old_blocks_pct 是innodb buffer pool 对应的参数.key_cache_dividion_limit 是 key cache 对应的参数.下面讲讲这两个cache的基本原理.cache在整体表现

2015-06-29 10:33:31 845

原创 MySQL 过滤复制数据的几个参数总结

这几个参数,大多都会有坑,所以请仔细的看过说明再使用,这些参数包括:--binlog-do-db, --binlog-ignore-db, --replicate-do-db, --replicate-ignore-db,  --replicate-do-table, --replicate-ignore-table, --replicate-wild-do-table, --replicat

2015-06-27 07:25:09 1093

原创 MySQL 脏页与redo日志

首先说一下什么叫脏页,就是内存中的数据对应硬盘的数据有所改变.改变后的数据页就叫做脏页.它形成的前后关系以及讲解可以看:http://www.orczhou.com/index.php/2009/08/innodb-dirty-page-redo-log-2/comment-page-1/上面的博文比较学院化,老子不喜欢,但是讲的很好.我要用我自己的语言重新解释.

2015-06-26 09:44:59 3694 1

原创 innodb_thread_concurrency 和 innodb_concurrency_tickets

innodb_thread_concurrency 可能是很常见的参数配置,就是innodb内部的线程数量的控制参数.据说最好的配置是服务器核数的2倍.innodb_concurrency_tickets 这个参数也是对innodb内部线程限制的参数.官方讲解我们不讲,我只将我的理解:这两个参数的配合使用就是这样的一个故事.一个屋子内有一个头牌妓女叫innodb,

2015-06-25 10:50:32 2521

转载 MySQL的InnoDB索引原理详解

http://www.admin10000.com/document/5372.html

2015-06-03 14:53:34 322

原创 Federated 存储引擎的相关知识

最近看 federated 引擎,就稍微说一下federated引擎。说实话,这个引擎的劣势还是很明显的。但是还是有可用之处。federated 引擎主要的功能是作为一个远程的链接使用,也就是访问远程表像访问本地表一样。类似于linux中的软连接的概念。MySQL的federated表示例:

2015-05-05 07:55:04 151

原创 基于Galera 的高可靠解决方案---从galera集群复制到单独MySQL节点

Galera是MySQL的一个同步复制解决方案,也就是说,完全不会丢失数据。相比于MySQL的异步复制和半同步复制,galera提供的是更好的读扩展,但是对于写,Galera没办法提供扩展。galera随着集群的增加,写入速度也会随之降低。由此可知,若是读操作远大于写操作,那么用galera十分合适。场景描述:我公司有一个系统,需求是会有大量的人群进行查询工作,查询数据必须是实时数据,

2015-04-30 05:50:39 1462 1

原创 MariaDB 的主从复制以及建立主从复制后第一条语句就出错的原因

今天用到了MariaDB的主从复制,就梳理一下MariaDB的GTID。如果英语不错,请看文档,须知文档为主,博客为辅。英文文档:https://mariadb.com/kb/en/mariadb/global-transaction-id/MariaDB的GTID是单独的一种形式,默认就开启。MariaDB的GTID的组成是  DOMAIN ID-SERVER ID-

2015-04-29 20:06:45 715

原创 MySQL CUP 占用过高

首先考虑,CPU 为什么会占用过高?答案是CPU很忙,那么什么会导致CPU很忙呢?1. 频繁的上下文切换2. 计算量巨大3. 死循环4. 等等,还有我不知道的遵循上面的分析,可以推导,在MySQL服务器上,如果看到CPU过高,该怎么解决问题?频繁的上下文切换包括:锁很多

2015-04-27 22:09:03 568

原创 MySQL 的skip_name_resolved 模式解决远程访问MySQL慢问题,以及添加后warning解决办法

当MySQL被放到公共网络接受访问时,有可能会非常慢,就需要在配置文件中添加 skip_name_resolved。添加后访问速度提升很多。此时还会出现问题,就是在mysql表中有可能仍然有远程主机名(www.baidu.com)。虽然不会通过此用户进行访问,但是会报warning。解决办法:将引起warning的那条数据删除。大功告成。

2015-04-26 06:39:52 421

原创 MySQL Binlog 相关知识(二) -----BinLog 是什么样子

之前概括的介绍了binlog的使用情况以及binlog分类,下面会讲:1. Binlog文件的样子,在文件系统上表现的样子。2. Binlog 内部的每一个event(就是每一条需要记录的事件)的组织结构。3. 所有events 如何组织成为一个完整的Binlog。4. 我所说的都是 MySQL 5.6 版本,与5,.5 版本有许多区别,例如:GTID,checksum等。

2015-04-25 15:04:22 1214

原创 安装 MariaDB gelera cluster

MariaDB的gelera的安装包在MariaDB官网上面都有,下载连接https://downloads.mariadb.org/interstitial/mariadb-10.0.17/bintar-linux-x86_64/mariadb-10.0.17-linux-x86_64.tar.gz/from/http%3A//mirrors.opencas.cn/mariadb

2015-04-25 14:33:19 523

原创 MySQL galera 安装过程遇到的问题及解决方案

1: 缺少 libaio 包, libaio是linux下的一个异步非阻塞方式读写文件的接口。[root@12 mysql]# ./scripts/mysql_install_db --user=mysqlInstalling MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio

2015-04-25 12:26:22 6607

原创 MySQL galera 的安装使用

现在已经有整合版本,Mariadb galera cluster 和 XtraDB galera cluster. 我要介绍的是通过自己的编译,安装MySQL galera。准备工作:需要下载的内容:1. galera-src : https://launchpad.net/galera2. MySQL based MySQL/Galera cluster : https://laun

2015-04-25 10:00:00 1250

原创 MySQL Binlog 相关知识(一)

MySQL Binlog(本文主体是5.6,其它版本会说明)MySQL Binlog是记录一些对数据库修改信息的日志。举例(增,改,查,set 等等)首先说MySQL Binlog的作用是什么?1. 复制用途,MySQL replication 的传输介质。通过记录一个MySQL实例上发生的改变,应用到另一个数据库上,来实现复制。2. 数据的恢复,当一部分数据由于某些原因丢失,

2015-04-23 20:25:36 337

原创 从无到有,质的变化

今天我突然想写一些自己的博客,主要是记录我的技术历程以及我的错误,废话不多说,开始。我的工作内容是与MySQL相关的,所以接下来一段时间会写一些关于MySQL的知识记录,以方便后人翻阅。之后我会更新一些设计模式相关的文章,毕竟是程序猿。再后面我会恶补操作系统知识,将这方面知识捡一捡。再后面,随缘吧。

2015-04-23 20:17:55 362

空空如也

空空如也

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

TA关注的人

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