इस प्रोजेक्ट के बारे में
Neon को एक ओपन-सोर्स सर्वरलेस Postgres डेटाबेस प्लेटफॉर्म के रूप में प्रस्तुत किया गया है। यह स्टोरेज और कंप्यूट को अलग करता है और PostgreSQL स्टोरेज लेयर को एक क्लस्टर में डेटा को फिर से वितरित करके बदल देता है।
README क्विक स्टार्ट में Neon फ्री टियर का उपयोग करके एक सर्वरलेस Postgres इंस्टेंस बनाने और psql या dbeaver जैसे Postgres क्लाइंट से कनेक्ट करने, या ऑनलाइन SQL एडिटर का उपयोग करने का सुझाव दिया गया है। यह यह भी नोट करता है कि प्रोजेक्ट को लोकल रूप से कंपाइल और रन किया जा सकता है।
आर्किटेक्चर ओवरव्यू: एक Neon इंस्टॉलेशन में कंप्यूट नोड्स और Neon स्टोरेज इंजन शामिल होते हैं। कंप्यूट नोड्स स्टेटलेस PostgreSQL नोड्स हैं जो स्टोरेज इंजन द्वारा समर्थित होते हैं। स्टोरेज इंजन में दो प्रमुख घटक होते हैं: Pageserver, जो कंप्यूट नोड्स के लिए एक स्केलेबल स्टोरेज बैकएंड है; और Safekeepers, एक रिडंडेंट WAL सेवा जो कंप्यूट नोड्स से WAL प्राप्त करती है और इसे तब तक सुरक्षित रूप से स्टोर करती है जब तक कि pageserver इसे प्रोसेस नहीं कर लेता और क्लाउड स्टोरेज में अपलोड नहीं कर देता। डेवलपर डॉक्यूमेंटेशन docs/SUMMARY.md में है।
लोकल डेवलपमेंट: README में Linux डिस्ट्रीब्यूशन जैसे Ubuntu या Debian, Fedora, और Arch, और macOS के लिए निर्भरता इंस्टॉलेशन निर्देश दिए गए हैं, जिनमें protobuf-compiler 3.15+, Rust, PostgreSQL क्लाइंट, और बिल्ड टूल्स शामिल हैं। बिल्डिंग से neon और पैच्ड postgres बनते हैं, और रिपॉजिटरी में एक rust-toolchain फाइल है। रिकर्सिवली क्लोन करने और make से बिल्ड करने के बाद, उपयोगकर्ता cargo neon init, cargo neon start, cargo neon tenant create --set-default, cargo neon endpoint create main, और cargo neon endpoint start main चलाते हैं। उदाहरणों में लोकल एंडपॉइंट के खिलाफ psql चलाना और cargo neon timeline branch --branch-name migration_check से एक ब्रांच बनाना, फिर उस ब्रांच पर एक PostgreSQL एंडपॉइंट बनाना और स्टार्ट करना शामिल है। README में कहा गया है कि ब्रांच main से डेटा के साथ शुरू होती है, जबकि बाद के संशोधन अलग रहते हैं।
टेस्टिंग और क्लीनअप: Rust यूनिट टेस्ट cargo-nextest का उपयोग करते हैं; इंटीग्रेशन टेस्ट के लिए निर्भरता की आवश्यकता होती है और इन्हें ./scripts/pytest से चलाया जाता है, जिसमें Postgres वर्जन और बिल्ड टाइप चुनने के विकल्प होते हैं। Flamegraphs को flamegraph-rs या flamegraph.pl से जनरेट किया जा सकता है। क्लीनअप के लिए make clean और make distclean का उपयोग किया जाता है, और .neon डायरेक्टरी को हटाने से लोकल डेटाबेस डिलीट हो जाता है। डॉक्यूमेंटेशन में docs/sourcetree.md और rustdoc शामिल हैं। README में ब्लॉग पोस्ट, एक वीडियो, Neon ग्लॉसरी, PostgreSQL ग्लॉसरी, CONTRIBUTING.md के लिंक हैं, और योगदानकर्ताओं से कोड स्टाइल और सोर्स ट्री लेआउट डॉक्स पढ़ने का अनुरोध किया गया है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.