7.13投递,投的岗是提前批后端基础架构,拿的offer部门是专门做分布式文件系统的,我自己课题就是做文件系统的,也算很契合了7.21 一面:面的太早,全忘了... 因为当时是秋招第一次面试,还有点紧张,结果发现有点简单,觉得没必要记录问了啥 7.31 二面(主管面):问:上来先问能不能现在就过去实习,还是说必须要等到2024年毕业...我说应该没法提前过去基本全是文件系统课题,问了估计半小时,问得非常细,还好代码全是我写的,就按照记忆来答,不过略有点吃力,因为最近实习没碰课题了motivation是什么删除行为怎么做怎么做并发控制同时创建同时删除medata怎么做的追加写行为NVMe SSDPersistent Memory的表现page cache怎么做的怎么做的allocator,ext4、btrfs怎么做allocator?说btrfs不懂,谈了下ext4的reserve window和delay allocation怎么做的journallinux kernel IO stack分布式公式算法比如raft懂不懂?老实回答不会,只是听说过...对Persistent Memory的看法,毕竟现在intel停产了RCU并发对现在Persistent Memory文件系统的认识和看法写题:全排列,比较简单,我没怎么刷题,写了十五分钟吧总体上还行,课题问得太细了,连各种race condition怎么处理也问,挺烧CPU的,别的一般,内核问得比较浅,毕竟主要是做文件系统的8.15 三面(部门负责人面):上来是围绕实习在聊现在在阿里云存储部门的实习做什么产品的,场景是什么怎么保证崩溃一致性怎么保证rename的原子性目录rename怎么保证目录级联原子性实习前半段设计方案功能,实现和测试实习后半段主要在做性能优化,单核场景优化、多核场景优化 、一亿文件大数据量场景性能优化定位到rocksdb的迭代器性能问题,去看了下它的迭代器实现,找到问题原因,解决问题。中间还遇到瓶颈在kernel page fault上,也优化了下谈到rocksdb了,开始问rocksdb架构,包括memtable、immem、sst这些烂大街的memtable skiplist vs. rb-tree跨cf原子性disable掉wal后有没有办法保证跨cf原子性,然后开始引导我,讨论了下可以O_DIRECT + fsync的manifest实现印象中好像就这些了,也是主要问存储,内核好像是基本没问。中途我反问是不是应该学点分布式系统,感觉这个好像算常识了,面试官说校招更看深度这个倒没关系,有点出乎我意料。总体上我觉得比二面还简单点8.25 四面(交叉面,隔壁块存储部门负责人):这一面相比前几面更关注文件系统在内核部分的行为,不过没二面那么烧CPU问:上来还是问实习,把三面关于实习的几乎全问了一遍,而且揪住jouranl和rename原子性一直问,问得很细,问到后面我有点难顶,因为我实习做的工作侧重点不是这块,只是刚来的时候看了下代码。好在最后还是凭借记忆撑过去了page cache。怎么bypass掉,fd的原理、关联行为等等怎么提交io,谈了下之前看过内核的块设备层实现,队列设计等等,然后和文件系统层的交互文件从打开、到读写、到关闭的全部流程,越细越好打开,谈了下元数据层面文件系统的行为,包括pathename resolution,然后到dcache和negative dcache,到inode cache,以及各自cache miss的行为提到了RCU,以及dcache的sequence lock中间问我知不知道stale inode,我说前两天实习定位到一个kernel readdir的瓶颈,在disconnected dcache上,可能是inode删了但dcache没更新,导致进入disconnected状态需要从磁盘reload,他说不是。我说那是不是磁盘上删了但还有进程hold着引用,等运行时引用释放再删掉,他说也不是。然后说看来我没接触过,在网络文件系统里面,remote侧删除会导致stale inode产生。我说长知识了,这个真是第一次知道。继续说到fd,说完他说差不多时间了,写题吧做题:带重复数字的全排列。写了十几分钟,有个思路但没写完,他说时间差不多了你说说思路吧,我说了下思路他说你这个效率不高,但没说怎么做是效率高的,就说那就这样吧,后面就是我反问了。我做文件系统之前是研究内核的,所以他往内核问我其实更熟悉一点,总体上难度也还行。都按记忆写的有些印象不深可能漏了,9.1意向,没有hr面给自己知乎专栏打个广告,大爷走过路过来看看啊~:https://www.zhihu.com/column/c_1576639032024567808
点赞 43
评论 21
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务