【第二十一期】知乎社招Golang工程师面经

算法踏风鹤
• 阅读 1005

一面

    1. 分布式系统一致性说一下
    1. raft算法细节
    1. 锁问题,cas,锁的实践?
    1. go标准库的mutex介绍
    1. bitcask存储模型细节,既然是追加写,那么如何做旧数据gc?重启后索引怎么恢复?
    1. LSM tree介绍一下,相比b+ tree如何?
    1. 给TIDB代码贡献介绍一下,TIDB里query大概流程?
    1. 项目里的map并发怎么做?为啥用分段锁不用sync.map?分段锁拆了几个分片?
    1. 内存对其了解吗?
    1. 简单介绍一下go的内存分配机制?有mcentral为啥要mcache?答了mcentral是服务所有系统线程,mcache为系统线程独享,mcache缺少span时去mcentral->mheap中取

二面

    1. 聊了聊开源贡献
    1. redis连环炮,数据结构+哨兵+同步
    1. 聊工作项目
    1. innodb连环炮index redo undo mvcc
    1. 闲聊技术人生问了问组里的工作

hr

    1. 聊人生聊发展
点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
10个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
java常见笔试编程题,深夜思考
一面(一个半小时)1.首先自我介绍2.了解Web层开发?数据库索引了解么?聚簇索引,非聚簇索引?索引分类?3.了解数据库都由哪些引擎?分别有什么区别和使用场景?4.了解分布式?高可用?如何保证节点集群的同步?Nginx了解过么?5.什么是事务,数据库的隔离级别,Mysql默认的隔离级别。6.JVM的内存模型,GC算法7.非递归实现
灯灯灯灯 灯灯灯灯
4年前
面试百度和美团,竟然问我多线程安全问题,正好撞在我知识点上
解决多线程安全问题无非两个方法synchronized和lock具体原理以及如何获取锁AQS算法本篇文章主要讲了lock的原理就是AQS算法,还有个姊妹篇讲解synchronized的实现原理也是阿里经常问的,一定要看后面的文章,先说结论:非公平锁tryAcquire的流程是:检查state字段,若为0,表示锁未被占用,那么尝试占用,若不为0,检查
拜占庭将军问题和 Raft 共识算法讲解
在分布式系统中,什么是拜占庭将军问题?产生的场景和解决方案是什么?什么是Raft共识算法?Raft算法是如何解决拜占庭将军问题的?其核心原理和算法逻辑是什么?除了Raft,还有哪些共识算法?共识问题作为分布式系统的一大难点和痛点,本文主要介绍了其产生的背景、原因,以及通用的Raft算法解决方案。
Stella981 Stella981
4年前
Raft 算法在分布式存储系统 Curve 中的实践
作为网易数帆开源的高性能、高可用、高可靠的新一代分布式存储系统,Curve对于多副本数据同步、负载均衡、容灾恢复方面都有较高的要求。网易数帆存储团队选用Raft算法作为Curve底层一致性协议,并基于Raft的特性,实现了异常情况下的数据迁移和自动恢复。本文首先简要介绍一下Raft算法的一些基本概念和术语,再详细介绍其在Curve中的实践。Raft一致性
Stella981 Stella981
4年前
Redis分布式锁的正确实现方式
前言分布式锁一般有三种实现方式:1.数据库乐观锁;2.基于Redis的分布式锁;3.基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。
Easter79 Easter79
4年前
TiKV 源码解析系列文章(十七)raftstore 概览
第一作者:李建俊,第二作者:杨哲轩,王聪TiKV作为一个分布式KV数据库,使用Raft算法来提供强一致性。Raft算法提供了单一group的一致性,但是单一group无法扩展和均衡。因此,TiKV采用了MultiRaft的方式基于Raft算法提供能兼顾一致性、扩展均衡的KV储存。下文以3.0版本代码为例,讲述raf
Wesley13 Wesley13
4年前
go并发基础数据加锁解锁
packagemain//go携程共享数据//加锁解锁操作//同步锁import("sync""fmt")funccomputed(dataint,locksync.Mutex){lock.Lock()//加锁霸占
Wesley13 Wesley13
4年前
Java高并发程序设计(四)—— 无锁
一、无锁类的原理详解无锁的概念就是无障碍运行,无障碍是指所有的线程都能进入临界区,无锁在无障碍的基础上加上了一条就是每次竞争必然有一条能够胜出。理论上无障碍有可能线程都失败,所以无锁更切实可行,但实践上无障碍和无锁差不多。(一)CAS(CompareAndSwap)CAS算法的过程是这样的,它包含三个参数CAS(V,E,N)。V表示要更新的变
线上SQL超时场景分析-MySQL超时之间隙锁 | 京东物流技术团队
前言之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下。背景说明分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案消息表名:mqmessages数据量:3000多万索引:createtime和statuss
linbojue linbojue
1年前
Etcd:分布式键值存储和配置系统
什么是Etcd?Etcd是一个开源的、分布式的键值存储和配置系统,由CoreOS团队开发并维护。它基于Raft一致性算法,用于存储和检索关键数据,并提供了高可用性、强一致性和高性能的特性。Etcd的设计目标是为分布式系统提供共享配置、服务发现、分布式锁和协
算法踏风鹤
算法踏风鹤
Lv1
四张机,鸳鸯织就欲双飞,可怜未老头先白;春波碧草,晓寒深处,相对浴红衣。
文章
6
粉丝
0
获赞
0