快手一面面筋

面试官上来调试了十分钟设备,我说声音像古神的低语xD(

面试官是数据库大佬,问的很专业很深入,大多数都是开放题,让我不要局限于本问题,能回答多少回答多少,因此一个问题我都回答的很多,讨论过程很长。。。

  1. lock和latch
  2. 数据库隔离级别
  3. 可重复读当前读如何实现
  4. 如何保证其他事务不去修改当前数据
  5. 数据库涉及的各种锁
  6. 剖析一下InnoDB
  7. 一条消息进入数据库,涉及到的各种超时机制
  8. 文件管理系统页面4kb,sql页面是16Kb,当读到一半宕机了,如何保证一致性
  9. 自增唯一键为什么会大量导致死锁
  10. select和epoll
  11. 进程线程协程

和面试官探讨了很久的数据库的具体业务方向,听面试官说了总结,就结束了。

体验极佳,学到了非常多的东西,笔记记了一堆,真的是在探讨,而不是单方面的检验。

#快手#
全部评论
看来面试官是搞KDB的大佬
点赞 回复
分享
发布于 04-26 16:11 北京

相关推荐

先自我介绍,总共45分钟1、专业具体方向是什么2、实习主要做了些什么3、垃圾回收机制4、常用的垃圾回收器5、G1和CMS的区别是什么6、多线程安全怎么做7、volatile和synchronized的区别8、双亲委派模型是怎么样的9、双亲委派的模型,怎么打破10、静态代理和动态代理的区别,动态代理是怎么实现的11、线程池的submit和excute的区别1、返回结果:submit()方法可以接受并返回Future对象,用于表示异步任务的结果。你可以通过Future对象获取任务的执行结果,或者等待任务执行完成。而execute()方法没有返回值,无法获取任务的执行结果。2、异常处理:submit()方法能够处理任务执行过程中抛出的异常。你可以通过调用Future对象的get()方法来获取任务执行过程中的异常,或者通过捕获ExecutionException异常来处理异常情况。而execute()方法无法处理任务执行过程中的异常,异常会被传播到线程池的未捕获异常处理器(UncaughtExceptionHandler)。3、方法重载:submit()方法有多种重载形式,可以接受Runnable、Callable和其他可执行任务作为参数。它们的返回值类型分别为Future、Future和Future,其中T为Callable返回结果的类型。这使得submit()方法更加灵活,可以处理不同类型的任务。而execute()方法只接受Runnable类型的任务作为参数,没有方法重载的选项。12、算法:最长重复子数组(动态规划秒了,然后要我优化时空复杂度)13、喜欢那些具体方面的技术14、分布式产品有哪些15、使用微服务和单体架构的区别16、微服务组件用过那些17、CAP原理18、一般互联网公司会用cap的哪两个19、redis怎么实现分布式架构20、redis集群的原理21、redis扩容怎么办22、redis的可用性怎么保证23、了解其它一些数据库吗24、怎么定位bug的25、线上部署的项目怎么定位bug26、在linux上怎么定位bug,定位bug时常用那些命令27、在linux上磁盘IO过大怎么定位问题所在28、大概可以实习多久29、看你简历上是去深圳,是一定要深圳吗
点赞 评论 收藏
转发
2 17 评论
分享
牛客网
牛客企业服务