虽然公司目前在生产环境上正式用上了kylin,但是由于其本身年龄不长,社区并不完善,难难免会暴露出各种各样的源码级别的问题(包括上一篇介绍的kylin的同步机制的问题)。这时候使用者想等着官方推出新的release未免太过于被动。于是,我们想着对kylin进行二次开发以满足我们对定制化需求。事实上,目前我们使用的所有开源框架在一定程度上都进行了多多少少的二次开发:
阅读全文
最近俩个月,团队整个数据基础架构慢慢转移到kylin上面来。而kylin也不负众望,对于一些复杂的聚合查询响应速度远超于hive。随着数据量的上来,kylin的单体部署逐渐无法支撑大量的并行读写任务。于是,自然而然的考虑到kylin的读写分离。一写多读,正好也符合kylin官方文档上的cluster架构。然而在实际的使用中也出现了一些问题:
最近,由于我司数据基础新架构正在陆续往以Kylin为中心的方向上走,而Kylin的底层存储又是重度依赖HBase,为了保证数据服务的稳定性,无奈最近开始研究HBase的源码以及工作原理。翻阅各种书籍博客之余,大致总结了一张初期的HBase架构脑图,之后会随着认知的深入去不断更新。结合源码方面的分析也会陆续进行…比较蛋疼的是,HBase的源码太过庞大,不如Kylin的结构清晰,慢慢看吧…
因为业务的关系,也零零碎碎的接触到了HBase,并对其产生了兴趣。这段时间又抽空看了一下《HBase权威指南》,于是,秉承着学习记录的习惯,把一些知识和经验写成了博客。
数据库的四种隔离级别
先来看看接口设计预览图:
自从正式工作以来,公司一直用的是Spring 原生的JDBC Template以及在其上封装的扩展的一些小工具, 而摈弃了Mybatis、ibatis等ORM框架。总的来说,这种做法对于开发效率来说提高不少,由于真正的查库操作不会直接穿透到Mysql,所以抗压性也没有太大的问题。
一直在断断续续看《java并发编程实战》这本书,每次看都有不一样的体会,前些日子在知乎上回答了一个关于ReentrantLock的问题java里是怎么通过condition接口是获取监视器方法的 ,那次回答之后也引发了我对其实现的进一步探究。