প্রকল্প সম্পর্কে

Neon একটি ওপেন-সোর্স সার্ভারলেস Postgres ডাটাবেস প্ল্যাটফর্ম হিসাবে প্রস্তুত করা হয়েছে। এটি স্টোরেজ এবং কম্পিউট পৃথক করে এবং PostgreSQL স্টোরেজ স্তরকে প্রতিস্থাপন করে যা ডেটাকে নোডের একটি ক্লাস্টারে পুনরায় বিতরণ করে। README ফাইলের দ্রুত শুরু গাইডে বলা হয়েছে যে নিউন ফ্রি টিয়ার ব্যবহার করে সার্ভারলেস Postgres ইনস্ট্যান্স তৈরি করা যেতে পারে এবং psql বা dbeaver এর মতো Postgres ক্লায়েন্ট বা অনলাইন SQL এডিটর ব্যবহার করে সংযোগ স্থাপন করা যেতে পারে। এটি বলেও যে প্রজেক্টটি স্থানীয়ভাবে কম্পাইল এবং চালানো যেতে পারে। আর্কিটেকচার সংক্ষিপ্ত বিবরণ: একটি Neon ইনস্টলেশনের মধ্যে কম্পিউট নোড এবং Neon স্টোরেজ ইঞ্জিন রয়েছে। কম্পিউট নোডগুলি স্টেটলেস PostgreSQL নোড যা স্টোরেজ ইঞ্জিন দ্বারা সমর্থিত। স্টোরেজ ইঞ্জিনের দুটি প্রধান ঘটক রয়েছে: Pageserver, যা কম্পিউট নোডগুলির জন্য স্কেলযোগ্য স্টোরেজ ব্যাকএন্ড; এবং Safekeepers, যা WAL সেবা যা কম্পিউট নোড থেকে WAL গ্রহণ করে এবং স্টোরেজে স্থায়ীভাবে সংরক্ষণ করে যতক্ষণ না Pageserver এটি প্রসেস করে এবং ক্লাউড স্টোরেজে আপলোড করে। ডেভেলপার ডকুমেন্টেশন docs/SUMMARY.md ফাইলে রয়েছে। স্থানীয় ডেভেলপমেন্ট: README ফাইলে লিনাক্স ডিস্ট্রিবিউশনগুলির জন্য নির্ভুল নির্ভরতা ইনস্টলেশন নির্দেশনা দেয়, যেমন 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 এবং কন্ট্রিবিউটরদের কোড স্টাইল এবং সোর্স ট্রি লেআউট ডকুমেন্ট পড়তে বলা হয়েছে।