## 一面
- 网盘如何断点续传?md5判断文件是否重复?是否完备?md5是否可能重复,文件的check,文件的内容一样:
- 文件的判断,绝大部分场景用md5判断,哈希,绝大部分用这些判断; 文件头内部的魔术;
- 1,9,3无序到达,tcp内部如何实现: 针对未到达的数据,触发空缺给客户端,超时重发IO多路复用发送字符串文件打开,读入,kernel buffer, 用户进程buffer 用户进程,std io,网卡缓冲区CPU使用率很高的情况?
- CPU很高 内存; 死锁,CPU;内存使用率很高的情况?
- 加载大文件,内存; OOM; feed,加载到内存中; 用户上传上来的图片/视频,需要人脸检测,需要资源加载;
- 进程:linux命令,ps -ef,cat /proc/PID/发散的电梯的设计,控制程序:
- 电梯的实体:开门,关门,楼层内部的数据,当前上楼/下楼,每个楼层是否停止按钮的实体:上楼,下楼很多的场景:两个并列的电梯:多个并列的电梯提出的想法
## 二面
- IO切换频繁先来现服务:最短剩余时间:时间片:多级反馈队列:多个队列,权重不同暂停传输:聊天软件:邮件,怎么知道?最小网络传输。1000,分页。
- 增量推送。邮件增加,变化。交互方式。如何diff。增加。增量,user+邮件接收时间。如何设计邮件的id。
- 场景:新增邮件,已经获取的有邮件新增操作,已读文件标未读。获取变化。如何同步过来。变化尽可能少的通信标识出来。传多少。如何得知传多少。状态记录到服务端,直接获取服务端的增量,减少网络传输。
- (全表+少量必要信息)服务端,记录最大版本号,客户端保存版本号,多个级别的版本号,文件夹对一个用户,有一个版本号文件夹下的文件发生变化,那么文件夹的版本号发生变化版本号增量表(如何变动的话,消费)索引,使用,事务,ACID。
- 索引的创建的原则:约束条件,哪些字段应该创建使用频率高高选择度file_sort:没命中索引a&b,索引能命中?联合索引(a,c,b)工作内容:APASS,低代码开发,表单。简单但是量大。