阿里云暑期面经——数据库内核

#牛客AI配图神器#### 3.28一面
面试官提前加了微信,说分笔试和面试,让我提前准备,说手撕很简单不用担心,就放下心来了,结果一上来就是场景题,让写一个多线程读写安全的环形缓冲区,因为没写过多线程锁,有点懵
另外一道是给一个数字字符串,判断需要多少次删除操作,才能使其被25整除(但是一开始想岔去dp了,卡了很久,说明有时候真的不要把题目想得太难,抛开算法反而更好做orz)

前面两道题一共花了半小时,因为卡壳了很紧张,我还以为会被直接挂了,没想到面试官并不问题目的思路,而是直接开始问项目了:
项目的背景
项目的架构
追问了一下项目的细节是怎么实现的
进程的动态加载
内存的动态管理
进程和线程的区别
多个线程之间哪些资源是共享的
介绍一下另外一个项目,也是把背景和架构以及我的分工讲了一遍,面试官就没什么问题了

### 反问环节
1. **部门的业务主要是什么?** C语言写数据库内核的
2. **工作强度怎么样?** 早上九点半到晚上6点,一般不超9点,不强制加班,但有时候项目上线可能要熬夜
3. **部门对实习生是怎么培养的?** 每个人会分配一个师兄带,不会的东西都可以问
4. **转正率怎么样:** 转正率很高,基本上都可以转正
5. **面试表现以及技术栈的建议:** 只要能说清楚项目做的是什么就可以了;简历上没有涉及数据库,但由于是部门把简历要过去的,不能怪你2333

### 4.7 二面

**项目拷打**
两个项目的背景/结构,负责的部分是哪些
**操作系统,计网,数据各出了一个八股**
程序访问虚拟地址的时候发生了什么?
tcp和udp
了解数据库吗?数据库崩溃的时候是怎么回滚的?
**业务介绍**
**手头有哪些offer/流程?**
倾向于选择哪个?

**反问环节**
对实习生的培养规划
能否提前实习
后续还有几轮面试
工作强度

**手撕**
二叉树后序遍历,非递归方式实现
最长严格递增子序列(dp做的,面试官问有没有更好的做法,用贪心+一个辅助数组维持最小递增子序列实现了)

### 4.11 hr面

##### 1. 三跨考研,是如何选择专业和学校的?
##### 2. 本科的时候有没有接触过计算机课程?
##### 3. 你是专硕还是学硕,毕业对论文/专利有没有要求?
##### 4. 分享一下你科研或者学习过程中的一些经历或者挑战
##### 5. 详细讲一下科研项目
##### 6. 你刚刚说到了和师兄分工合作,那你觉得你核心贡献是什么?负责哪个部分?项目结果满意吗?
##### 7. 另外一个项目看起来更偏工程一些,能不能介绍一下项目背景/扮演角色/参加的契机?
##### 8. 为什么对计算机底层感兴趣?现在大家都往应用层或者大模型相关发展?
##### 9. 现在手头还有那些offer或者流程呢
##### 10. 实习地点的选择
##### 11. 除了学习之外,你还有什么兴趣爱好?
##### 12. 你觉得你压力比较大的时候是什么?
##### 13. 在决定未来方向的时候受到了哪些因素影响?怎么去重整自己的经历
##### 14. 很多同学觉得考研压力大,但是你觉得决定考研前压力更大,这是为什么呢?
##### 15. 实习的时间大概是从什么时候到什么时候,你个人计划实习多久

#### 反问环节
1.阿里云的培养模式
2.部门的业务是什么
3.面试多久会有结果呢 **(一周内,面试完会和前面的面试官沟通)**

### 4.16官网流程挂,问了hr说相比起来其他同学更匹配,应该就是被横向对比了原本感觉面试表现和体验都不错
#实习进度记录#
全部评论

相关推荐

07-23 22:03
已编辑
武汉大学 Java
本来以为快star一面挂已经够狠了,楼主也早就不想搞db内核开发了。结果teg hr前天找到楼主,楼主以为是搞网络的就接了。结果是搞tdsql的组,100+人搞自研db的组,what can I say。1. 算法题,四则运算式2. 起手式,C++内存序了解过吗,当然没有啊哥们,业务岗大招当平a放啊。3. 安慰一下楼主,来个简单的raft 3节点和4节点比较4. 拷打实际场景节点掉线怎么快速恢复服务,怎么分散读请求压力,不懂啊,楼主能说出来的readindex流程都是一眼初学者的臆想,面试官频繁打断5. 安慰一下楼主,15445的lru-k作用6. 15445的buffer pool怎么跟磁盘交互的,脏页调用什么系统调用写入磁盘,有什么优化,不懂啊,鬼知道啊7. 了解过io_uring、direct io等这类概念吗,明知故问啊这不是8. K8s使用过吗,没有9. c++20 协程用过吗,没有10. thread_local用过吗,没有11. 多个线程访问原子变量和单个线程访问原子变量谁快?扯着扯着又扯到内存序,扯到内存序就抓瞎12. 所以怎么做全局计数器的优化,单核做到1亿的ops,八核做到8亿的ops,,不懂啊,饶了楼主吧。13. 反问:业务:db内核组,CSIG是调用这个组写的db的,100+人,还在扩张规模:因为是纯自研,所以比快手的10+人团队规模大10倍楼主疑似有点自取其辱了,明明看teg网络那个组的面经也不难就想着投投看,结果是个db内核组。快star还乐意跟楼主聊聊事务隔离级别这种务虚的东西,这次面试说到优化就是实际场景、cpu指令、io模型,楼主也没db初创实习经历啊,招人bar这么高干嘛捞楼主面试。
两月华子焊一生:更难绷了,招聘状态还进入复试了,不过这种场面楼主暑期实习就经历过了,无非是不想主动挂所以拖两周自动挂
查看12道真题和解析
点赞 评论 收藏
分享
1.简单介绍一下项目2.你怎么用的rabbitmq解决订单超时取消利用了消息延迟插件,介绍了一下插件原理3.除了这种方式还有吗,不采用mq异步线程和时间戳判断超时时间4.还有别的方式吗?项目非常小,有没有更可靠更简单的方式?答不上来- 定时任务(如 Spring 的@Scheduled或 Quartz):每隔固定时间(如 1 分钟)扫描订单表,判断超时状态(适合小项目,轻量且可靠,无需引入 MQ)。- 优势:实现简单(几行代码),依赖少,适合数据量小的场景。5.那你有考虑过你为什么要设计使用rabbitmq吗?没考虑技术选型逻辑:需结合项目场景说明必要性,如 “订单超时取消是异步场景,用 MQ 可解耦订单系统和取消逻辑(避免订单服务阻塞);且延迟插件能精准控制超时时间,比定时任务更高效”6.服务降级是什么?7.你的服务降级对你的系统有什么提升吗?8.你还有别的手段提高用户体验提升系统性能吗?回答不满意- 缓存(Redis 缓存热点数据,商品详情,减少 DB 查询);- 异步化(非实时操作异步处理,比如 “下单后发送短信” 用 MQ 异步,避免阻塞主流程);- 数据库优化(索引优化、分库分表、SQL 优化);- 负载均衡(多实例部署,分担流量)9.jvm双亲委派、垃圾回收机制、jvm内存结构10.数据库的事务隔离级别有哪些11.sql语句的执行过程错答成sql语句各个部分执行的顺序正确流程:客户端发送 SQL 到服务器;解析器(Parser):语法分析(检查 SQL 语法)→ 语义分析(检查表 / 字段是否存在);优化器(Optimizer):选择最优执行计划(如走哪个索引);执行器(Executor):调用存储引擎接口执行,返回结果。12.mysql索引的b+树是怎么设计的13.为什么要设计成叶节点存储数据,非叶节点存储索引矮胖结构,查询速度快14.就这样吗,没有原理吗?b树不行吗?b+树就快吗?b树非叶节点也存储数据,不支持范围查找15.写sql语句怎么减少回表查询脑抽了,没答上来覆盖索引16.锁、死锁、sychronized、cas这些了解吗?
查看16道真题和解析
点赞 评论 收藏
分享
评论
1
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务