摘要: 缘起 每门编程语言基本都离不开并发问题,Java亦如此。谈到Java的并发就离不开Doug lea老爷子贡献的juc包,而AQS又是juc里面的佼佼者 因此今天就一起来聊聊AQS 概念 AQS是什么,这里借用官方的话 Provides a framework for implementing blo 阅读全文
posted @ 2021-06-02 00:27 墨小雨的猫 阅读(163) 评论(0) 推荐(0)
摘要: 背景 map是所有编程语言都通用并且常用的数据结构,而HashMap更是java中使用的最广泛的map 写这篇博客的初衷:① 学到优秀设计 ② 用好HashMap ③ 跟面试官/同事吹水 Problem before Read: HashMap中有哪些优秀的设计? HashMap是如何扩容的? Ha 阅读全文
posted @ 2021-05-30 11:53 墨小雨的猫 阅读(87) 评论(0) 推荐(0)
摘要: 每篇一句:临渊羡鱼 不如退而结网 背景 在分布式系统中,数据复制、数据分区、事务、一致性是不可逃避的问题 作为分布式、高性能的流处理平台,Kafka通过副本来解决了数据复制的问题,它的副本机制是实现kafka数据高可靠的基础 kafka写入消息核心流程 follower副本同步日志源码流程 kafk 阅读全文
posted @ 2021-03-05 22:40 墨小雨的猫 阅读(350) 评论(0) 推荐(0)
摘要: “5,4,3,2,1,新年快乐~~”,随着音乐餐吧里的众生和大屏里的央视主持人的齐刷刷呐喊,咱们都迈进了2021这个新世界;唯一的区别在于有的步伐是疲惫,有的是充满干劲 如果你问我是哪一种,那无疑两者兼备吧 疲惫的左脚 回顾2020,在欢声喜地的迎接中,谁都没有想到,它带给我们太多的冲击 已不记得是 阅读全文
posted @ 2021-01-01 11:36 墨小雨的猫 阅读(180) 评论(0) 推荐(0)
摘要: SqlQueryExecution ① 将Statement树转化为AST树 ② 做语法解析(根据元数据) ③ 权限校验 ④ 构造逻辑执行计划 LogicalPlanner#planStatementWithoutOutput:将AST树转为逻辑执行计划 ⑤ 基于RBO进行优化 ⑥ Stage划分 阅读全文
posted @ 2020-12-17 19:30 墨小雨的猫 阅读(300) 评论(0) 推荐(0)
摘要: Parser 作用(翻译官):做语法、词法的解析,将Sql字符串转化为AST树 核心:SqlParser#invokeParser 其底层会调用AstBuilder做解析 AstBuilder:父类SqlBaseVisitor 定义了所有的Sql操作,AstBuilder重写了这些操作的实现 Sql 阅读全文
posted @ 2020-12-03 17:56 墨小雨的猫 阅读(1042) 评论(0) 推荐(0)
摘要: 在学习一门技术的时候 我们应该先明白它出现的背景,解决问题的痛点是啥,我们为啥需要它,我们学它的目的是什么 接下来我们应该查阅相关的资料(优先官方文档,英语能力差的退而求次查阅相关书籍、博客)来了解它的整体架构(都有哪些角色,每个角色的任务),务必要烂透于心 通过了解整体架构,我们知道哪些模块/角色 阅读全文
posted @ 2020-11-12 09:47 墨小雨的猫 阅读(144) 评论(0) 推荐(0)
摘要: 番茄学习法 学习技术 先从学习该技术的框架,对轮廓有清晰的认识后再针对具体的某几个重点深入研究 阅读全文
posted @ 2020-10-12 10:22 墨小雨的猫 阅读(77) 评论(0) 推荐(0)
摘要: 说在前面 StringBuilder和String谁快?快多少?为什么在大量字符拼接要用StringBuilder? 取模和并计算谁快?快多少?为什么大部分开源项目都采用并计算替换取模? 你在开发中是否也遇到如上的问题,以上当然只是技术海洋的冰山一角,你在工作中,学习中遇到类似的问题数不胜数 不知道 阅读全文
posted @ 2020-10-10 17:34 墨小雨的猫 阅读(213) 评论(0) 推荐(0)
摘要: 每篇一句 但凡杀不死你的,终将使你变得更加强大 一、Channel简介 NIO中的所有IO都是从Channel开始的 读取数据:创建buffer缓冲区,然后数据会通过channel传到buffer,再从buffer中消费数据进行处理 写数据:创建buffer缓冲区,数据会先写到buffer中,再将b 阅读全文
posted @ 2020-10-10 15:20 墨小雨的猫 阅读(370) 评论(0) 推荐(0)