首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
辛尔
西安电子科技大学 数据库工程师
发布于陕西
关注
已关注
取消关注
@已删除:
分布式存储面试经验分享
前一段时间由于一些原因工作变动,面了一些分布式存储的相关岗位,感觉市面上相关经验分享较少,因此拿出来和大家分享一下。由于公司隐私政策问题,不会按公司对题目进行罗列,仅仅就一些面试的方向和内容进行简单梳理。水平经验所限,谬误之处,可以留言交流指正。 相关岗位 分布式存储方向的岗位涵盖甚广,一般可以按照方向分为: 分布式文件存储 对象存储 分布式 KV or 缓存 分布式数据库(new sql) 表格存储 块存储 其定位方向也稍有不同: 分布式文件存储。支持 POSIX 语义或者裁剪 POSIX。可以作为存储和计算分离的存储基座,也可以直接为应用所用,比如说深度学习的一些训练,大数据处理的一些中间存储。常见产品有盘古文件系统、Polarfs、JuiceFS 等。 对象存储。一般是存储图片和视频之类的非结构化数据,通常兼容亚马逊的 S3 接口。常见产品如 Amazon S3、阿里云 OSS、腾讯云 COS。 分布式 KV or 缓存。通常兼容 redis 接口,或者更简化 KV 接口。一般求快,基于内存或者SSD,甚至可持久化内存等新硬件。用于低延迟需求的业务缓存或者存储计算分离系统的底座。产品如字节的 ABase、阿里云的 Tair、PingCAP 的 TiKV。 分布式数据库(or new sql)。通常提供 SQL 接口以及无限水平扩展能力。常见产品有 PingCAP 的 TiDB、阿里云的 PolarDB、腾讯云的 TDSQL。 表格存储。经典的接口可以参考按列存储的 HBase,大数据领域应用比较多。产品如 HBase,字节的 ByteTable。 块存储。提供块设备接口,一般用于云主机的系统盘。产品如 smartX 的超融合。 作者:青藤木鸟 https://www.qtmuniao.com, 转载请注明出处 考察内容 分布式存储的面试考察一般分为几块: 项目经验 基础知识 算法代码 领域知识 系统设计 编程语言 项目经验。如果项目经验匹配的话,对其他方面要求就会相对降低一些,但项目本身会考察的很细致。每个面试官聊项目的切入点可能不太一样,但一定是带有某种考察目的,按目的可以粗分为以下几种类型: 沟通表达。这一条最虚,但一般最重要,因为面试官都会自觉或不自觉的有一个隐形标准:即我以后愿意不愿意跟该候选人共事。这时候问的项目经历可能甚至和面试岗位无关。面对这类考察时,特别注意不要一上来就直接介绍大量实现细节。一个符合认知的回答思路是,按你拿到一个新项目的工作历程来简述(注意一定是简述,因为没人喜欢又臭又长的无病***,时间也不允许。这时候很考察抽象概括能力):项目背景和需求是什么、市面上有什么开源解决方案、我们是如何进行技术选型的、我负责哪一个模块等等。态度上,要不卑不亢,既不要表现出“这都不懂”的傲慢,也不要表现出“您是爸爸”的谄媚,会的就清楚表述,不会的大方说不会即可。 匹配经验。如果你的经验和面试岗位很匹配,面试官可能会让你迅速介绍一下项目概要后深入某个细节考察。这也是不要在项目介绍阶段用时太长的原因,不然面试官虽然想重点发问,但又不好打断你的介绍。这里的考察点一般会和某个模块的设计思路、性能优化相关。这种问题只需要跟着面试官思路做个简单复盘即可。 引出其他。有的面试官问项目,只是为了引出项目可能会涉及到的某些计算机的基础知识,以考察你的求知欲、知识深度等能力。毕竟项目涉及到的知识,一般会了解的比较深入。如果说我只是用过,其他一概不知,多少会有些减分。 基础知识。由于分布式系统和底层打交道还挺多,为了极致优化性能,会需要很多操作系统、计算机网络的知识。考察的比较多的是 Linux IO 栈、文件系统、进程调度、TCP 协议细节等方面。 算法代码。虽然形式上都表现为做题,但算法和代码考察侧重点还不太一样,算法方向侧重常用算法思路,题目可能会比较新,通常以二分、贪心、分治、搜索甚至动态规划为主;代码方向侧重编程的熟练程度、代码风格等,题目可能会比较老,但是写起来会比较繁琐,通常以链表、二叉树、图为主。LRU 和链表 k 个一组翻转是高频题目。 领域知识。主要是分布式系统和存储方向的经典概念。考的最多的就是共识协议,比如 raft,初阶考察形式就是介绍一下大体概念和基本流程;高阶一点会问如何线性读、如何处理惊群、选举日志要求、选举细节等等。其他的就是一些经典项目和论文,比如 GFS 一些设计细节,比如 LSMtree 的一些 compact 细节。 系统设计。因为也工作几年了,所以会考一些系统的基本设计问题。最长考察的点就是负载均衡、宕机容错、消息队列。比如设计一个高可用、低延迟的分布式 KV 系统;比如设计一个延迟触发的事件(Event )管理系统;比如设计一个线程安全的 LRU 等等。 编程语言。存储方向还是用 C++ 比较多,因此可能会考一些 C++ 的知识点。为什么说可能呢,因为我之前主要用 Go,因此大多面试官不怎么考这一项。但如果考察的话,Go 中最常见的考察点就是其 runtime了,包括 Goroutine MN 调度模型和三色垃圾回收的细节。C++ 我只写过小东西,没有做过大项目,特性懂的也不是很多,这里就不妄言了。 面试流程 面试一般是2~4 面技术面,一面 HR 面。技术面一般分为基础技术面和大佬 behavior 面。 技术面基本是前两三面,其面试官一般是你以后的同事和小 leader ,主要考察内容如上节所述。面试是一个双向选择的过程,而这几个面试官直接决定了你以后的工作幸福度,因此一定也要注意考察他们,看齐性格上否和你合拍、技术上是否能助你进步。 大佬面一般是技术面的最后一面,可能是你所面岗位的部门经理把把关,也可能是其他组的 leader 来交叉面。这一面通常不会问技术细节,考察方式也相对套路化。基本就是问你印象最深刻的一个问题是啥、怎么解决的、你的优点是什么、缺点是什么。主要考察候选者的表达能力、聪明程度、behavior等等,不过一般来说这步不会卡人。 HR 面同样很套路化,一般就是三板斧: 期望薪资:现在薪资构成,有无其他 offer,期望薪资总包。期望薪资是个老大难,我也不知道怎么说合适。 离开原因:公司现在情况如何,为什么要离开,对新公司有什么期望。不要贬损前司,捡一些客观事实陈述即可。 性格测试:说一件工作中印象最深刻的问题,解决方法,需要提高的地方。也有就是直接问你内向外向、爱好缺点啥的。不卑不亢,别给自己挖坑就行。 注意 HR 面的时候可以打听下工作岗位的工作节奏,看是否符合你预期,如果有第三方信息来源那就更好了。此外,还可以通过 HR 加一下之前技术面试官微信,详细了解下以后的工作内容。 题目汇总 算是一个附录吧,按分类汇总下详细问题。 领域知识 GFS 如何保证数据的高可用?遇到错误如何进行重试? raft 如何实现从 follower 读取? raft 中大多数节点提交某条日志后,未包含该日志的某个节点能成为 leader 吗? leveldb 中如果经过多次 compact,底层文件系统产生了很多碎片,WAL 还能保持高效的顺序写性能吗? raft 论文中 peer 启动的时候是 follower,可以是 candidate 吗? raft 如何避免惊群效应? 基础知识 tcp 的三次握手简述 tcp 序号的含义和初始值?是否随机? socket 编程的几个源语? tcp listen 对应状态机中什么状态? 磁盘负载百分之百代表什么? cpu 负载过高代表什么? 文件系统 open 函数执行时,背后从上层到底层发生了什么? 虚拟内存的设计有什么好处? mmap 共享内存是否破坏了进程间的隔离性? 系统设计 设计一个支持用户元信息和用户 Follow 关系的分布式 KV 存储。 设计一个线程安全的 LRU。 代码算法 randomset,设计一个支持 random 接口的 set,random 要求以 O(1) 的复杂度等概率的返回一个值 LRU 链表快排 链表 k 个一组翻转 链表 shuffle:Node0->Node1->...->Noden-1,shuffle 成以下:Node0->Noden-1->Node1... Python 中判断两个 dict 相同?动态语言,类型相同,值相同,可能有环 使用互斥锁实现一个读写锁 五只弹钢琴。给定一个无序自然数序列,作为钢琴键的位置,单只手最多可以接触五个连续位置,求弹出该序列所有位置,手的最小移动次数 将长度为 m 的木棒切为 n 段,有多少种切法?(mn 都是正整数) 项目相关 如何定位系统延迟的瓶颈? 如何降低 GC 对主干流量的影响? 多副本如何选主? 多个副本写入如何保证一致性和可靠性? 编程语言 golang:defer 的开销,如何进行优化? golang:runtime 是以什么形式存在?库还是二进制? golang:为什么 goroutine 更为轻量? golang:channel 如何实现?
点赞 18
评论 4
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
11-20 10:56
腾讯云智研发_后台开发(实习员工)
数字马力二面
面试官人很好,大部分都是项目引出的问题,ai问题很多问题1.自我介绍2.介绍一下实习业务背景,技术栈等等3.你实习的过程中redis用来做什么的,什么场景介绍一下4.redis还能做什么?5.你们如何处理这个缓存与数据库不一致的问题的6.redis的工作原理了解吗?7.redis是单线程吗?有没有多线程?哪里体现了多线程?8.你们用的什么数据库,你如何去优化自己的sql语句呢?9.如何建立索引?10.你对微服务分布式有了解吗?介绍一下?11.讲讲什么是gateway?12.gateway底层怎么做的?13.你对算法了解吗?了解过什么算法?14.雪花算法是什么?会有什么问题?如何处理?15.你对...
查看25道真题和解析
点赞
评论
收藏
分享
11-21 17:27
已编辑
门头沟学院 Java
招银云创秋招一面、二面、HR面
云创真的问的超级简单,应该没几个这么简单的公司了吧一面 9月22日 29min在**实习的时候,接口的瓶颈是什么、采用了什么样的优化策略,最终实现了这个性能的优化Java重载、重写的区别Bean的生命周期synchronied和Lock的区别AQS的实现SpringBoot用过哪些注解用过什么线程安全的组件AOP有没有使用过有没有做过什么SQL优化假如说SQL执行慢,如何去优化【反问】是面试官直接招到组里吗?统招多少轮面试?两轮技术面二面 9月25日 19min简单做个自我介绍。线程池那边你应该有用过哈,那在多线程的场景下,可能会出现一些什么问题?你刚才提到第一个例子,多线程去改同一个值的时候...
发面经攒人品
点赞
评论
收藏
分享
10-12 14:31
广东药科大学 Java
这份简历问题很大吗?
从9月份开始投递,网申了100多家,boss也投递了不少,至今为止就一个kpi面,这合理吗?各位牛友们能不能帮我看看简历哪里有问题吗?
迷茫的大四🐶:
实习经历真实吗,为什么实习会写权限?
点赞
评论
收藏
分享
10-08 22:46
门头沟学院 Java
27日常求拷打简历
求求修改意见🥺🥺,广州某9本,想这段时间在广州找第一段实习,还没有投递的经验,牛友有什么建议或经验分享分享😭🙏🙏
后端劝退第91人:
打码内容和项目名字配合的很好
投递实习岗位前的准备
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
28届一直想找实习但是不敢开始怎么办
967
2
...
大家不是好奇自己的面评长什么样子吗?
966
3
...
【现金奖励】26秋招薪资爆料征集,瓜分现金红包!
947
4
...
挑战一篇讲完实习转正
928
5
...
玩脱了,偷走老板4万块
873
6
...
最恐怖的一集 测开也卷了
777
7
...
大厂面试官:实习期间有没有参与处理过线上问题?拿走直接抄答案!
701
8
...
互联网大厂程序员?我祛魅了
687
9
...
deep seek把人当傻子耍
629
10
...
没人肯帮我打掩护怎么办
617
创作者周榜
更多
正在热议
更多
#
找实习是选平台还是选业务?
#
1945次浏览
20人参与
#
记录实习开销
#
165964次浏览
641人参与
#
小红书开奖了
#
37969次浏览
190人参与
#
OC/开奖
#
208990次浏览
1383人参与
#
科大讯飞工作体验
#
29968次浏览
73人参与
#
秋招疯了,看什么都像offer
#
19127次浏览
130人参与
#
百度秋招
#
53703次浏览
391人参与
#
应届生第一份工作最好去大厂吗?
#
87317次浏览
885人参与
#
材料转码还有必要吗?
#
32873次浏览
153人参与
#
华为工作体验
#
244146次浏览
1304人参与
#
实习学到最有价值的工作习惯
#
42159次浏览
368人参与
#
办公室恋情是职场大忌吗
#
11042次浏览
21人参与
#
设计人的面试记录
#
167791次浏览
1546人参与
#
华为池子有多大
#
125241次浏览
811人参与
#
你知道哪些职场黑话?
#
65577次浏览
454人参与
#
电信求职进展汇总
#
29412次浏览
159人参与
#
招银网络科技工作体验
#
26185次浏览
95人参与
#
实习生应该准时下班吗
#
318401次浏览
1718人参与
#
研究所VS国企,该如何选
#
226774次浏览
1944人参与
#
CVTE求职进展汇总
#
27134次浏览
327人参与
#
移动求职进展汇总
#
14446次浏览
119人参与
#
蚂蚁求职进展汇总
#
134249次浏览
1214人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务