PingCAP春招实习面经,123面已OC。

认识PingCAP

听说PingCAP,是在我加的一个实习互助群里看到有大佬提起的。那时我还在JD实习,做着自己不太喜欢的工作内容,正想换一个方向试试。

当时的第一印象是:一个做分布式数据库的很NB的公司,交大巨佬迟先生就之前就在里面实习。

很好奇的我就去Google了这家公司。了解了一下之后发现PingCAP真的是一家很酷的公司,能够在基础架构做开源、做出盈利、去年还融到D轮2.7E刀,在国内真的凤毛麟角。我只能说一句:tql。

准备面试

了解完PingCAP的工作内容之后,我对他们的工作内容和工作文化都非常的好奇。

我开始搜索怎么才能去PingCAP实习。

在知乎上看到了黄东旭大神的一个回答,里面有一句话:"如果你做完了6.824,对自己有自信的话,就试着来实习吧。"

于是我就开始去做6.824了,一开始的时候想法很单纯,就是想通过对这个课程的学习,能够达到到PingCAP实习的要求。学习了这个课程之后,发现分布式系统和数据库这块知识真的很有意思,现在也成为我的兴趣所在了,算是意外的收获了。

在经过差不多一个月的折腾之后,我把6.824做到了Lab3B。(论文只读了5篇,差不多把所有的时间都投入到Lab上了。)

在三月下旬,我通过某乎找到了一位PingCAP的工程师,请他帮我内推。经过几天忐忑地等待,我的面试开始了。

2021.3.24 一面

1.面试官介绍了他们组目前的工作。

2.我自我介绍。

3.申请一个10kb大小的数组,操作系统发起了什么系统调用?

4.内存管理,页表。

5.一个程序从加载到运行,中间发生了什么?

6.给定10k个任务,1%低优先级,每个需要运行10s;另外99%高优先级,每个需要运行10ms。有一台双核机器,设计一种调度算法,让它们都不用等太久就能被执行。

  • 分析得出低优先级的任务有100个,总共需要运行1000s。高优先级总共需要运行约100s,完全可以先执行高优先级任务,再去执行低优先级。

  • 第二问:如果事先不了解高低优先级任务的数量要怎么做?

  • 可以让给低优先级任务设置一个优先度0,高的设置为8;优先度低的任务会被优先度高的任务抢占,此时被抢占的任务就会进入等待队列里面去等待cpu,每等待1s它的优先度就会加1。这样低优先度任务就不会永远等待下去;此时,为了让高优先低时长的任务依然能得到比较快速的响应,我们可以只在一个核中采取以上策略,另一个核仍然优先分配给高优先级任务执行。

7.Raft figure8。为什么Leader不能直接commit前一个任期留下了的log?如果这样做会出现什么问题?

8.二叉树的最近公共子树。

9.反问阶段,还有面试官给了我一些学习方面建议。(例如,要多读论文,广泛了解分布式系统的历史发展脉络和概念。)

2021.3.26 二面 技术主管面

1.讲一下上次面试的收获。

  • raft figure8 那一块内容更深入的理解

  • 回去对OS的内存管理和程序加载运行这一块知识进行了学习

  • 面试官推荐了6.828和CSAPP,让我回去有时间好好学习一下这两个部分的内容。(我读过一部分CSAPP)

2.讲一讲OS内存管理。

3.讲一讲一个程序,是怎么从源代码到真正的执行起来的。从编译开始讲。(一面的问题,让我重新回答)

4.进一步讲一下程序的加载和链接这部分。

5.讲一讲你了解的IO多路复用,他们有什么区别。(selec, poll, epoll)

6.一个RPC的调用,从发出调用到接收到对方发过来的reply; 中间OS做了什么,用户态和内核态发生了怎样的变化,有什么中断产生?数据包在网络中经过怎样的传输,经历了几层协议栈?

7.追问,TCP属于哪一层协议,链路层协议了解哪些。

8.讲一讲ACID。(中间产生了多次追问,具体到场景,以及如何实现和如何解决某个问题;还有MVVC等内容)

9.讲一讲CAP。为什么会有CP、CA的抉择?

10.分布式事务和普通事务有什么区别吗?

11.算法题:给定一个n*n的 0 1矩阵,你只能进行两行交换的操作,求让其变成右上三角全为0的最少操作次数。

例子:

 
0 0 0 1
1 1 0 0
0 1 1 0
1 0 0 0  // 输出1 (0行和4行换)

这道题我不会,但是面试官给了我很多引导,让我尽量表达出自己的思考过程,不至于让我卡在那很难受。

12.反问阶段,聊一聊自己的学习生活和对实习的期待。(核心问题:一般上班时间? 答:10 6 5 )

2021.3.31 HR面

HR姐姐非常Nice,就是聊聊天,问一问我的面试体验和对公司的看法、还有我的一些基本情况。

最后就愉快地定下了OC的时间。

面试总体感觉

整个面试流程走下来,给我都是非常良好的体验。

首先,内推简历通过筛选之后,先有一个招聘助理小姐姐加我,跟我沟通定好面试时间,在这一点上我就感觉自己是得到的一定的尊重的。并且整个面试期间,招聘助理都有持续跟进和跟我反馈面试的情况,我有什么问题问她都能很及时得到回答。这种顺畅的沟通和及时的反馈,减少了等待的焦虑,给人感觉非常棒。

然后,每次技术面试都会持续大概一个小时左右,面试官在提问的时候也不是一味地发问,而是在有些地方会给我引导和参与讨论,我觉得模糊的知识点会在跟面试官的讨论中变得清晰,每个问题也会因此说得更深入一点。

并且面试官会给我足够的思考时间,愿意花时间去听我自己对问题的看法(非标准答案),让我有更多展现自己的机会。

面试官还给了我许多进一步学习的建议,并且会在最后的反问阶段跟我聊一聊他自己对我此次面试表现的看法,有哪些可以提高的地方。这些都是有别于我的其他面试体验的,总体感受就是比较和谐,而没有紧张和焦虑。

我个人觉得实习的面试真的不算很难,比起之前面过的大厂来说,在技术层面上的考察可能就半斤八两,八股文问的不是很多。问的问题大部分在CSAPP上都能找到答案。可能更多的是看候选人对这个领域的学习热情和沟通能力吧。

#实习##PingCAP##Java工程师#
全部评论
真的tql
1 回复 分享
发布于 2021-04-03 11:37
大佬现在还在pingcap吗
点赞 回复 分享
发布于 2024-10-08 21:01 四川
咦,老哥没问项目?
点赞 回复 分享
发布于 2021-07-07 18:07
大佬tql
点赞 回复 分享
发布于 2021-04-07 23:24
疯狂膜拜江神
点赞 回复 分享
发布于 2021-04-03 19:56
请问楼主是哪年毕业的?
点赞 回复 分享
发布于 2021-04-03 18:35

相关推荐

AAA专业长城贴瓷砖刘大爷:这样的简历我会直接丢进垃圾桶,花里胡哨的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-29 22:21
Offer1:小马智行,深圳,测试开发工程师,17.0k*16.0,Offer2:追觅科技,深圳,嵌入式工程师,18.0k*15.0,
嵌软狗都不学:各位base深圳的同事,作为也是并肩作战的一员,今天想站在管理视角,和大家开诚布公地聊一聊:从近几个月的上下班数据对比看来,我们发现一个明显的差异:深圳同事的在岗时间普遍比苏州同事短。很多深圳同事早上9点之后才到公司,晚上不到 20 点就下班了;而总部那边,20点半甚至 22 点后还有不少同事在办公室忙碌,特别是研发团队,加班更是常态。相信去过苏州的同事,对这种场景都不陌生。我很好奇,这是因为苏州工作任务太重还是咱们深圳同事效率真的高到能在更短时间内完成工作?MOVA在深圳成立分公司是为了吸引更优秀的人才贡献更多更高质的价值,公司管理层给我反馈的是深圳招到的多是行业的专家大拿,大部分都是薪资比苏州高的,而且我们办公的租金等也远高于苏州的..MOVA虽脱胎于强壮的集团母体不久,各业务板块尚未实现全面盈利,虽说公司管理层目光长远,不纠结当下的人才投入,但行业内的普遍标准是,员工创造的价值要达到公司雇佣成本的 15 倍以上。大家不妨自我审视一下,自己是否达到了这个标准?如果是抱着划水、按时打卡走人拿毛爷爷的心态那不适合来MOVA,那样过下去不但自己过得尴尬也会影响MOVA这个大船的攻城略地的速度.我并非鼓励大家盲目加班,而是倡导高效工作,拒绝无效忙碌,不要让项目进度因低效受影响,也别把精力浪费在和苏州同事拼打卡时长上,提倡更高的人效比;考虑到两地地域和交通差异,相信大家会找最适合自己发挥的工作方式(比如按时下班后1小时到家晚饭后继续未竟工作等..)大家在遵守公司规章的情况下尽情地体现自己的能力价值,为MOV!和深圳公司争光我们在这边才能更安心更有信心的工作下去;请客BU长、名部门长、项目管理和各业务单元负责人,全面梳理团队情况,及时评估成员工作负荷与成果质量,坚决清退划水害虫痕疫,践行公司价值观,相互监督,防止管理漏洞及渎职。感谢人家的理解,也请人家多担待我的直言不讳……
点赞 评论 收藏
分享
评论
13
88
分享

创作者周榜

更多
牛客网
牛客企业服务