数据库内核开发 - 社招面经2

关联:百度 涛思数据 数翊科技 质变科技 TiDB 偶数科技

背景:9本 3年经验 社招

所有面试都有的自我介绍,离职原因,上一份工作的项目提问和反问环节都略过。

整体感受:

1、今年初的面试,感觉对项目和底层问的多,而不像前几个月爱问很多常规八股和DB基础概念;

2、年初机会也比年底多,DB内核方向很多公司都有hc开始招聘了;

3、初创公司感觉难度和大厂相当,并且算法题比我面过的大厂都稍难一点,算法现场不能给出最优解都会挂,所以拿到面试机会了就当做面大厂去准备吧。

数据库内核开发 - 社招面经1

欢迎交流。

百度 - Doris AI搜索引擎

4、DB

OLTP olap 区别,理解;

行存 列存使用场景?会怎么推荐给客户?

了解过Doris吗?

5、c++;java怎么样?

三种智能指针;weak-pointer怎么确定指向的对象是否有效?

virtual关键字作用;

lambda表达式,捕获参数,要注意什么?

C++原子变量,使用的内存模型是什么?

模板,完美转发(思考了一下没有问);

C++手动实现了析构函数,那么不会再默认生成哪些构造函数?

左值l,右值r,x值?怎么理解左值右值的区别?

gdb如何调试正在运行的程序?-p attach上去会阻塞进程,生产环境怎么gdb调试?或者说怎么抓取snapshot分析?怎么查看堆栈;

怎么排查死锁问题?

内存上涨,日志不全,怎么排查?

CPU瓶颈,怎么排查?

C语言,怎么跳到main函数开始执行的?

6、操作系统 Linux

线上看日志,用什么命令?

查看日志,如何检索某个字符串?

线程崩溃,会导致进程崩溃吗?

调试函数,如何确定哪些变量在堆、哪些在栈?栈有最大限制吗?

函数中定义了一个10M的数组,不涉及申请内存,会出现什么情况?

怎么根据进程PID确定它监听的端口?

7、网络

tcp udp属于哪一层?

arp协议了解吗?

http属于哪一层?

udp相对于tcp的好处?

tcp三握、四挥过程?

没有手撕,可能因为八股/场景题答得太差了;

面试官总是思考一阵子才给出问题,不知道是面试别人的经验少了还是KPI的成分多;(也可能,面试官很久没面初级在苦心思考八股文???)

但是提问都挺有质量的,收获很大。

涛思数据 TDEngine

3、DB

事务四种隔离级别;

读已提交的实现?

undo log会引入什么问题?

间隙锁是什么?

幻读的例子;

4、算法题:合并数组

数翊科技opengauss

项目问的多些,两个面试官前一个小时都不开摄像头,然后提问的面试官下线;

剩一个leader级别的这时开了摄像头,继续做一些开放性提问:base地,离职原因,绩效,新工作期望,对加班的接受程度,喜欢独立开发还是共同协作,晨会or周会形式的看法,工作期间和同事交流工作多还是生活多,管理喜欢平时松考核严还是相反。

8、DB

mvcc的流程;

9、算法题:

两个数组,互相交换一个元素,让数组和相等;

10、C++

引用和指针的区别?

一级指针和二级指针的区别?

函数指针和指针函数的区别?

质变科技一面 HTAP

不用开摄像头。

流程比较正规,面试官会问方便面试吧?确认面试,介绍此次面试流程:项目-基础知识-反问-bugfree平台笔试

共计100分钟左右

1、口述算法题解法:

假如现在我有两个单链表,一个pa,一个pb, 两个无管理的链表,我现在怎么判断这两个单位里面有没有相交?以及如果相交的焦点在哪里?

2、

OS:计算机系统调度里面有进程调度,对进程调度通常分为和抢占式调度和不可抢占式调度这两种方式,哪一种对系统的开销会更大?为什么。切换的损失具体是指什么?

OS:进程的内存分布

3、场景题:

int的数据的数组本身是一个无序的,找出两个下标,这两个下标所指向的元素之和等于100,我需要把这个所有的下标队都找出来。同时下标对不能重复使用。

有一个文本文件,比较大,有100g,每一行都是一些单词,这些单词是空格隔开的,有一台机器有十兆的内存,磁盘呢有十个t. 文本文件的所有单词,它去重之后,它的大小也超过了100兆,每一个单词是小于100个字节的,现在需要求出文本文件里面频率出现最高的前三个单词。

有一个文本文件,,每一行有一个用户的id,这第一列是用户的id,第二列是用户登录系统的登录时间,第三列是用户登登出系统的一个下线时间,测量时间是精确到秒的。现在文本文件记录了某一个系统,他一天的这种系统的一个上线,下线的一个记录时间就是一个日志记录,然后现在需要需要给定任意的一个时刻,知道这个时刻当时有多少的用户人数

4、笔试:共45mins

bugfree平台,在线coding,无需编译,只实现核心函数

多个有序数组,找重复元素;

字符串解码:栈or递归两种实现

质变科技二面

依旧是不用开摄像头,在线笔试题,面试官会先告知此次面试的环节和预估时间。

DB性能瓶颈定位?执行慢了怎么排查? perf+执行计划

gdb,有些变量因为优化级别,看不到怎么办?

如何调试多线程的core?

做过的项目,代码行数最大多少?

ai有了解吗?有使用吗?cursor?copilot?

mysql多版本控制,同时更新一行?

mysql行锁实现?默认隔离级别?

RC RR区别?

数据库性能指标,比如count(*),每秒多少行?

经典算法题:KMP

bugfree平台,在线coding,无需编译运行,只实现核心函数

//评测题目: 使用C/C++实现一个函数,int* match (const char* substr, const char* target)//返回substr在target中出现的所有位置

刷题少了,二面没过。

PingCAP - TiDB

流程依旧很舒适,不用开摄像头,面试官会先自我介绍。不过感觉问的比较难,面试官直接结合项目来出场景题。

数据库TRXID生成规律?

线程间通信,接触过哪些?

C++用的多?用到哪些标准、新特性?

移动构造函数,如何移动外部资源或文件描述符fd?

哪些数据库用了raft?选举结束,要发送一条空的log entry,是为什么?

code:有序二叉树构造(不用平衡)

可以用copilot,但这样会在细节问的更深。

简单实现、通过编译后,要求改造成智能指针的写法; acm模式,构造输入。

好难,修炼修炼再投吧。

偶数科技

hr很专业,态度好,有礼貌,提前说明考核重点及岗位指责。

面试不用开摄像头。

  1. 一致性协议了解哪些?raft怎么选leader,每个节点怎么确定要给谁投票?网络分区问题怎么解决?
  2. lsn-tre介绍,memtable在宕机时怎么保证不丢数据?
  3. 对mvcc的理解?如何确定历史数据不在被需要?
  4. 数据库性能优化怎么做?
  5. 网络方面,有遇到哪些性能问题?
  6. tcp udp区别?tcp流量控制怎么做?接收方接收窗口满了,此时会发生什么?
  7. 网络七层协议?上层传输的数据超过下层接收能力,怎么办?
  8. RAII
  9. C++智能指针,shared_ptr何时释放资源?引用计数保存在哪里?unique_ptr如何保证独占?
  10. std::move具体做了什么?或者说在语法库中怎么实现的?
  11. 算法题:int数组,相邻不等 找出极大值(该值比前后相邻元素值都大)logN时间复杂度

acm模式,构造用例,编译运行

算法题就是用二分法,不过好久前做过类似题忘记了,现场没想出来最优解。

这个岗位据hr介绍有四轮面试,并且前三轮都是技术面,hr和面试官的意思都是想要基础好的、不太看重DB背景。

全部评论
大佬,质变科技你觉得咋样,推荐去吗
点赞 回复 分享
发布于 05-19 10:53 浙江
老哥,最后去哪里呀
点赞 回复 分享
发布于 05-01 07:48 天津

相关推荐

03-25 19:00
东北大学 Java
程序员牛肉:太好了,是聊天记录。不得不信了。 当个乐子看就好,不要散播焦虑
点赞 评论 收藏
分享
04-16 12:49
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
2
8
分享

创作者周榜

更多
牛客网
牛客企业服务