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