內核讀取緩衝區 內核空間緩衝區 理解請教

来源:1-9 Kafka高性能核心pageCache与zeroCopy原理解析

pinkyTseng

2021-09-13 16:28:26

老師,我仔細思考後有3大點疑惑不知是否理解正確想請教您,請老師指點迷津,萬分感謝

 

1.內核讀取緩衝區和內核空間緩衝區差別在哪?本質上是不是一樣的東西?都是OS級別的PageCache,只是source不同,一個是磁盤一個是用戶態buffer? 


2.另外需要內核空間緩衝區的原因是不是因為,用戶態無法直接執行OS底層如CPU,network之類的操作,所以需要先寫到內核空間緩衝區?又因為一般操作會先到用戶態再到內核態,因為內核態可能會做些處理,可能和內核讀取緩衝區內的資料會不同,所以不能直接用內核讀取緩衝區而是要先寫回到另一塊內核空間緩衝區?


3.是不是也代表就是因為kafka是不可刪的資料不會也不必在用戶態有改動,所以才可以直接用內核讀取緩衝區來達成零拷貝?也就是零拷貝本質上應該只能用在不可變更資料的中間件上?



写回答

1回答

阿神

2021-09-13

是的,也可以这样理解

1
hinkyTseng
hp>非常感謝老師的解惑,看來上面3點我有疑問的地方似乎理解都是對的,有沒有什麼比較特殊的情況下會是不對的呢?

另外第3點我還有些疑惑,因為老師課上有提到阿里雲的MQ可以做到邏輯上的刪除,我猜想應該是加上些tag之類的?但這樣資料不會變更到麼?這邊我還有些不太明白,再請老師解惑一下,萬分感謝

h021-09-13
共1条回复

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程