还愿offer,shopee虾皮北京后端社招面经
背景:双非本,21届,之前在字节某业务架构部门做api网关
岗位是北京机器学习部门下的特征存储引擎开发(投了一圈只有这个过了简历),校招的时候跟着群大佬混了点课程lab,无存储经历
自我介绍
讲一个工作的项目
讲自己的项目(PingCAP Talent Plan TinyKV)
单机存储是什么(badger)
基于什么数据结构的(LSM)
相比最原始的LevelDB做了什么优化(wisckey论文,key-value拆分)
为什么value可以无序(SSD特性)
为什么SSD随机读写比磁盘快
讲讲LSM的写入,会碰到哪些组件(就是讲MemTable,SSTable结构,compact之类的)
了解Level0的SST有什么特别的吗(level0不compact,当时没答出来并且不理解)
Raft的读流程,怎么确定哪个成员可读(每次向leader询问/租约)
2PC的缺点,说一个解决办法(协调者单点,阻塞,一致性)
还知道别的分布式事务吗(没研究过。。
知道什么Linux性能分析相关的命令(说了个top
top那几个指标什么意思(果然。。一个都不记得,然后面试官一个个给我讲解
硬中断和软中断有什么区别(答得不好
为啥刚毕业半年看机会
写题,n*n的01矩阵,选连续r行,连续c列覆盖这些点,求min(r+c)
反问
评价一下Shopee的基建、技术发展
为什么做专用的存储,特征存储和通用存储的区别
是在推荐部门下吗
二面
问项目
so怎么运行的(妈的不知道啊)
跟C++的动态库有什么区别(C++动态库我也不知道啊)
如果一个动态库特别大要怎么执行起来(啥啊不知道啊)
知道mmap吗(好吧。。。)
怎么直接在Go里面调用C++代码(我说CGO)
你对CGO知道多少(知道个名字)
协程主要在网络连接的哪个阶段发挥优势(没答好)
你现在知道为啥Level0不compact了吗(梦 幻 联 动)
写题,有一个很大的csv文件,格式是<key1><content>\n<key2><content>\n
key是递增的int,给一行文本找到插入的位置
没get到面试官想问的文件操作的点在哪,面试官就说算了,当做内存中的string处理,写个魔改二分
反问
刚刚文件操作的点在哪
offer审核等了一个星期,卡了30涨幅,但是半年这个数还比较满意
欢迎在虾皮,正在面虾皮和将来有兴趣面虾皮的大佬私戳交流