目前就职于阿里云数据库团队,阿里云自研云原生数据仓库 AnalyticDB 优化器负责人,HBase/Cassandra contributor。
这篇文章19年写的,重新发到开发者社区翻新下。
SQL优化器是数据库、数据仓库、大数据等相关领域中最复杂的内核模块之一,它是影响查询性能的关键因素。比如大家熟知的开源产品 MySQL、PostgreSQL、Greenplum DB、Hive、Spark、Presto,都有自己的优化器。本文将由浅入深地带读者了解其中技术原理。 作者:阿里云 AnalyticDB MySQL 团队 — 郭泽晖(索月)
逝者如斯夫,不舍昼夜。 —— 孔子 时间如流水,一去不复返。自古不乏对时间流逝的感慨,而现代已经有很多技术记录流逝的过去。
前言 Cassandra是一款NoSQL分布式数据库,采用LSM Tree架构。众所周知,LSM有两个重要过程:数据顺序刷入磁盘生成数据文件(SSTable)和 数据文件合并(Compaction)。
前言 Cassandra是一款非常优秀的分布式数据库,可以灵活的在线扩容,满足业务水平扩展的需求。本文将会详细阐述扩容中可能遇到的问题,帮助Cassandra用户更好的管理Cassandra。 扩容原理 Cassandra采用一致性Hash算法对数据进行分区打散。
前言 Cassandra是一款去中心化的分布式数据库。一份数据会分布在多个对等的节点上,即有多个副本。我们需要定期的对多个副本检查,看是否有不一致的情况。比如因为磁盘损坏,可能会导致副本丢失,这样同一份数据的多个副本就会出现不一致。
背景 最近压测Cassandra的时候,发现一个Cassandra进程一直没有完成初始化。经过排查后发现是死锁问题,这篇文章将会带领大家回顾整个排查过程,学习如何排查Java死锁问题,是一个非常值得学习的经验。
背景 最近准备上线cassandra这个产品,同事在做一些小规格ECS(8G)的压测。压测时候比较容易触发OOM Killer,把cassandra进程干掉。问题是8G这个规格我配置的heap(Xmx)并不高(约6.5g)已经留出了足够的空间给系统。
前言 有时候我们操作数据库的时候不小心误删数据,这时候如何找回?mysql里有binlog可以帮助我们恢复数据,但是没有开binlog也没有备份就尴尬了。如果是HBase,你没有做备份误删了又如何恢复呢? 数据保护 当误删数据发生时候,不管三七二十一,第一要务是进入hbase shell,执行如下.
首先我们简单回顾下整个写入流程 client api ==> RPC ==> server IPC ==> RPC queue ==> RPC handler ==> write WAL ==> write memstore ==> flush to filesystem 整个写入流程从客户端调用API开始,数据会通过protobuf编码成一个请求,通过scoket实现的IPC模块被送达server的RPC队列中。
Thrift server简介 Thrift server是HBase中的一种服务,主要用于对多语言API的支持。基于Apache Thrift(多语言支持的通信框架)开发,目前有两种版本thrift和thrift2。