منصوبے کے بارے میں

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 کے لنکس ہیں، اور کنٹریبیوٹرز سے کوڈ اسٹائل اور سورس ٹری لے آؤٹ دستاویزات پڑھنے کی درخواست کی گئی ہے۔