首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏嵌入式ARM和Linux

    sel4-微内核与宏内核

    代表OS:L4系列微内核。 宏内核——也称为单内核,所有的系统服务,包括任务调度,系统资源访问等等,都由内核态通过系统调用向用户态提供系统服务。 第二代微内核: 目标是解决第一代微内核的性能问题。代表是Liedtke的L3和L4。主要贡献是通过改进IPC机制,大幅提高了性能,并支持运行Linux,即L4 Linux(虚拟化)。 第三代微内核: 目标是解决第二代微内核的安全性问题,引用了形式化验证,号称世界上最安全的内核OS。代表是OKL4、seL4(我们后面的研究重点)。 第三代微内核的主要贡献是提出enndpoint的IPC机制、基于capability的权限管理机制,提高了安全性. 3 参考资料 如果想要深入了解微内核以及sel4,请参考下面的文章: sel4白皮书 sel4官方资料 网友laokz翻译的seL4内核参考手册

    3K30编辑于 2022-08-15
  • 来自专栏不温卜火

    Spark内核详解 (4) | Spark 部署模式

    org.apache.spark.deploy.yarn.ExecutorLauncher").getName } amContainer } 至此, SparkSubmit 进程启动完毕. 4.

    2K30发布于 2020-10-28
  • 来自专栏编程技术宇宙

    内核地址空间大冒险4:线程切换

    进入sleep()函数后,又来到了nano_sleep()函数,接着看到了一个syscall系统调用指令,我继续执行,来到了内核空间。 进入内核空间后,我接连穿过了 --> nano_sleep() --> hrtimer_nanosleep() --> do_nanosleep() --> freezable_schedule() 把我累得够呛 告别了长者,我和小T踏上了这神秘的switch_to,跟随着一步一步的指令,我把自己线程上下文的寄存器都保存到了我的内核栈上面,然后将栈指针指向了小T的内核栈,最后把小T保存在他内核栈的指令地址加载进指令寄存器 我小心翼翼的执行了这里的代码,只是简单输出了一行日志,然后来到了一个叫__restore_rt()的函数,又一条syscall指令摆在了我的面前,我没有犹豫再一次一头扎进了内核空间。

    1K20发布于 2020-04-24
  • 来自专栏一个会写诗的程序员的博客

    Linux 内核4 大 IO 调度算法

    Linux 内核包含4个IO调度器,分别是 Noop IO scheduler、Anticipatory IO scheduler、Deadline IO scheduler 与 CFQ IO scheduler 其中,对数据库这种随机读写的场景最有利的算法是DEANLINE。 IO调度器在内核栈中所处位置如下: ? ? 块设备最悲剧的地方就是磁盘转动,这个过程会很耗时间。 个人认为对于记录数据库变更日志的分区,例如oracle 的online log, mysql 的binlog 等等,最好不要使用这种分区。 因为这类写请求通常是调用fsync 的。 4、ANTICIPATORY CFQ和DEADLINE考虑的焦点在于满足零散IO请求上。对于连续的IO请求,比如顺序读,并没有做优化。 在传统的SAS盘上,CFQ、DEADLINE、ANTICIPATORY都是不错的选择;对于专属的数据库服务器,DEADLINE的吞吐量和响应时间都表现良好。

    6.3K31发布于 2020-04-16
  • 来自专栏半旧的技术栈

    数据库内核】01——从0到1数据库内核实战,挑战数据库领域最强大脑

    前 言 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端、数据库内核及生态开发 ☕专栏简介:相当硬核,讲解数据库内核开发的理论、实战,带你深入解读数据库源码,剖析内核原理 ,实战手撸数据库内核 文章简介:一篇文章快速上手数据库内核开发,从0到1部署开源数据库(MinoOB),引爆你的数据库学习热情,挑战数据库领域最强大脑,成为开源社区的contributor 文章对应视频教程 id=4921929 github仓库:https://github.com/oceanbase/miniob 文章目录 1、数据库系统概述 1.1 给入门小白洗洗脑 1.1.1 为什么学习数据库内核 为什么学习数据库内核 了解底层 出故障救火 数据库开发不吃青春饭,越老越吃香 未来趋势,国家要防止数据库被老美卡脖子 1.1.2 数据库开发入门难吗 不难。 -DDEBUG=ON -DCMAKE_C_COMPILER=`which gcc` -DCMAKE_CXX_COMPILER=`which g++` && make -j4" > ${HOME_DIR}

    2.5K10编辑于 2022-10-26
  • 来自专栏Linux驱动

    4.移植驱动到3.4内核-移植总结

    () 作用:申请usb缓冲区,并保持内存和硬件cache一致性 替代了2.6内核里的usb_buffer_alloc ()函数 4)usb_free_coherent() 作用:释放usb缓冲区 替代了 2.6内核里的usb_buffer_free ()函数 5) blk_fetch_request() 作用:获取块设备里的一个申请(申请:主要用来读写块读设备的扇区) 替代了2.6内核里的elv_next_request end_request()函数 2.结构体改动 1) struct net_device结构体 改动方向: 2.6内核下的net_device结构体成员(与操作相关的),都放在3.4内核的net_device /lifexy/p/7515488.html) 4.以移植LED为例 4.1首先直接修改Makefile 将以前的内核位置改为KERN_DIR = /work/system/linux-3.4.2 4.2 hardware.h> 2)将class_device_create()函数改为device_create() 3)将class_device_unregister()函数改为device_create() 4)

    2.4K10发布于 2019-05-24
  • 来自专栏光城(guangcity)

    数据库内核分析之GPDB and PostgreSQL Portal

    Portal 1.1 入口层 1.2 Portal层 2.游标Cursor 2.1 打开游标 2.2 关闭游标 2.3 FETCH or MOVE GPDB and PostgreSQL Portal内核分析 4. 设置portal策略(ChoosePortalStrategy)。

    1K20编辑于 2022-12-02
  • 来自专栏cwl_Java

    数据库PostrageSQL-管理内核资源

    这是一种通常被用于其他数据库(DB/2)的配置。 在HP-UX 10 上,SEMMNS的出厂默认值是 128,这可能对大型数据库站点太低。 在这个平台上,SHMALL以 4kB 的页面度量。 在更老的 macOS 版本中,你将需要重启来让共享内存参数的更改生效。到了 10.5,可以使用sysctl随时改变除了SHMMNI之外的所有参数。 对于将有巨大数量连接的数据库服务器,我们推荐的其他内核设置修改是: project.max-shm-ids=(priv,32768,deny) project.max-sem-ids=(priv,4096 在其他情况中,允许太多连接到数据库服务器本身也可能导致该问题。在很多情况下,最好减小max_connections并且转而利用外部连接池软件。

    1.3K10发布于 2020-09-17
  • 来自专栏roseduan写字的地方

    我的编程故事—8 数据库内核

    于是我开始在上海投递简历,接连面试了好几家公司,比较幸运的拿到了其中一些数据库内核开发的岗位机会。 我虽然凭借两个开源项目,有一些存储方面的基础知识,但是对于关系型数据库、分布式数据库,了解的东西甚少,基础其实也比较薄弱,但是得益于公司急需数据库内核方面的人,就算没有太多经验的也可以培养,于是我就比较幸运的转到了数据库内核 转到数据库内核之后,我开始了这方面的学习,以及适应新的工作,在开源项目上面花的时间就比较少了。 今年又发生了一些重要的事情,比如我开始更多的深入到数据库内核开发当中,并且开始撰写自己的课程,把自己所学的知识传播给更多的人,让自己的经历能够影响和激励更多的人。 这一次系列文章,主要是回顾了自己工作四年多以来的一些经历,从自学编程转码,到转行基础架构和数据库内核,然后折腾自己的开源项目,算是一个复盘了。

    44440编辑于 2023-11-17
  • 来自专栏CU技术社区

    4岁小女孩给Linux内核贡献提交

    今天在reddit上看到一个有趣的讨论,一个4岁的小女孩给Linux提交了一个补丁,并且这个补丁合并到了代码中。 链接如下: https://www.reddit.com/r/linux/comments/2pqqla/kernel_commit_4_year_old_girl_fixes_formatting_to 1、Linux 内核可以让所有人参与进来。 2、Linux 内核非常严谨,只要有错误,任何人都可以修改它。 我认为,写代码更重要的是一种思想,小女孩发现了这个问题,说明她肯定阅读过那份文档,对于我们很多人,都不能做到详细的阅读内核文档。 不说了,我也要去找个出错的字符提交一下。

    1.2K30发布于 2019-12-27
  • 来自专栏Linux驱动

    第3阶段——内核启动分析之创建si工程和分析stext启动内核函数(4)

    目标: (1)创建Source Insight 工程,方便后面分析如何启动内核的 (2)分析uboot传递参数,链接脚本如何进入stext的  (3) 分析stext函数如何启动内核:  (3.1) 1.4 最后点击synchronize files    创建source insight工程 2.内核启动之分析uboot传递参数和链接脚本 2.1 内核在uboot启动之前是进入do_boom_linux 虚拟地址,由于mmu未启动,所以=物理地址*/ adr r3, 3b ldmia r3, {r4, r5, r6}/* r4=3b处的虚拟地址 , {r4, r5, r6, r7} //r4=__data_loc , r5=__data_start , r6=__bss_start ,r7=_end , r3= processor_id , #4 strne fp, [r5], #4 //str r4,[r5] 将整个段里内容从 __data_loc段

    1.2K60发布于 2018-01-03
  • 来自专栏腾讯云数据库(TencentDB)

    腾讯云数据库内核揭秘 TXSQL Internals @2018

    2018年10月13日ACMUG南京站,来自腾讯技术工程事业群TEG基础架构部数据库内核团队专家工程师王少华,做了主题为「TXSQL Internals@2018」的分享。 王少华 ACUMG主席团成员,腾讯专家工程师,负责腾讯云数据库内核TXSQL技术架构与核心开发。 华中科技大学数据库所研究生毕业,先后在达梦,Teradata,Oracle等公司从事数据库内核研发,专注于数据库10+年。 其中在Oracle MySQL全球研发团队工作4+年,为InnoDB核心成员。 image.png CDB是整个数据库云服务的平台,而TXSQL则是这个平台里的数据库内核,提供数据库引擎和复制这两个核心功能。

    1.7K30发布于 2018-10-19
  • 来自专栏Linux驱动

    第3阶段——内核启动分析之创建si工程和分析stext启动内核函数(4)

    目标: (1)创建Source Insight 工程,方便后面分析如何启动内核的 (2)分析uboot传递参数,链接脚本如何进入stext的  (3) 分析stext函数如何启动内核:  (3.1) 1.4 最后点击synchronize files    创建source insight工程 2.内核启动之分析uboot传递参数和链接脚本 2.1 内核在uboot启动之前是进入do_boom_linux 虚拟地址,由于mmu未启动,所以=物理地址*/ adr r3, 3b ldmia r3, {r4, r5, r6}/* r4=3b处的虚拟地址 , {r4, r5, r6, r7} //r4=__data_loc , r5=__data_start , r6=__bss_start ,r7=_end , r3= processor_id , #4 strne fp, [r5], #4 //str r4,[r5] 将整个段里内容从 __data_loc段

    1.2K70发布于 2018-01-03
  • 来自专栏mysql

    hhdb数据库介绍(4)

    计算节点 计算节点是关系集群数据库HHDB Server集群体系的核心,主要提供SQL解析、路由分发、结果集合并等关系集群数据库的核心控制功能,是整个分布式服务的命脉所在。 逻辑库 逻辑库(LogicDatabase,可以简称为LDB)指客户端程序连接计算节点服务器后,可以访问的数据库,描述数据库表的集合。逻辑库是产品引申出来的概念,在实际中没有单一具体的实体。 管理平台 关系集群数据库平台又称为HHDB Management,可实现对计算节点数据库用户、数据节点、表类型、分片规则等信息的易用性配置,同时可提供计算节点服务状态监控、异常事件提醒、报表查看、任务管理等智能运维相关服务 应用通过LVS的VIP访问HHDB Server的关系集群数据库服务,关系集群数据库服务对应用程序透明,计算节点集群中单个或多个节点故障对应用程序无影响。 HHDB Backup 本公司自研的关系集群数据库备份程序,负责业务数据的备份。

    23010编辑于 2025-03-07
  • 来自专栏多线程

    MyBatis查询数据库4

    </if> #{birthday}, #{head} ) </insert> 需要注意 test 中的 sex,是传入对象中的属性,不是数据库字段 = null”> 中的 createTime 是传入对象的属性,不是数据库字段 三、标签 传入的用户对象,根据属性做 where 条件查询,用户对象中属性不为 null 的,都为查询条件。 你可以根据自己的需求和情况,结合使用这些特性来构建更灵活、可维护的数据库操作语句。记得阅读MyBatis的官方文档以深入了解动态SQL的更多用法和细节。

    44820编辑于 2023-10-16
  • 来自专栏PostgreSQL研究与原理解析

    国产数据库-内核特性-gbase8a智能索引

    国产数据库-内核特性-gbase8a智能索引 南大通用gbase8a MPP Cluster是一款分析型MPP数据库,有个特性鲜明的功能就是智能索引。 该索引建立膨胀率不超过百分之一,包含基于列的统计信息,可以有效过滤数据,大幅降低数据库磁盘IO,尤其是在聚合操作上也能达到很高的性能。 1、infobright Infobright是一款开源列式存储数据库,采用知识网格查询优化方式,对即席查询有很大提升。可惜已经没人维护了。而Gbase8a的列存就是基于infobright。 4)直方图:包含数值类型的列细腻些。根据每个DP中实际数据分布,将数值范围分成1024段,若某段中有数据则标记1,否则标记0。查询时,可以快速判断该列数据是否满足条件。 不了解gbase8a中对带group by的聚合到底是怎么实现的,有了解的可以一起讨论下) 3)对于红色的数据,将其对应的A、B包解压,进行查询聚合计算 4)将2)和3)的结果求和,返回。

    91840编辑于 2023-08-09
  • 来自专栏【腾讯云开发者】

    数据库内核工程师必读论文清单

    repid=rep1&type=pdf&doi=12fd1fe22687f5944613832de4e64ef902043aec) SQL-like and Quel-like correlation (http://www.vldb.org/conf/2004/IND4P2.PDF) Automatic Performance Diagnosis and Tuning in Oracle (2005 (https://www.cidrdb.org/cidr2005/papers/P07.pdf) 彩蛋时刻 为了致敬中国数据库从业者一起走过的半个世纪,腾讯云 TVP《技术指针》与《明说三人行》策划了 【中国数据库前世今生】系列记录片。 从 80 年代到 20 年代,每期将深入探讨该时代下的数据库演变历程,以及这些大趋势下鲜为人知的小故事。以下为 90 年代纪录片正片。----

    66911编辑于 2024-07-05
  • 来自专栏PostgreSQL研究与原理解析

    国产数据库 - 内核特性 - CloudberryDB中的Runtime Filter

    国产数据库 - 内核特性 - CloudberryDB中的Runtime Filter 今年5月份GreenPlum官方将GitHub仓库代码全部删除,各个分支的issues和bugs讨论等信息全部清除 ExecHashGetHashValue将内表值的join字段hash后放到bf中 3)ExecRuntimeFilter执行时,判断外表值是否在bf中,若在则将其输出,若不在则过滤掉,不进入join 4

    45710编辑于 2024-06-26
  • 来自专栏数据库干货铺

    深度优化数据库性能:Linux 内核参数调整解析

    数据库服务器性能的优化是每个IT团队关注的焦点之一。除了数据库引擎的优化之外,合理调整操作系统的内核参数也是提高数据库性能的关键。 本文将解析一些常见的 Linux 内核参数,以及它们在数据库服务器优化中的作用和建议的值。 1. :设置待处理连接的最大队列长度 net.core.netdev_max_backlog:设置每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目 net.ipv4.tcp_max_orphans ,可以更好地应对内核崩溃和系统出现问题的情况,提高系统的稳定性和可靠性 1.13 调整网络连接追踪 net.nf_conntrack_max = 25000000 net.ipv4.netfilter.ip_conntrack_max 结语 深度调优数据库服务器性能需要综合考虑多个方面,包括网络安全、连接管理、资源利用等。合理配置 Linux 内核参数是提高数据库性能的关键缓解之一。

    96930编辑于 2023-11-17
  • 来自专栏数据和云

    深入内核:Oracle数据库里SELECT操作Hang解析

    我们都知道在 Oracle 数据库里是“读不阻塞写,写不阻塞读”,那么是否可以认为在正常情况下,select 操作是怎样都能执行,始终不会被 hang 住的呢? Session 1: SQL> create table t3(id number); Table created SQL> declare 2 i number; 3 begin 4

    1.5K100发布于 2018-03-06
领券