- Kafka के तेज़ होने के सामान्य कारण
- low-latency I/O का उपयोग (ram)
- sequential I/O data structure का उपयोग (log)
- zero-copy का उपयोग
- horizontal scaling system
- data compression और batch processing
- zero-copy क्या है?
- file को socket में copy करते समय होने वाले overhead को कम करने वाला OS-supported interface
- Linux में
sendfile command
- तो Kafka zero-copy की वजह से तेज़ कैसे हुआ?
- Java में NIO package में
transferTo function जोड़ा गया
- इसका उपयोग करके Kafka message को user space में लाए बिना kernel space से सीधे network पर भेजता है, जिससे speed में बड़ा फायदा मिलता है
- पारंपरिक तरीके और
transferTo इस्तेमाल करने वाले तरीके की performance measurement में, बाद वाला 65% अधिक तेज़ निकला
2 टिप्पणियां
मूल लेख में लगता है
nioको लेकर थोड़ी भ्रम की स्थिति है;nioका मतलब non-blocking io नहीं, बल्कि new io है। यह blocking और non-blocking, दोनों को support करता है।कुछ दस्तावेज़ों में इसे non-blocking io का संक्षेप लिखा हुआ था, इसलिए मैं गलत समझ बैठा था। फ़ीडबैक के लिए धन्यवाद।