24届数据库存储岗面经

个人bg

  • 24届老东西,本科偏自动化的AI,非计院
  • 211本,保研到985,本科主要是以lab为主,硕士阶段的研究方向主要是存储。
  • leetcode 300题,个人很讨厌算法,而且是夏令营结束后再也没刷题了,算法退化成草履虫水平了。

项目

  • 15-445
  • 6.824
  • Ob数据库大赛,主要写了初赛的经历,提了一嘴决赛
  • 其他:系统方向的,存储,数据库,分布式等看过不少paper,但是没正儿八经参加过科研,开源项目上redis、leveldb、etcd/raft的源码都看过(我感觉还挺算加分项的,但没被问到,感觉面试官不是很care)
  • 开源贡献:ob比赛期间给官方miniob修了两个bug,提了两个pr(约等于没有)
  • 还有一些别的,比如说MIT 6.830(Java实现的数据库),自己用go搞的redis,cpp webserver感觉没啥含金量就没写在简历上

投递情况

由于前一阵一直在搞ob比赛,最开始也没打算找实习,单纯是身边几个朋友实习了想跟着凑一波热闹。大概拖到十二月初才开始投简历,刚投第一份简历结果就甲流中招了,在床上又躺了好几天。感觉现在找实习有点晚了,boss上投的很多都未读或者已读不回,boss上就启思码回我了,smartx挂简历,selectdb投了没下文,所以现在结果非常惨淡,只有一家约了面试。

其实到现在我也并不是很坚定的想要实习,最近和导确定了毕设的题目,现在更想推进一波毕设,再加上硕士阶段也会放实习,现在找不找实习其实无所谓,主要是想体验一下面试,检查一下自己学的情况

启思码数据库存储岗

一面 60mins

Raft

  • 介绍一下824的项目架构
  • 一次读写请求是怎么完成的
  • range_scan怎么实现
  • 介绍一下raft
  • raft选举如何实现
  • 选举会出现活锁问题吗
  • 说一下raft的集群变更
  • 还有一些其他的,都比较基础

445

  • 介绍一下lru-k,主要解决什么问题
  • b+树并发

场景题

  • b+树如何和图数据库结合,怎样设计进行存储
  • 针对读请求如何提升并发
  • b+树写放大问题,如何解决
  • wal有什么用
  • copy on write
  • 某个节点有大规模的边应该怎么存储
  • 后面聊到了Treeline

c++

  • 左值右值
  • 虚函数

lru,当面写

二面 60mins

项目

  • 介绍一下 miniob架构
  • 说一下update-mvcc是怎么实现的
  • 具体update是怎么修改磁盘的上的数据的,同步还是异步?
  • 一个table的组织形式?都有哪些文件
  • 更新是in-place还是out-of-place的,什么时候进行compaction
  • 介绍一下page的概念,是内存当中的概念还是磁盘当中的概念
  • 如何偏移读取
  • rid和索引之间如何联动,更新时如何更新索引
  • text的实现方式
  • 如何定位系统瓶颈(火焰图,日志)
  • 火焰图尖的好还是平的好
  • 项目当中收获最多的是什么

c++

  • 左值和右值的区别,左值引用和右值引用之间的区别
  • 说一下完美转发
  • std::forward和move之间的区别
  • std::forword只能用在模版函数吗
  • c++多态的实现
  • 怎样找到虚函数表的首地址

操作系统

  • 线程间通信方式
  • 条件变量和什么配合使用
  • 互斥锁与自旋锁的区别
  • 编译连接的过程,应该是想问elf,数据段相关的
  • 进程和线程在上下文切换之间具体开销分别是多少
  • 说一说用户态和内核态的区别,为什么要设置两个状态(答了之后扯了一些目前的 kernel-bypass的设计,像是spdk等)
  • 说一下用户态和内核态的切换过程

数据库

  • 介绍一下隔离级别
  • 如何操作锁才能从可重复读提升到序列化
  • 有没有了解过图数据库
  • 图数据库的应用场景
  • 为什么会有join操作,图数据库怎样替代掉join的
  • 图遍历在存储引擎层面是怎样实现的
  • 有了解过ap数据库吗,介绍一下
  • ap底层列储是怎么实现的(数据排布问题和SIMD加速)

多线程排序(写了个多线程归并)

反问

  • 公司产品的应用场景
  • 存储引擎具体使用的什么
  • 对于大V等大规模数据,怎么进行优化
  • 刚才说了使用了S3存储,架构是存算分离吗
  • 一致性上是怎么设置和实现的
  • 如果入职是做什么的

小结

一面来说总体并不难,主要以问项目为主,项目问的也都比较的基础,都是些基本实现,没有涉及到优化相关问题,基本认真做过lab和看过raft论文都能答出来,后面问了个关于B+树的场景题,就是B+树怎么应用到图数据库的存储当中的,其实我对B+树了解的不太多,基本上就是只在lab当中写过,我更希望能和面试官聊LSM的。八股就问了两个c++的,也比较简单,算法题也没有难为我,总体来说一面体验还是很好的,面试官很亲切,关于图数据库相关的我不懂的也认真给我讲,也会去启发我进行思考,结果很快也就出来了,大概半小时。

二面面试官感觉态度比较冷淡,听起来不是很热情,差不多项目和八股五五开,项目主要在聊今年Ob比赛的情况,问了一些实现和设计,后面问了很多cpp和os的八股,基本没怎么看,疯狂道歉,数据库方面主要问了事务相关、ap数据库、图数据库存储的知识,这块平时经常接触,答的还不错。题是多线程排序的,写了个归并排序版本的,二面暂时没说结果,面试官说要是能通过的话后面还会有三面,等后续再更新吧

#实习##数据库#
全部评论
mark,最后怎么样?这些问题问大部分人都应该都是疯狂私密马赛.
点赞 回复 分享
发布于 2024-03-25 14:13 广东
真难啊
点赞 回复 分享
发布于 2023-12-24 18:08 上海
佬好厉害,我想做这些方面的😍
点赞 回复 分享
发布于 2023-12-22 15:23 山东

相关推荐

03-24 12:36
门头沟学院 Java
秋招跑了大半年,前前后后做了几十家公司的笔试,从互联网大厂到量化私募,从国企总行到游戏公司,真的见识了什么叫 “没有最难,只有更难”。1. 头部量化私募(九坤、幻方、灵均、宽德)难度天花板,没有之一,能完整做完的都是真大神。难在哪里:题型极其硬核,完全不是互联网笔试的量级。除了超难的算法题(普遍是 LeetCode Hard + 难度,还会涉及竞赛题),还有大量的概率论、线性代数、随机过程、高数证明题,甚至还有 C++ 底层原理、Linux 内核相关的硬核选择题,对数学和编程功底的要求拉到极致。真实体感:我做九坤的笔试,120 分钟,10 道选择 + 3 道编程 + 2 道证明题,选择题一半靠蒙,编程题一道没完整 AC,证明题直接空着,考完直接怀疑人生,非科班 + 数学功底弱的,直接会被劝退。2. 华为「天才少年计划」/ 高端岗位笔试普通 OD 岗的笔试难度就不低,天才少年 / 高端研发岗的笔试,更是地狱级。难在哪里:题量超大,难度拉满,对代码的时间、空间复杂度要求极其严格。通常是 5 道算法题,150 分钟,几乎全是 Hard 难度,涉及动态规划、图论、复杂模拟、数据结构设计,很多题都有隐藏坑,暴力解法直接超时,必须想到最优解才能 AC。真实体感:身边的 985 硕学长,刷了 600 多道 LeetCode,做华为高端岗的笔试,也只 AC 了 2 道半,对边界情况的处理、代码优化能力的要求,远比普通大厂高得多。3. 腾讯游戏 / 米哈游 游戏客户端 / 引擎开发岗笔试游戏圈的笔试,是出了名的难,完全是另一个维度的考核。难在哪里:不只是考算法,更是考游戏开发的硬核功底。题型覆盖 C++ 底层原理、计算机图形学、OpenGL/DirectX、物理引擎、数据结构、操作系统,还有超难的算法编程题,很多题都是针对游戏开发场景设计的,没接触过的话,连题干都读不懂。真实体感:做米哈游的客户端开发笔试,选择题一半都是图形学和 C++ 内存管理的硬核题,编程题考了游戏里的碰撞检测算法,完全没接触过的话,根本无从下手,非游戏开发方向的,大概率会直接交白卷。4. 字节跳动 算法岗 / 后端开发岗笔试互联网大厂里,字节的笔试难度是公认的第一梯队,虐哭了无数校招生。难在哪里:题量超大,时间极紧,难度梯度离谱。通常是 40 道行测 + 4 道算法题,120 分钟完成。行测题烧脑耗时间,算法题 2 道中等 + 2 道 Hard,几乎没有送分题,对做题速度和心态都是极致的考验,很多人行测就耗掉了一大半时间,算法题根本没时间写。真实体感:秋招做字节的后端笔试,行测就做了 50 分钟,剩下的时间 4 道算法题,只 AC 了 1 道半,身边很多同学都是全程被按在地上摩擦,能 AC3 道以上的,都能被称为大神。5. 六大行总行 / 政策性银行 科技岗笔试非技术岗里的地狱难度,难在离谱的题量和无所不包的考点。难在哪里:和互联网公司完全不同,不只是考编程,考点覆盖行测、英语、计算机专业知识(计算机网络、操作系统、数据库、组成原理、C++/Java)、金融知识、时政、常识,甚至还有性格测试,题量能到 200 多道,考试时间 3 个小时,全程手不停,做到最后眼睛都花了。真实体感:做某国有大行总行的科技岗笔试,3 个小时,200 多道题,英语还有 10 道完形填空 + 5 篇阅读理解,计算机专业知识考得又偏又细,做到最后手都酸了,连蒙带猜才勉强做完,考完直接脑子一片空白。最后想跟牛友们说,笔试只是秋招的一关,哪怕考崩了也不用自我否定,很多笔试的通过率本来就极低,不是你不够优秀。
你做过最难的笔试是哪家公...
点赞 评论 收藏
分享
评论
5
57
分享

创作者周榜

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