时序数据库管理系统(TSDB)近些年受到较多的关注,在性能监控场景更是起到了至关重要的作用。Khronos是阿里目前规模最大的时序存储引擎,由智能引擎事业部自研推出,为集团业务提供时序数据的存储能力和实时分析能力。我们之前的技术文章对该引擎进行过系统性的介绍,感兴趣的读者可以阅读回顾:《Khronos: 面向万亿规模时间线的性能监控引擎建设实践》在本篇文章中,我们将着重介绍Khronos在实时索引构建优化上的实践。
讲述消息系统在现代化演进中软硬一体化,百万队列,分级存储等诸多竞争力特性的诞生和落地效果。探讨业界领先的 Shared-Log 存储计算分离,FFM与协程,RDMA 传输,列式存储等技术,将消息向流的领域延伸。
作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第一篇。
在淘宝天猫两年半的A/B实验经历里,我从零到一分别经历了货架电商-淘特的A/B实验能力建设和内容电商-直播的A/B实验能力建设,前者更关注实验通用能力建设,后者更关注实验科学落地。在拥抱变化的当下,专注一个领域是幸运的,因此做个总结,聊聊我理解的“科学实验”怎么做。
在日常的编码实践中,经常会用到缓存来解决高并发问题,缓存可以说是解决流量洪峰的不二利器。虽然集团中间件团队已经构建了缓存的基础设施,已经帮助我们解决了绝大部分问题,但是在实际的编码使用过程中,应用端调用缓存API时还是存在下述几类问题: 使用缓存的逻辑非常通用,基本都是先查缓存,有直接返回,没有查DB,再放入缓存中。这段通用逻辑散落在系统的各个地方,违反了高内聚低耦合的原则。 缓存代码和业务逻辑代码深度耦合在一起,不仅降低了代码的可读性,还额外增加了系统复杂度。 如果要切换缓存(MDB->LDB)或者API升级时,所有涉及代码都需要改动。 如果要解决缓存击穿、缓存穿透、级联缓存等类似通用问题时,都需要通过框架去解决。 因此,缓存是什么,如何选择某一种缓存,都不是本文重点,今天就写写实际编码过程中,如何将缓存代码从业务代码中剥离出来,促使代码更简洁,更便于阅读。
一条SQL语句的执行究竟经历了哪些过程?作者作为一个刚入职的大数据研发新人对SQL任务执行整个流程进行了整理,本文就作者学习内容和体会供大家参考。