美团大数据基础架构实习生一面
作者:川大宝
链接:https://www.nowcoder.com/discuss/630021?source_id=discuss_experience_nctrack&channel=-1
来源:牛客网
个人情况:渣本渣硕,本硕都是计算机。
面试平台:牛客网
面试时间:2021.04.01
总时长:55min
问项目(15min):
自我介绍,问了我第二个项目(基于RocksDB的图数据库)。
介绍下你设计的data model。讲了讲,毕竟自己做的。
讲一下RocksDB的底层原理。讲LSM树
它和B+树有什么区别,优缺点是什么?
为什么要尽可能避免L0文件过多?为什么会影响读性能?这个没回答上来。
了解Raft协议吗?介绍下Raft协议,它是如何选举的?这里大概讲了讲。
如果有ABC三个节点,网络互通,C是Leader。这时候A-C之间的无法通信了(也就是A-B-C)。此时A没了Leader,要重新选举,这时候B应不应该投票?我说不应该。
那么如何解决A没有Leader?我说不知道 = =
知识点(20min):
数组和链表的区别,使用场景。
对数组和链表遍历一遍,谁快,为什么?这里考的是操作系统的相关知识,因为数组内存空间连续,读入了cache。
java LinkedBlockingQueue ?我说是个并发容器,但我没用过。
如何设计一个 生产者-消费者队列? 我说给队列加锁
如果加锁,生产操作会阻塞消费操作,有没有更好的方式?我说两个指针,一个生产者指针,一个消费者指针,分别加锁。
学过操作系统吧?
操作系统如何解决内存碎片的?java GC 内存碎片怎么解决?
java 堆内存和栈内存
算法题(15min):
给一棵树,写算法让节点的next指向和该节点同层的下一个元素,每层最后一个节点next指向null。
不难,用队列做出来的。
反问与闲聊(5min):
问我喜欢分布式计算还是分布式存储。
问我是如何学习一个没接触过的新技术的。