摘要:
bitmap的表象意义是,使用一个01标识位来表示是否的状态,可以达到节省空间和高效判定的效果。在我们的实际工作中,也有着许多的应用场景,相信了解bitmap定会给你带来一些额外的收获。 1. bitmap使用场景说明 比如,我想记录某用户某天是否登录过,我们有很多做法。简单的,只要用户登录,就在d 阅读全文
摘要:
如题:请求出两个字符串的差异部分,并以不同的颜色区分显示到浏览器上。 1. 解题思路 1. 找出两字符串中相同的部分,标记; 2. 找出两字符串中不同的部分,标记; 3. 尽可能长的匹配相同部分; 4. 尽可能少的使用复杂度(所有算法的重要目标); 2. 算法实现 算法实现如下:(js实现) <!D 阅读全文
摘要:
wait/notify 机制是解决生产者消费者问题的良药。它的核心逻辑是基于条件变量的锁机制处理。所以,它们到底是什么关系?wait()时是否需要持有锁? notify()是否需要持有锁?先说答案:都需要持有锁。 wait需要持有锁的原因是,你肯定需要知道在哪个对象上进行等待,如果不持有锁,将无法做 阅读全文
摘要:
我们都用过消息中间件,它的作用自不必多说。但对于消费者却一直有一些权衡,就是使用push,还是pull模式的问题,这当然是各有优劣。当然,这并不是本文想讨论的问题。我们想在不使用长连接的情意下,如何实现实时的消息消费,而不至于让server端压力过大。大体上来说,这是一种主动拉取pull的方式。具体 阅读全文
摘要:
上一节我们通过对x86的linux内核的讲解,知道了它的一个大概的启动过程。 /arch/x86/boot/header.S -> calll main -> /arch/x86/boot/main.c -> go_to_protected_mode() -> /arch/x86/boot/pm.c 阅读全文
摘要:
一直很好奇,操作系统是如何工作的?我们知道平时编程,是如何让代码跑起来的,但那些都是比较高层次的东西。越往后,你会越觉得,像是空中楼阁,或者说只是有人帮你铺平了许多道理,而你却对此一无所知。 1. 操作系统的困惑 当然了,也不是真的一无所知。因为有很多的操作系统方面的书籍,教你了解操作系统是如何如何 阅读全文
摘要:
我们知道sql执行是一个复杂的过程,从sql到逻辑计划,到物理计划,规则重组,优化,执行引擎,都是很复杂的。尤其是优化一节,更是内容繁多。那么,是否我们本篇要来讨论这个问题呢?答案是否定的,我们只特定场景的特定优化问题。 1. 应用场景描述 应用场景是:我们提供一个功能,允许用户从提供的字段列表中, 阅读全文
摘要:
clickhouse据说是用在大数据量的olap场景列式存储数据库,也有幸能够用到它在实际场景中落地。本篇就来说说简单的使用心得吧。 1. 整体说明 架构啥的,就不多说了,列式存储、大数据量、高性能。参见官方文档地址: https://clickhouse.com/docs/en/ 对于使用者而言, 阅读全文
摘要:
语法解析有个核心目标,那就是需要构建抽象语法树。虽然说语法解析框架可以很容易的识别出各节点的结构,但还需要我们按照自行需求,转换成期望的树结构,才能够方便使用。 基本上,所有的表达式,都会进行嵌套组合,从而才能够发挥其强大的作用。但,往往我们在做解析的时候,又是线性的解析。所以,最初,我们能得到的必 阅读全文
摘要:
是一个动态数据管理框架。 它包含许多组成典型数据库管理系统的部分,但省略了存储原语。它提供了行业标准的SQL解析器和验证器,具有可插入规则和成本函数的可自定义优化器,逻辑和物理代数运算符,从SQL到代数(以及相反)的各种转换。 以上是官方描述,用大白话描述就是,calcite实现了一套标准的sql解 阅读全文