美团一面+二面(凉)

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-30 19:14 湖北
笑死,和我面的问题都是一样的
点赞 回复 分享
发布于 2023-03-29 17:50 浙江
楼主有mysql、redis的书或者其他学习资料推荐吗
点赞 回复 分享
发布于 2023-03-29 13:16 浙江
这都能人才库,得多牛逼才能面过
点赞 回复 分享
发布于 2023-03-29 03:37 美国
分库分表可能还要考虑外键和join?
点赞 回复 分享
发布于 2023-03-28 14:24 上海
”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 上海
哥们,面的啥岗位?
点赞 回复 分享
发布于 2023-03-28 03:46 北京
笔试对结果影响大吗
点赞 回复 分享
发布于 2023-03-28 00:41 美国
大佬我也这个部门 24二面的还没消息
点赞 回复 分享
发布于 2023-03-27 20:49 四川
我是go面美团盯着问java,结果一个不会
点赞 回复 分享
发布于 2023-03-27 20:35 上海
老哥转码学这么多很牛了
点赞 回复 分享
发布于 2023-03-27 20:24 湖北

相关推荐

90% 的人简历石沉大海,并不是因为技术不行,而是因为从一开始就写错了方向。大多数人写简历时,下意识会把它当成一份经历记录:学了什么技术、做了哪些项目、按时间顺序全部写上去,以为内容越多越专业。但现实很残酷,简历投出去往往连回音都没有。问题不在你学得不够,而在于你没有把“价值”写出来。简历的本质,从来不是记录你做过什么,而是向公司证明:你能创造什么价值。企业招人的目标也很明确,他们不是在找“会技术的人”,而是在找“能用技术解决问题的人”。如果一份简历只是技术名词的堆砌,却没有告诉对方你解决了什么问题、带来了什么结果,那它很难在筛选阶段活下来。很多人会在学习阶段陷入纠结:到底该学什么?这个技术会不会烂大街?是不是技术栈不够广就没有竞争力?其实这些问题在一开始都不重要。一个非常反直觉但有效的方法是,先把简历做出来,再反向准备项目和技术。因为投简历是结果导向的事情,当你把简历框架先搭好,你会立刻看清楚自己要投什么岗位、岗位需要什么能力,以及接下来一到两个月学的内容,最终会以什么样的成果呈现在简历上。如果一项技术学完之后写不上简历,或者写了也无法提升投递反馈,那它本质上就是无效努力。判断一份简历有没有用,其实也不复杂。直接换一版新简历,不管是在线简历还是附件,都全部替换,然后去平台投递,看打招呼率、要简历率、面试邀约数有没有明显变化。如果数据比之前好,说明方向是对的,这时候再回过头去细致梳理项目,从背景、问题、方案、技术细节到最终结果全部过一遍,确保在面试被追问时能讲清楚。简历负责敲门,项目负责让你站得住。在写简历时,先搭一个清晰的框架很重要,比如教育背景、实习经历、项目经历、专业技能。真正拉开差距的不是结构,而是内容有没有“问点”。一份好简历,既要让技术面试官看到深度,也要让非技术背景的 HR 能迅速明白你会什么、是不是匹配岗位。很多技术人会忽略这一点,以为简历只是给技术面试官看的,结果满篇专业名词,HR 看不懂,直接卡在初筛。基础技术该写清楚的就写清楚,不求炫技,只求可识别、可匹配。项目和实习经历的价值,也常常被误解。很多人以为项目好,是因为技术更深;实习好,是因为能力更强。但从面试官视角来看,真正的区别在于有没有提问点。比如你写了解决超卖问题,面试官就可以顺着问锁的选择、并发控制方案、再延伸到 JUC 或分布式锁。一个好的项目,本质上是一个八股的入口,而不是用来装点门面的经历描述。所以在写每一条项目时,都应该问自己一句话:这是不是在制造可以被追问的点,还是只是堆名词显得自己很厉害。说到底,写简历,最底层的逻辑就是放弃“记录思维”,建立“价值思维”。先做简历再准备,是让努力有明确方向;技术点结合问题和成果,是让价值有事实支撑。简历不需要多华丽,只要能让公司清楚地知道,你能用技术解决他们的问题,并创造他们真正需要的价值,这份简历就是成功的。
点赞 评论 收藏
分享
评论
11
117
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务