韩楚风
码龄17年
关注
提问 私信
  • 博客:1,091,806
    社区:21,641
    问答:15,309
    动态:322,381
    1,451,137
    总访问量
  • 206
    原创
  • 493
    排名
  • 16,682
    粉丝
  • 280
    铁粉
  • 学习成就

个人简介:多年服务端开发经验,目前在做数据库内核研发,希望和大家多交流数据库和产品研发方面的经验^.^

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2007-10-14
博客简介:

一个追逐梦想的码农

博客描述:
分享服务器并发/分布式技术,数据库内核原理,一起手写基础组件
查看详细资料
  • 原力等级
    成就
    当前等级
    9
    当前总分
    8,835
    当月
    146
个人成就
  • 数据库领域优质创作者
  • 博客专家认证
  • 获得7,643次点赞
  • 内容获得12,483次评论
  • 获得6,963次收藏
  • 代码片获得540次分享
创作历程
  • 74篇
    2024年
  • 113篇
    2023年
  • 17篇
    2022年
  • 2篇
    2020年
成就勋章
TA的专栏
  • 手写开源数据库toadb-保姆教程
    付费
    25篇
  • postgresql使用入门到进阶
    付费
    43篇
  • C语言实战-手写数据库内核组件
    付费
    17篇
  • 并发编程
    28篇
  • 数据库概念
    25篇
  • 软件架构
    1篇
  • 杂文
    3篇
  • 算法分析
    3篇
  • postgresql
    48篇
  • postgresql 初级使用
    2篇
  • postgresql内核源码分析
    44篇
  • postgresql内核开发
    3篇
  • 程序人生
    4篇
  • C语言特性
    3篇
  • 数据结构算法
    1篇
  • C语言练习题
    1篇
TA的推广
兴趣领域 设置
  • 人工智能
    深度学习数据分析
  • 网络与通信
    网络安全
TA的社区
  • 开源数据库
    7376 成员 665 内容
    创建者
2024年挑战自己
手 写 数 据 库 toadb , 正 在 进 行 中
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【linux 多进程并发】0203 网络资源的多进程处理,子进程完全继承网络套接字,避免“惊群”问题

本节主要分享了网络套接字在父子进程中的继承的情况。可以通过验证发现,父启动监听后,此时创建子进程,在子进程中也继承了监听套接字,它也可以与客户端建立连接;而父进程中的监听套接字,也仍然可以与客户端建立连接。当然其它网络操作步骤也是一样的,在父子进程中相同的套接字都会收到相同的网络事件,但最终只有一个进行处理,这样就带来一个问题,其它不处理事件的套接字会被频繁唤醒。
原创
发布博客 2024.11.05 ·
1383 阅读 ·
95 点赞 ·
168 评论 ·
75 收藏

【linux 多进程并发】0302 Linux下多进程模型的网络服务器架构设计,实时响应多客户端请求

本文主要介绍了基于多进程架构的网络服务器的设计与实现,在多进程架构中每个客户端会有一个服务端的进程专门处理通信,增加了对客户端消息的响应效率,提升了并发处理能力。
原创
发布博客 2024.10.30 ·
1921 阅读 ·
97 点赞 ·
180 评论 ·
85 收藏

【linux 多进程并发】0301 Linux创建后台服务进程,daemon进程,自己的进程可以被一号进程接管啦

通常我们在终端启动程序,该程序的父进程一般是终端进程,这样在终端退出时,会产生像SIGHUG信号发给所有子进程,子进程默认处理是退出。我们要创建后台服务进程时,必需让进程与终端无关,这就是示例代码中经过一次fork之后,父进程退出,而子进程让systemd接管的真正作用。本章节代码位于[gitcode](https://gitcode.com/toadb/hatchCode/overview), 路径为: multiProcess/ex02_multiprocess, 有兴趣的同学可以下载测试,当然
原创
发布博客 2024.10.22 ·
1893 阅读 ·
109 点赞 ·
193 评论 ·
93 收藏

【linux 多进程并发】0202 Linux进程fork之后父子进程间的文件操作有着相同的偏移记录,多进程操作文件的方法

好了,到这里,子进程是父进程的拷贝有了更加深入的理解,这里像编程语言中的深拷贝与浅拷贝的关系。而子进程其实是做了一些浅拷贝,引用的内核文件表项还是一份,这就会引起两个进程共同操作的问题。在这种情况下,每次操作需要加锁,同时要指定操作的位置和大小。
原创
发布博客 2024.10.17 ·
1518 阅读 ·
87 点赞 ·
155 评论 ·
83 收藏

【linux 多进程并发】0201 Linux进程fork内存空间,父子进程变量内存地址居然是一样的

在多任务并发编程中,使用多进程架构时,在使用fork创建的父子进程时,子进程得到与父进程相同的内存空间内容。进程的内存空间由虚拟地址描述,在使用时会映射到物理地址。
原创
发布博客 2024.10.11 ·
1496 阅读 ·
93 点赞 ·
159 评论 ·
89 收藏

【linux 多进程并发】0102 linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化

本文介绍了linux平台下进程的基本状态,这些状态经过细化后对应进程生命周期中的各阶段;进程从创建启动之后,就处于一个有限状态机中,从就绪,运行,可中断阻塞,不可中断阻塞之间进行转换,直到进程的终止。
原创
发布博客 2024.09.29 ·
4989 阅读 ·
124 点赞 ·
199 评论 ·
120 收藏

【linux 多进程并发】0101 linux下使用常见命令,来解析进程家族体系脉络

本文介绍了Linux系统平台下进程的相关概念,在Linux下所有进程是有继承关系的,最初的1号和2号进程分别是用户进程和内核进程的祖先,通过 `ps`,`top`,`kill`三个常用的命令,就可以查看进程信息,资源占用情况,以及结束进程。
原创
发布博客 2024.09.27 ·
1756 阅读 ·
63 点赞 ·
107 评论 ·
60 收藏

【手写数据库内核组件】1001词法分析器,语言被程序识别的第一步,将语句分解为最小词根token

本文介绍了词法分析的流程,规则匹配,以及分解token的机制,当然不同的语言,规则的复杂度也不同;它是一套通用的流程,因此诞生了很多优秀的词法分析工具,只需要定义规则,就能高效的完成分词的处理。
原创
发布博客 2024.09.20 ·
2926 阅读 ·
82 点赞 ·
173 评论 ·
71 收藏

【手写数据库内核组件】0104双向循环链表,麻雀虽小也需要精心设计,整体分层抽象,遍历的多种形式

前文介绍了单向链表,它结构简单易用,但是需要对数据经常随机插入和删除的场景,就显得非常麻烦,需要遍历找到前驱节点。今天来分享一下双向循环链表,每个节点有前继与后继指针,同时它链表的头和尾也是相连的,这样就可以在任意位置开始遍历。本文就来介绍双向循环链表有那些操作,来设计一个通用的双向循环链表组件。
原创
发布博客 2024.09.06 ·
1067 阅读 ·
83 点赞 ·
177 评论 ·
76 收藏

【手写数据库内核组件】0103单链表的分层设计,一套能复用的链表组件,操作原理与详细实现

前面几节介绍了链表的各种形式与应用,从本节开始进入到实战阶段,从开发大型软件角度,来看这些链表结构如何实现;这里的实现与初学时的例子会有很大的区别,在大型软件中,链表常常作为一个公共组件出现,开发者更多的是调用和使用,所以它必须有非常好的扩展性,能够承载很多数据类型,而链表算法非常稳定,不需要再次重写;虽然链表是很小的一个组件,不仅仅需要编码实现,也会有设计思想的融合,最后还会对它的功能和性能的分析。
原创
发布博客 2024.09.04 ·
1328 阅读 ·
62 点赞 ·
114 评论 ·
52 收藏

【手写数据库内核组件】0102 链表的类型,单向链表,双向链表,循环链表,二叉树,多路树等类型以及它们的特点,物尽其用

程序就是算法 + 数据结构, 今天我们就来看看最基础的数据结构——链表。在实际软件应用中,经常需要存储数据,往往存储的数据量在运行时会随着情况的变化而变化;而链表就是一个很好的容器,可以很好的应对变化,不仅对于链表中的数据插入删除,还是不断新增数据。基于链表,可以实现多种数据结构,如队列,栈,树等。本章节就来分享一下链表的形式。
原创
发布博客 2024.08.28 ·
892 阅读 ·
78 点赞 ·
172 评论 ·
69 收藏

安卓开发 模仿QQ的聊天软件程序

发布资源 2024.08.27 ·
rar

linux项目开发 下手写数据库内核 揭示数据库内核的奥秘

发布资源 2024.08.27 ·
pdf

【手写数据库内核组件】0304 缓存策略,缓存经典穿透,击穿,雪崩,抖动问题,在缓存池中实战中的解决与应对

一般增加缓存是为了减少IO次数,让更多业务需要的数据驻留在内存中,提升整体的性能。但是引入缓存后,会带来缓存穿透、抖动、击穿、雪崩的问题;本节就来看一看这些问题在我们实现的缓存池上如何解决的。
原创
发布博客 2024.08.26 ·
709 阅读 ·
42 点赞 ·
98 评论 ·
36 收藏

C 链式基数排序的代码实现

发布资源 2024.08.23 ·
pdf

C语言指针 指针的奇特用法与案例

发布资源 2024.08.23 ·
pdf

项目源码 词法语法分析器设计 一款从零开始的数据库内核

发布资源 2024.08.23 ·
pdf

数据结构 hash表 hash table 原理,以及实现介绍

发布资源 2024.08.23 ·
pdf

linux 读写锁 原理以及使用机制介绍

发布资源 2024.08.23 ·
pdf

【手写数据库内核组件】0303 数据缓存池(二) 缓存块使用前需要固定,缓存加载与无效,无锁的替换算法

继续数据缓存池的分享,继上节通过hashTable查找缓存数据块,如果找到之后会对数据块缓存进行操作,本节重点对数据块缓存操作时的注意事项与实现流程进行分析。
原创
发布博客 2024.08.21 ·
1013 阅读 ·
62 点赞 ·
147 评论 ·
54 收藏
加载更多