TT面经|Tiktok oa|Tiktok面经|tiktok vo|tiktok代面|tiktok oa|tiktok笔试

上周四安排的电面,题目还是有点challenge,coding的量还是挺大的。

一面

一面整体上非常单调,大概50分钟,主要两部分:项目和算法题,项目介绍了30分钟,然后面试官围绕项目问了几个问题,最后刷了一道算法题三数之和

二面

二面没有问太多我现在做的中间件项目,整体上50多分钟,猜测可能是一面已经问完了,问了一些我字节实习期间做的项目,主要是问问工作量,比如多长时间、代码量、设计文档多少页这种。
然后问了简历上性能调优的工作,主要是对组内的中间件进行性能测试,然后想办法提升网络吞吐量。
:通过批量网络IO减少系统调用次数,改同步为异步并发,删除一些go-mysql的重复操作
面试官:听你说了减少系统调用次数来提升性能,read网络系统调用哪里最耗时呢?
:系统调用涉及到用户态到内核态的切换,用户栈内容需要拷贝到内核栈中,这是一次耗时,最耗时的地方是数据从网卡到内核,从内核到用户的两次拷贝,另外如果发生了进程切换,那么现有进程的TLB将会发生失效,TLB失效也会造成一定的影响,但是这个影响不是那么直观。虽然x86支持PCID技术,能够避免进程切换时TLB失效,但是这种做法在多处理器下会导致进程的TLB项遍布在多个处理器的TLB中,如果想要使该进程的TLB失效,就可能需要处理器间中断操作
面试官:对TiKV了解吗
:当时计划做binlog server的时候,研究过TiKV的协议部分,因为binlog server很重要的一点是需要实现mysql master的部分功能
面试官:TiKV是如何实现多行语句事务呢?这部分代码有看过吗?
: 没有
面试官:一些概念性的问题:什么是事务,MySQL事务隔离级别,什么事事务的一致性,什么是强一致性,弱一致性,最终一致性。了解CAP理论吗?
:CAP理论内容忘了,其他的都还行。
还有一些问题忘了
最后是一个算法题:二分相关的,mid中的easy

三面

上来问了Shopee Infra的一些事情,问我leader是谁,他说了好几个我们database组的人,看来对我们组有了解。

  1. 你自我介绍说了网络,操作系统,你对网络和操作系统很了解吗?
  2. 操作系统你看过哪些模块的源码,是怎么看的
  3. 操作系统中文件系统的一些命令,比如iostat这种,内核是怎么实现的
  4. 又问了下字节实习的项目,工作量以及哪些是我干的
  5. 问我热爱技术为什么要去新加坡,毕竟…懂得
  6. 问我平时都干嘛
  7. 问我聊不了解CRDT
  8. 问我组中间件的整体架构,然后部署方式,了解到是单进程方式后,让我设计一个分布式的系统统一管理云云,算是一个系统设计题
  9. 问我聊不了解TiDB,我说我看过一些代码,debug过
  10. 紧接着问我知不知道Linux是如何实现debug的
  11. 还有一些其他问题忘了,没有算法题

状态

HR面约了时间,等待HR面

author avatar
azn7u2@163.com

Leave a Reply

Your email address will not be published. Required fields are marked *