杭州灵岫科技-存储开发实习岗(C++)-二面凉经

这场被拷打的是真的惨

1.自我介绍

介绍了个人情况和两个项目,一个是LevelDB,一个是实验室的SAR相关的

2.为什么想做kv存储,做的kv存储是哪个项目相关,和redis有什么区别

想学习存储引擎,学习的是leveldb(实际上就是leveldb),redis是一个完善的缓存数据库,我这个只是一个小引擎,只有增删改查的接口

3.共享屏幕IDE:完成力扣的LRUcache题目

人麻了LRU思路很简单,但是这题应该用一个双向链表和map,之前没写过直接用了两个map,测试用例也过不了。主要是没想到会这么考,直接稀烂

4.打开自己写的KV存储引擎的源码(逆天)

不好意思那个项目的源码这台电脑上没有(实际上还没有自己写过)

继续问:那你打开leveldb吧

战战兢兢地打开了leveldb

继续问:你打开到leveldb的LRUcache,看看他的是怎么写的

看到了双向链表和map,但是已经凉透了

5.文件系统这块了解吗,filesystem?讲讲对文件系统概念的理解

了解过fat32,ntfs,

再问:文件系统是什么?问的不是怎么设计文件系统

不太懂

6.了解过inode的概念吗

没有

7.有一个大文件,文件系统是怎么把大文件读到内存里的

不懂

全部评论
佬最后选择java还是嵌入式了
点赞 回复 分享
发布于 2024-09-24 19:42 河北
你投数据库岗 这个LRU必须要会的呀😂😂😂
点赞 回复 分享
发布于 2024-08-07 12:24 浙江
一周前面的,一天下午两个面试官面两次,说一周后反馈,到现在感觉凉凉😫
点赞 回复 分享
发布于 2024-08-06 16:23 浙江
校友,今天刚面完一面,周四二面,要碎了😰
点赞 回复 分享
发布于 2024-08-05 18:05 江苏

相关推荐

某公司一颗钉子:想把tcp聊天室的项目写到简历里面的话需要做一定的扩展,可以参考一下这个项目:https://www.bilibili.com/video/BV1iYtrezEkA/ 也可以看看下面这几个项目 云存储:https://www.bilibili.com/video/BV1XPfTY8EGD/ 多线程任务队列系统:https://www.bilibili.com/video/BV1XS9dYsE9d/ RPC项目:https://www.bilibili.com/video/BV15ff4YsEPy/
点赞 评论 收藏
分享
问题1:为什么会使用分库分表,到达了什么样的数据级别才会去加设计,是否对数据量有一个统计我的理解:看星哥之前写过 单表行数超 500 万行或者单表容量超过 2GB,推荐分库分表,但是面试的过程中怕被问自己写的项目会有这么大的数据量吗不要这么硬背,具体情况具体分析,有的表字段少,经常是条件等值查询,这样加个索引,一个亿也不用分表,有的字段多,还是范围查询,可能5000万就得分表,面试官问你你说是自己在学习分库分表应用到项目中,自己造了几千万的数据量问题2:基因法需要分表的一个数量和确定的一个东西(我的理解是分表的依据,例如大麦中是订单编号和用户id),但是正常的生产环境中是可能动态改变的,比如说需要动态扩容的话,怎么解决呢(例如当前有4个分表,但是现在需要扩充到8个分表),是使用双写吗?这个在扩容前就要考虑好能维持多少年内不需要再扩容。转转架构师在分库分表前,通过之前记录的数据增长量,做了256张表,能在7年内不需要再扩容,如果需要扩容的话,可以使用双写,新扩容表写的过程中,用新的分库分表算法问题3:如果在防止超卖的过程中,Redis不可用了,怎么解决我的理解:使用Redis集群和主从复制吗?因为Redis宕机的话数据库的数据也不能保证是最新的版本,所以得尽量保证Redis不宕机?肯定要使用redis集群模式,但可能会有主从延迟,导致从节点数据不是最新的,但关系不大。可以在用户生成订单后,修改数据库的座位和库存,然后用户支付后,再改数据库的座位和库存,每一步都做好验证。这样从节点的数据问题会降到最低。问题4:如果在当前的幂等验证逻辑中,有一个消息所对应的幂等标识符是不存在的,按照现有的逻辑是可以执行的,但是幂等验证之后的业务系统异常了,这个时候应该怎么处理呢(即通过了幂等的验证,但是后面的服务down掉了,比如说下游抛了一个异常出来)【没太明白应该回答什么,是指需要将幂等标识符重新进行设置吗】异常了就异常了呗,把这个请求的标识从redis中删除了,就像分布式锁时,业务异常也要执行解锁一样,让下一个请求进来正常执行,然后设置好标识位问题5:本地缓存为什么使用Caffine呢,为啥不用Guava因为caffine的性能要远高于Guava,没有其他复杂原因我的理解:查了下Caffine就是Guava改进而来的,可以这么说吗- Caffine在读写操作方面的性能更高,是基于异步的操作,将淘汰过期操作与读写进行分离- Caffine采用了一种结合 LRU、LFU的算法W-TinyLFU+,具有高命中率,低内存占用的特点
查看5道真题和解析
点赞 评论 收藏
分享
评论
1
9
分享

创作者周榜

更多
牛客网
牛客企业服务