15 -【cmu15-721】【高級(jí)數(shù)據(jù)庫(kù)系統(tǒng)】【卡內(nèi)基梅隆大學(xué)】【中英字幕】

1. 計(jì)算機(jī)數(shù)據(jù)庫(kù)系統(tǒng)通常使用特定的網(wǎng)絡(luò)協(xié)議進(jìn)行客戶端和服務(wù)器之間的通信。
2. ODBC和JDBC是常用的用于與數(shù)據(jù)庫(kù)系統(tǒng)交互的API。
3. ODBC是Microsoft在上世紀(jì)90年代提出的,而JDBC是Sun Microsystems在Java出現(xiàn)后提出的。
4. 數(shù)據(jù)庫(kù)系統(tǒng)通常會(huì)提供自己的網(wǎng)絡(luò)協(xié)議,用于客戶端和服務(wù)器之間的通信。
5. Postgres數(shù)據(jù)庫(kù)中只有20%的數(shù)據(jù)庫(kù)使用SSL或TLS加密,這一點(diǎn)令人驚訝。
6. 數(shù)據(jù)系統(tǒng)執(zhí)行查詢并將結(jié)果序列化返回給客戶端時(shí),會(huì)消耗大部分時(shí)間。
7. 不同的數(shù)據(jù)系統(tǒng)有自己的網(wǎng)絡(luò)協(xié)議,不兼容。
8. 許多新系統(tǒng)選擇使用現(xiàn)有的MySQL協(xié)議或Postgres協(xié)議,而不是實(shí)現(xiàn)自己的網(wǎng)絡(luò)協(xié)議。
9. 在網(wǎng)絡(luò)傳輸中,可以使用壓縮和特定編碼來(lái)提高性能。
10. 數(shù)據(jù)庫(kù)系統(tǒng)可以使用不同的編碼方式來(lái)處理字符串、長(zhǎng)度編碼、空值和整數(shù)等數(shù)據(jù)。
11. 一種方法是使用二進(jìn)制編碼,將數(shù)據(jù)編碼為二進(jìn)制格式發(fā)送給客戶端。
12. 另一種方法是使用現(xiàn)有的庫(kù),如Google Protocol Buffers、Facebook Thrift和Flat Buffers,來(lái)定義數(shù)據(jù)的格式,并將其轉(zhuǎn)換為相應(yīng)的代碼。
13. 文本編碼是將數(shù)據(jù)以字符串的形式發(fā)送,客戶端負(fù)責(zé)將其轉(zhuǎn)換回二進(jìn)制數(shù)據(jù)。
14. Apache Arrow是一種用于網(wǎng)絡(luò)傳輸?shù)臉?biāo)準(zhǔn)列格式,可以實(shí)現(xiàn)零拷貝操作,提高數(shù)據(jù)傳輸效率。
15. Apache Arrow是一個(gè)圍繞數(shù)據(jù)格式構(gòu)建的項(xiàng)目,其中包括其他子項(xiàng)目,如ADBC和Arrow Flight。
16. ADBC是一種用于與數(shù)據(jù)系統(tǒng)通信的API,可以以Arrow格式獲取和處理數(shù)據(jù)。
17. Data Fusion是一個(gè)圍繞Arrow格式構(gòu)建的執(zhí)行引擎項(xiàng)目。
18. 一些系統(tǒng),如Snowflake,可以使用Arrow格式導(dǎo)入和導(dǎo)出數(shù)據(jù)。
19. I/O U-ring是一個(gè)新的系統(tǒng),可以實(shí)現(xiàn)零拷貝異步I/O,可以提高數(shù)據(jù)系統(tǒng)的性能。
20. 用戶旁路是一種替代內(nèi)核旁路的方法,通過(guò)將數(shù)據(jù)庫(kù)邏輯嵌入內(nèi)核中,讓內(nèi)核運(yùn)行所需的數(shù)據(jù)庫(kù)代碼。
21. EPVF是一種允許在內(nèi)核中運(yùn)行用戶代碼的技術(shù),通過(guò)編寫(xiě)EPVF程序并進(jìn)行驗(yàn)證和編譯,然后在運(yùn)行時(shí)使用LLVM進(jìn)行即時(shí)編譯。
22. 用戶旁路適用于那些不需要長(zhǎng)時(shí)間保留數(shù)據(jù)的邏輯,例如快速查看數(shù)據(jù)并進(jìn)行決策的場(chǎng)景。
23. 用戶旁路可以在Postgres代理、B+樹(shù)遍歷等場(chǎng)景中提高性能。
24. 長(zhǎng)期愿景是構(gòu)建一個(gè)只運(yùn)行數(shù)據(jù)庫(kù)系統(tǒng)的微內(nèi)核,以避免操作系統(tǒng)的開(kāi)銷。