首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
走读专题
openGauss 之谓词下推代码走读
一. 前言 谓词下推是每一个SQL引擎必备的功能。本文主要通过走读代码了解openGauss中是如何实现谓词下推能力的。 谓词下推即是将过滤条件尽可能往tablescan的数据源节点下推,以实现上层算子尽可能少计算的能力,如下所示的执行计划便已经将谓词id<55下推到了tablescan节点。 二. 执行计划生成时将谓词信息保存在ScanState.ps.
阅读更多...
【Kafka源码走读】消息生产者与服务端的连接过程
说明:以下描述的源码都是基于最新版,老版本可能会有所不同。 一. 查找源码入口 kafka-console-producer.sh是消息生产者的脚本,我们从这里入手,可以看到源码的入口: if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport KAFKA_HEAP_OPTS="-Xmx512M"fiexec $(dirname $
阅读更多...
代码走读
代码走读原则 一:准备工作 结论(是 / 否) 1:目录层次结构是否遵循标准? 2:流程图是否清晰?是否能从流程图判断该模块的结构? 3:注释文档是否清晰完全? 4:readme文档是否遵循标准? 5:是否可在模拟器上运行? 二:程序结构: 结论(是 / 否) 1
阅读更多...
freeNOS代码走读杂记
最近在看github上一个微os的代码,freeNOS.走读的过程中顺便记一下学习的点 枚举用位偏移定义来提高效率 /*** Memory access flags.*/typedef enum Access{None = 0,Readable = 1 << 0,Writable = 1 << 1,Executable = 1 << 2,User
阅读更多...
[redis 源码走读] sds
数据结构 为了节省空间,增加内存的利用率,struct 数据结构没有进行内存对齐,redis 的瓶颈不在 cpu 而在内存。同时,为了灵活处理不同长度范围的字符串,redis 定义了下面几种数据结构。 typedef char *sds;#define SDS_HDR(T,s) ((struct sdshdr##T *)((s)-(sizeof(struct sdshdr##T))))#d
阅读更多...
2.00001《Postgresql内幕探索》走读 之 查询优化
文章目录 1.1 概述1.1.1 Parser1.1.2 分析仪/分析器1.1.3 Rewriter1.1.4 Planner和Executer 1.2 单表查询的成本估算1.2.1 顺序扫描1.2.2 索引扫描1.2.3 排序 1.3 .创建单表查询的计划树1.3.1 预处理1.3.2 获取最便宜的访问路径示例1示例二 1.3.3 创建计划树示例1例二 1.4 EXECUTOR的执行方式
阅读更多...
12 展讯Sprd设置-电池-AppStateInfoCollector.handleProcStateChanged 代码走读
1. AppStateInfoCollector.handleProcStateChanged 重点监听UID状态变化,来改变uid的状态 // return true: for new app state// false: for otherspublic boolean reportAppProcStateInfo(String packageName, int uid,
阅读更多...
springboot 2.7 oauth server配置源码走读一
springboot 2.7 oauth server配置源码走读 入口: 上述截图中的方法签名和OAuth2AuthorizationServerConfiguration类中的一个方法一样,只不过我们自己的配置类优先级比spring中的配置类低,算是配置覆盖,看下图所示: 它们都提到了 OAuth2AuthorizationServerConfiguration.applyDefault
阅读更多...
源码走读:Dubbo带权重的随机负载均衡算法与warmup
在分布式架构中,当下游服务端刚启动时可能并不能承载上游瞬间大流量过来,通过warmup的机制,客户端可以根据下游服务端启动时间进行缓慢预热配比放量。而dubbo就通过注册启动时间戳的方式告知调用方自己的启动时间,客户端据此进行预热配比放量,避免对服务端造成重启! 这篇文章是承接上一篇文章:Dubbo如何实现基于http的jsonrpc调用。上篇中介绍了关于Dubbo中如何对jsonrpc进行ht
阅读更多...
Twemproxy源码走读(3):初始化流程
Twemproxy初始化过程比较简单,这里把Twemproxy初始化过程分成两部分:(1)读取运行选项;(2)运行前的初始化和准备; (1) 读取运行选项 读取各项参数的设置,比如是否后台运行(daemonize)、日志级别、日志文件、配置文件名称等信息。 正如前一章(概述)里讲到的,Twemproxy使用了一个全局变量nc(类型为str
阅读更多...
Tomcat源码解读--代码走读之(二十四中的2-3-1)Valve.start(二十五)
1、AccessLogValve.start,类关系是:classAccessLogValve extends ValveBase implements AccessLog,abstractclass ValveBase extends LifecycleMBeanBase implements Contained, Valve (1)、调用LifecycleBase的start()方法。
阅读更多...
TI单芯片毫米波雷达代码走读(二十七)—— 角度维(3D)处理之通道间幅相一致性补偿
TI单芯片毫米波雷达1642代码走读(〇)——总纲 书接上回,我们知晓了3D处理的主要流程,相信大家都已理解基本的原理。在正式进行数据分析之前还有一步关键的步骤需要说明,即通道间的幅相一致性补偿问题。 细心的朋友可能注意到,在3D处理的的原码中有两个函数我一直没有讲: MmwDemo_addDopplerCompensation(DOPPLER_IDX_TO_U
阅读更多...