Pingcap 一二三面面经(已意向)
我做了一个相对对口的项目,所以三面都是项目
一面 周一
1. 介绍一下项目 并回答
2. 操作系统是如何io的
3. 数据库文件是如何组织的
就想起来这么多,绝大部分问项目
代码
一个小项目题,就是go代码写的一个for range里面取任务,然后执行任务,执行成功再取下一个,这是个串行化的代码,改成并行化实现,要求是,实现pipeline式,并发执行但是结果有序,获得一个结果就可以返回一个结果,仿佛是串行化。写伪代码就可以
二面 周二
1. 继续聊项目
1.1 从你插入一个数据开始,你的存储引擎发生了什么
1.2 set k1 v1 set k1 v2竞争是如何处理的
1.3 事务是怎么实现的,事务竞争如何处理
1.4 具体讲一下b+树页面的组织情况,如何组织,插入大量数据你做了什么,为什么索引如何变化
大概就记得这些
代码
很简单两个个字符串s1 = ababcc s2= ba s1里面有多少个子部分的字符串组成和s2一样 不要求顺序一样包含字符一样就行。追问 如果是unicode字符怎么办,代码该如何改?之前用的数组有什么问题
三面 周三 最难的一集
0.lsm-tree 需要缓存什么结构 为什么?
1. 聊一下项目 b+树和lsm tree 缓存效率上有什么区别, 只说了innodb怎么做到高效缓存,和对比场景哪个效率更好
2. leveldb 中版本号有什么用 忘了答的是类似readview
3. 了解无锁编程吗?说了cas 和无锁队列
4. raft日志一致性如何实现,讲一下。
5. 如果有个leader 发送了日志,但是没收到ack挂了,会发生什么。
6. mutipaxos和raft了解吗?如何实现mutiraft。完全不会,只说了braft实现思路,没有根本解决,面试官推荐了一篇论文。
反问环节
1. 为什么用rust,而不是c++
2. 学习上有什么建议
3. 未来的工作聚焦于什么?答 缓存热点和raft并行化
hr面 周四:
常见问题,略过
总结,面试体验很好问的很有深度,面完了是有成长的,值得一面。
一面 周一
1. 介绍一下项目 并回答
2. 操作系统是如何io的
3. 数据库文件是如何组织的
就想起来这么多,绝大部分问项目
代码
一个小项目题,就是go代码写的一个for range里面取任务,然后执行任务,执行成功再取下一个,这是个串行化的代码,改成并行化实现,要求是,实现pipeline式,并发执行但是结果有序,获得一个结果就可以返回一个结果,仿佛是串行化。写伪代码就可以
二面 周二
1. 继续聊项目
1.1 从你插入一个数据开始,你的存储引擎发生了什么
1.2 set k1 v1 set k1 v2竞争是如何处理的
1.3 事务是怎么实现的,事务竞争如何处理
1.4 具体讲一下b+树页面的组织情况,如何组织,插入大量数据你做了什么,为什么索引如何变化
大概就记得这些
代码
很简单两个个字符串s1 = ababcc s2= ba s1里面有多少个子部分的字符串组成和s2一样 不要求顺序一样包含字符一样就行。追问 如果是unicode字符怎么办,代码该如何改?之前用的数组有什么问题
三面 周三 最难的一集
0.lsm-tree 需要缓存什么结构 为什么?
1. 聊一下项目 b+树和lsm tree 缓存效率上有什么区别, 只说了innodb怎么做到高效缓存,和对比场景哪个效率更好
2. leveldb 中版本号有什么用 忘了答的是类似readview
3. 了解无锁编程吗?说了cas 和无锁队列
4. raft日志一致性如何实现,讲一下。
5. 如果有个leader 发送了日志,但是没收到ack挂了,会发生什么。
6. mutipaxos和raft了解吗?如何实现mutiraft。完全不会,只说了braft实现思路,没有根本解决,面试官推荐了一篇论文。
反问环节
1. 为什么用rust,而不是c++
2. 学习上有什么建议
3. 未来的工作聚焦于什么?答 缓存热点和raft并行化
hr面 周四:
常见问题,略过
总结,面试体验很好问的很有深度,面完了是有成长的,值得一面。
全部评论
大佬,二面算法题的思路是啥,能介绍下吗?
tikv吗
恭喜意向,想问一下多久出的结果
相关推荐
点赞 评论 收藏
分享
查看6道真题和解析