某大厂面经

第一面。

1.请说一下mysql的事务隔离级别。

由于我对这里比较熟悉,所以主要讲了一下“write skew“和“Phantom“,以及”repeatable read“和”snapshot isolation“,面试官显然对这部分了解不多,然后我又讲了一下mysql的mvcc和加锁策略,以及tidb的乐观事务模型。接着说了一下数据库如何实现ACID的,以及事务的调度算法。

参考《A Critique of ANSI SQL Isolation Levels》和《数据库设计与实现》。

2.简要说一下kafka。

主要回答了一下broker,分区,isr,储存方式,零拷贝。然后扯了一下zookeeper的设计以及zab协议。

参考《Kafka权威指南》《从Paxos到Zookeeper分布式一致性原理与实践》和《ZooKeeper: Wait-free coordination for Internet-scale systems》

3.算法题,leetcode 中等难度通过率31%

在指导下做出来了。

4.说一下go协程设计

由于自己用c实现过协程,所以答的很随意。讲了一下函数调用约定,栈布局,上下文切换,x86寄存器,又讲了一下用gcc的"-finstrument-functions"。然后讲了一下go的调度思路。

参考go源码runtime.schedule

5.说一下epoll

讲了epoll跟select的区别,然后回答了et和lt的区别以及使用场景。又回答了一下go的设计思路。

参考man 7 epoll和go源码 runtime.netpoll

第二面

1.讲一下raft算法

讲了一下leader选举,日志复制,应用到上层状态机这三部分。

参考《In Search of an Understandable Consensus Algorithm》

2.讲一下cap定理

回答了一下概念。然后结合 mysql(同步复制,异步复制),kafka(isr),etcd(raft),zookeeper(zab)讲了一下各自是什么系统。

参考《ddia》

3.算法题 链表排序

先用插入排序做出来了,

让用快排做,不会做。

然后问时间复杂度,这个回答错了,

接着又让证明,结果又证明出来了个logN...

4.又问了一道算法题

很水的题目,忘记了。

5.讲一下fork原理。

背了几个步骤,回答了一下。

参考《深入理解linux内核》

6.如何设计一个朋友圈。

没啥思路,在指导下写出来了。


第三面

1. zab,raft,paxos协议的区别。

回答了一下raft,然后有点蒙也不知道回答什么。

2.讲一下canal

说了一下binlog的格式。

3.讲一下协程设计

同一面

4。一道算法题

跟数列有关的算法题,可能是想考察dp的,我直接推出了通项公式,代码也没写

5.go的hashmap如何实现的

讲了一下均摊扩容,然后问了一些很细节的问题,估计是看的某个issue。

6.实现一个hashmap

。。。。写了增删改查,扩容不会写。

#社招##golang工程师##面经#
全部评论
这是社招么,几年啊
点赞 回复
分享
发布于 2019-12-31 13:25
前辈,In Search of an Understandable Consensus Algorithm这篇论文是怎么看的,有借助中文资料吗?
点赞 回复
分享
发布于 2019-12-31 13:32
百信银行
校招火热招聘中
官网直投
感谢分享面经!欢迎参加过社招的牛友发社招面经拿京东卡!~ -------------------- 活动:社招面经征集|参加过社招的牛友,来发面经吧,拿京东卡
点赞 回复
分享
发布于 2019-12-31 18:31
我猜是字节,楼主,这是社招还是校招啊
点赞 回复
分享
发布于 2019-12-31 19:37
go?
点赞 回复
分享
发布于 2020-01-01 04:34
这个还是有些难度的
点赞 回复
分享
发布于 2020-01-01 08:02

相关推荐

14 77 评论
分享
牛客网
牛客企业服务