首页 > PingCap 校招面经
头像
AntiTopQuark
编辑于 2021-04-12 14:53
+ 关注

PingCap 校招面经

Update 2020年11月18日23:00

刚刚问了下HR,已经凉了~毕竟自己只复习了一个多月,中间还要穿插着毕设。
秋招结束了,后面就是好好搞毕设和继续实习了。
但行好事,莫问前程。

简单介绍下自己,

楼主是某末流985的大四学生,在字节的广告团队的大数据部门实习了三个月。
一直对数据库很感兴趣,很受PingCap的Geek和开源氛围的影响,投递了PIngCap的TiDB相关的团队
面试中问到的KV数据库是我在大二的时候做的,是一个基于SkipList的K-V存储引擎。在此基础上实现了简化版KV数据库,提供增删改查和硬盘备份的功能。性能方面,随机插入查询 数据10w条,用时1.02s

笔试

我的题目和 @相见时难别亦难个球 大佬的一样,这里不做赘述了
https://blog.nowcoder.net/n/c1d7cbd237d04a3bb6b101e878fda77b

(2021年4月12日14:52:56)过去这么久了,我放一下我自己的方法:
https://github.com/AntiTopQuark/pingcap_examination

一面 1h(电话面)

  1. 自我介绍,在字节的实习经历。

  2. 问项目。一个前后端分离的Web项目的开发背景;一个是大二时做的内存KB数据库。问了一下大致的情况,当时使用了Share Mutex,问要怎么进行并发优化

  3. Mysql是如何进行后期优化的?(回答了MVCC,其他的就不是很清楚了)

  4. B-树与B+树的区别?

  5. 一个Sql语句的执行过程?

  6. Mysql的Join的计算的算法?(nested_loop ,但是当时没怎么记住,回答了Spark的Hash Join 和 Sort-based Join)

  7. 堆组织表,索引组织表,索引聚簇表

  8. 多级索引,最左匹配

  9. ...有几个问题是从来没听过的,最后也没记住问的啥

  10. 事务的隔离级别,锁的算法(Record Lock\Gap Lock\Next-key Lock),悲观锁和乐观锁

  11. LSM Tree的优缺点,怎么进行优化?

  12. 2pc的过程,优缺点。3PC

  13. 对TiDB的了解(回答了HTAP,TiKV,PD等等)

  14. 有没有看过两篇TIDB的论文:一篇是Percolate,一片式Google F1的online schema。(只看过后一篇,简单讲了下租约,delete-only,write-only)

  15. Unicode编码了解吗?还了解其他字符集吗?(GBK UTF-8 Latin)

  16. 怎么知道的PingCap

  17. 对开源的看法
    ​​

    二面 45min

  18. 讲一下在字节的经历

  19. 大数据方面数仓的产品你知道哪些?

  20. Hive和Spark的区别?

  21. Linux的进程调度算法?(实在是忘记了)

  22. 讲一下分布式一致性协议。(讲了Raft,ZAB ;paxos没学过)

  23. 写两道算法题:找到最大数,并发。怎么优化?

  24. 层次遍历,有个Bug,自己检查出来了。。。但是留下了很不好的印象

  25. Java的HashMap,CurrentHashMap区别。

  26. go Map sync.Map是不是并发安全的?

  27. currentHashMap的实现原理。

  28. go的 mutex实现原理,了解过Go的Mutex和RWmutex吗?

  29. CAS

  30. Go的协程调度模型

  31. 有什么问题问我吗?

三面 55min

  1. 自我介绍
  2. KV数据库做了什么
  3. Spark与Hadoop的区别。
  4. Hadoop与Spark的shuffle区别
  5. Spark数据倾斜,怎么解决数据倾斜?
  6. 哪个项目印象最深
  7. GO的垃圾回收?Java的垃圾回收?Python的垃圾回收
  8. 对数据库认识到什么程度?ACID?四种隔离级别
  9. 写个算法题吧?用树状数组,不会写,口述的。问时间复杂度,记错了树状数组的查询时间复杂度。

总结

  1. 我是9月开学之后才开始学习Go语言和数据库相关的一些知识,所以还是有很多东西准备的不够充分。因此把经历大部分都放到了学习InnoDB和Go的上面了,对算法确实没有更多的练习,导致层次遍历都有个Bug。确实不应该。
  2. 日常开发中,用的最多的是Python,python由于GIL,所以我对并发的编程经验也不多,二面中并发的相关的问题都没有回答的很好。CAS我也不是很清楚。确实是一个很大问题。
  3. 面试官老师都非常好,给了我很多的建议,对数据库开发也推荐了一些课程(CMU的两门数据库课程,PingCap的talent plan),真的十分感谢面试官和HR小姐姐的帮助。感谢感谢感谢~
  4. 虽然有幸进入了三面,但是我感觉好像并不是面试通过之后再给下一轮面试,而是并发面试,最终三个面试官会一起评估。总体来看的话,我的编程能力和数据库相关知识掌握的并不是很好。也算是一大遗憾吧。
  5. 牛客网上pingcap相关的面经真的很少。希望我的面经能够给大家带来一些帮助吧。也给自己再许愿一次~真的很想去PingCap~加油加油~

更多模拟面试

全部评论

(12) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐