Kafka तेज़ है — लेकिन मैं Postgres ही इस्तेमाल करूंगा
(topicpartition.io)मुख्य तर्क
टेक इंडस्ट्री दो खेमों में बंटी हुई है:
- खेमे 1: buzzword के पीछे भागते हुए बिना सोचे-समझे जटिल आधुनिक tech stack अपना लेना
- खेमे 2: व्यावहारिक और समझदारी भरा दृष्टिकोण अपनाकर केवल उतना ही इस्तेमाल करना जितनी ज़रूरत हो
लेखक का तर्क है कि ज़्यादातर मामलों में Kafka की जगह Postgres को pub/sub और queue system के रूप में इस्तेमाल किया जा सकता है।
बेंचमार्क परिणाम
Pub/Sub प्रदर्शन
- 4 vCPU single node: प्रति सेकंड 5,036 message write, 25,183 read (5x fan-out)
- 4 vCPU 3-node replication: लगभग समान throughput, latency में थोड़ी बढ़ोतरी
- 96 vCPU single node: प्रति सेकंड 243,000 message, 1.16 GiB/s read speed
Queue प्रदर्शन
- 4 vCPU single node: प्रति सेकंड 2,885 message
- 96 vCPU single node: प्रति सेकंड 20,144 message
मुख्य बिंदु
- हार्डवेयर में प्रगति: आधुनिक hardware (192-core CPU, 4TB RAM) की वजह से single node बहुत शक्तिशाली हो गया है
- Postgres renaissance: "हर चीज़ के लिए Postgres इस्तेमाल करें" जैसी सोच तेज़ी से बढ़ रही है
- व्यावहारिकता: OpenAI जैसे बड़े startup भी अब तक single Postgres instance का इस्तेमाल कर रहे हैं
- संगठनात्मक overhead: नई तकनीक अपनाने से learning, operations, monitoring आदि की लागत बढ़ती है
निष्कर्ष
"जब तक Postgres टूट न जाए, तब तक बस Postgres इस्तेमाल करो"
ज़्यादातर कंपनियों को केवल प्रति सेकंड कुछ MB स्तर का throughput चाहिए होता है, और Postgres इसे आसानी से संभाल सकता है। संदेश यह है कि जटिल distributed system केवल तब ही लाने चाहिए जब उनकी वास्तव में ज़रूरत हो।
8 टिप्पणियां
Kafka धीमा है...
मुझे नहीं पता कि Ppogeul-i हर स्थिति में अच्छा है या नहीं, लेकिन मैंने कई बार ऐसे मामले देखे हैं जहाँ Kafka का इस्तेमाल किया गया जबकि उसकी ज़रूरत नहीं थी, और इससे अतिरिक्त मेहनत बढ़ गई।
PostgreSQL की तारीफ़ में एक और पोस्ट...
अहम बात यह है कि जितनी ज़रूरत हो उतना ही इस्तेमाल करें
और ऐसा डिज़ाइन रखें जिसमें लचीले ढंग से बदलाव किया जा सके
इसे देखकर सबसे चरम Postgresql सिफारिश पोस्ट याद आ गया।
ओह, आपने title को अपनी पसंद के मुताबिक कैसे बदल दिया?
शीर्षक?
मैंने ऐसा कोई खास बड़ा करतब तो नहीं किया था, वैसे।
https://news.hada.io/guidelines
> Markdown समर्थित है
> यह मुख्य लेख और टिप्पणियों, दोनों में समर्थित है।
> मूल रूप से यह CommonMark विनिर्देश का पालन करता है।
> इमेज समर्थित नहीं हैं।
इसके अलावा, ऐसा लगता है कि यदि यह GeekNews URL हो, तो लिंक शीर्षक के आगे एक आइकन दिखाया जाता है
मैं बस SQLite के टूटने तक सिर्फ़ SQLite ही इस्तेमाल करूंगा।