崗位職責(zé):
1、核心開(kāi)發(fā)與定制: 基于Redis源碼進(jìn)行二次開(kāi)發(fā),包括但不限于新功能的添加、核心流程的修改、特定性能優(yōu)化以及Bug修復(fù)。
2、性能極致優(yōu)化: 深入分析和優(yōu)化數(shù)據(jù)庫(kù)的性能瓶頸,包括網(wǎng)絡(luò)I/O、內(nèi)存管理、數(shù)據(jù)結(jié)構(gòu)、持久化機(jī)制等,以追求極致的低延遲和高吞吐。
3、高可用與分布式: 參與設(shè)計(jì)和開(kāi)發(fā)高可用性(HA)及集群方案,確保系統(tǒng)在分布式環(huán)境下的數(shù)據(jù)一致性、容錯(cuò)性和可擴(kuò)展性。
4、問(wèn)題排查與解決: 能夠快速定位和解決線上環(huán)境中出現(xiàn)的復(fù)雜技術(shù)問(wèn)題,包括性能抖動(dòng)、內(nèi)存泄漏、數(shù)據(jù)不一致等深層次問(wèn)題。
5、技術(shù)規(guī)劃與創(chuàng)新: 跟蹤業(yè)界最新技術(shù)動(dòng)態(tài)(如持久內(nèi)存PMem、新網(wǎng)絡(luò)協(xié)議、異構(gòu)計(jì)算等),探索并將其應(yīng)用于產(chǎn)品,以提升技術(shù)競(jìng)爭(zhēng)力。
6、文檔與協(xié)作: 編寫(xiě)詳細(xì)的設(shè)計(jì)文檔和技術(shù)方案,并與團(tuán)隊(duì)其他成員高效協(xié)作,進(jìn)行代碼審查和技術(shù)分享。
任職要求:
1、計(jì)算機(jī)科學(xué)或相關(guān)專(zhuān)業(yè)本科及以上學(xué)歷,5年以上后端系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),其中至少2年專(zhuān)注于數(shù)據(jù)庫(kù)、存儲(chǔ)系統(tǒng)或中間件等基礎(chǔ)設(shè)施研發(fā)。
2、精通C/C++語(yǔ)言,具備扎實(shí)的編程能力、良好的代碼風(fēng)格和大型項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn)。
3、深入理解Redis的核心原理和源碼,包括但不限于:事件驅(qū)動(dòng)模型(AE)、單線程架構(gòu)、數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)(SDS, dict, ziplist, quicklist等)、持久化(RDB/AOF)、主從復(fù)制、哨兵模式等。
4、有實(shí)際基于Redis源碼進(jìn)行修改、調(diào)試或二次開(kāi)發(fā)的經(jīng)驗(yàn)。
5、對(duì)計(jì)算機(jī)網(wǎng)絡(luò)、操作系統(tǒng)原理有深刻理解,熟悉多線程、鎖、內(nèi)存管理、IO模型等。
6、深刻理解數(shù)據(jù)庫(kù)系統(tǒng)的基本理論,如事務(wù)、索引、并發(fā)控制、日志技術(shù)等。
熟悉常見(jiàn)的分布式系統(tǒng)理論,如CAP定理、共識(shí)算法(Raft/Paxos)、分布式事務(wù)等。
7、具備出色的性能分析能力,熟練使用如perf, gdb, valgrind, bpftrace等工具進(jìn)行系統(tǒng)級(jí)調(diào)試和優(yōu)化。
8、有參與開(kāi)源數(shù)據(jù)庫(kù)項(xiàng)目(如Redis, KeyDB, DragonflyDB, TiKV等)貢獻(xiàn)經(jīng)驗(yàn)者優(yōu)先。
9、有自研內(nèi)存數(shù)據(jù)庫(kù)或分布式存儲(chǔ)系統(tǒng)經(jīng)驗(yàn)者優(yōu)先。
10、熟悉Redis集群模式及其實(shí)現(xiàn)細(xì)節(jié)者優(yōu)先。
11、對(duì)新興硬件(如PMem、RDMA、GPU/DPU)在數(shù)據(jù)庫(kù)中的應(yīng)用有研究者優(yōu)先。
12、具備良好的團(tuán)隊(duì)溝通和協(xié)作能力,有技術(shù)領(lǐng)導(dǎo)力者更佳。