美团一面+二面(凉)

24暑期实习,部门:数据库研发中心

第一次笔试一题没A,第二次笔试只A了一题

3.15 一面

算法题:排序链表

Go调优相关,怎么调优的

如果一个程序对他进行计算压测,但CPU跑不满,这种情况会往哪方面去想

协程与线程的区别

Go协程什么情况下会主动让资源(IO等被阻塞的情况)

Java学的怎么样,了解主流的垃圾收集器等

MySQL为什么要读写分离(读多写少,减少主库压力)

读写分离的问题在哪,可以怎么解决(读写同步延迟,应用层方面别在刚写完就读从库,主要在应用层控制)

为什么要分库分表,分库分表后要注意哪些(数据一致性,要考虑分布式事务)

分布式事务相关的(2PC XA 3PC TCC saga),XA 怎么做的

分库分表后除了要考虑分布式事务,还有什么要考虑的(不会)

乐观锁,悲观锁

Redis的持久化方式(RDB AOF 混合)

RDB为什么会丢数据(RDB保存全量快照前挂掉)

RDB时发生修改,内存膨胀问题,触发COW后是全量拷贝还是只拷贝修改的那部分(答的只拷贝修改的那部分所在的操作系统page)

Redis 的 I/O 模型

CAP简单聊一下

MySQL 是 CP 还是 AP(一般情况的主从是AP,因为是最终一致)

如果要MySQL提供 CP 怎么办(节点完全同步前别对外提供相应的服务,就是实现强一致事务)

如果 CP 情况下,主节点挂了怎么办(不了解,没背八股,瞎b扯一般配个哨兵用 binlog 恢复,要是全挂了那也没办法,因为要保存最终一致性)

对 multi paxos 有多少了解

raft preVote优化

基于 raft 的分布式kv,如何实现线性一致性,怎么保证不重复执行写指令的

client 的 ID 怎么实现的(项目rand.Int64(),分布式情况应该用雪花算法实现分布式ID)

如果 client 宕机了,怎么保证不重复执行写(宕机了的话再启动,client ID 都变了,已经是新的一轮请求了)

BusTub项目,4种隔离级别怎么实现的,读提交和可重复读的区别

文件系统有没有了解,对刷脏页的理解(往数据库项目的BufferPoolManager扯,然后又介绍了下OS的页面置换,最后说了句思想都差不多)

反问

3.17约了二面

3.22 美团二面(凉)

实现的 BusTub 数据库里,BufferPool 的作用,数据库层面抽象的 Page 和操作系统的 Page 的区别,读一个数据库逻辑 Page 进内存大概什么情况

为什么操作系统实现了页面置换,在数据库层面还要维护一个 BufferPool

操作系统的页面置换算法,会对数据库层面实现的页面置换算法,有什么影响

LRU 置换算法怎么实现的,LRU-K 呢

LRU-K 和 LRU 的比较,有被 LRU 的性能卡过么

可扩展哈希索引的实现

3节点的 Raft 集群,如果要更新一个节点,怎么办(先把新的加入集群,再把老的下掉,不能反过来,要保证半数以上可用)

更新节点的具体流程是什么

如果有非常多的 Raft 节点,分了很多集群,有哪些要注意的

平时遇到的印象最深刻的 bug

乐观锁和悲观锁的区别

乐观锁和悲观锁,放在数据库的角度,分别应用在哪里(乐观锁应该是 mvcc)

考虑两个不同的事务去操作一个表,执行 Insert 呢(这种情况要考虑幻读,不要 mvcc,但纯加锁实现的隔离级别也不顶用,除非实现 Serialize 级别,后面说可以和 MySQL 一样整间隙锁)

mvcc 除了用作实现隔离级别,别的还有了解其他用途么

算法题没让做,说看一面写的代码风格还不错

在字节有考虑过活水啥的么,字节转正不,未来倾向做计算还是做存储

反问

3.27 人才库了

#我的失利项目复盘##美团##暑期实习##面经#
全部评论
这问的也太难了。。。真的牛
9 回复 分享
发布于 2023-03-28 13:00 新加坡
一个暑期实习就抓着问这么多分布式,服了
3 回复 分享
发布于 2023-03-29 10:02 新加坡
好牛逼
1 回复 分享
发布于 2023-03-30 23:55 广东
老哥转码学这么多很牛了
点赞 回复 分享
发布于 2023-03-27 20:24 湖北
我是go面美团盯着问java,结果一个不会
点赞 回复 分享
发布于 2023-03-27 20:35 上海
大佬我也这个部门 24二面的还没消息
点赞 回复 分享
发布于 2023-03-27 20:49 四川
笔试对结果影响大吗
点赞 回复 分享
发布于 2023-03-28 00:41 美国
哥们,面的啥岗位?
点赞 回复 分享
发布于 2023-03-28 03:46 北京
”3节点的 Raft 集群,如果要更新一个节点,怎么办(先把新的加入集群,再把老的下掉,不能反过来,要保证半数以上可用)“ 我的理解是应该先把老的下掉,再把新的上去。 考虑的是二分网络分区: 假设先增再删,abc->abcd->bcd,ad同机房,那么在abcd的中间态,可能存在网络分区ab|cd导致网络不可用。 而先删再增,abc->bc->bcd,一没有上面的abcd中间态。二对于半数问题,实际上在中间阶段的配置是只有bc两阶段,那么raft两节点互选是可以的。 参考https://zhuanlan.zhihu.com/p/359206808
点赞 回复 分享
发布于 2023-03-28 14:00 上海
分库分表可能还要考虑外键和join?
点赞 回复 分享
发布于 2023-03-28 14:24 上海
这都能人才库,得多牛逼才能面过
点赞 回复 分享
发布于 2023-03-29 03:37 美国
楼主有mysql、redis的书或者其他学习资料推荐吗
点赞 回复 分享
发布于 2023-03-29 13:16 浙江
笑死,和我面的问题都是一样的
点赞 回复 分享
发布于 2023-03-29 17:50 浙江
所以是不是不招人了
点赞 回复 分享
发布于 2023-03-30 19:14 湖北

相关推荐

无敌虾孝子:喜欢爸爸还是喜欢妈妈
点赞 评论 收藏
分享
12 117 评论
分享
牛客网
牛客企业服务