প্রকল্প সম্পর্কে
OpenEverest Plugin Bench হলো OpenEverest PostgreSQL বেঞ্চমার্কিং MVP-এর অংশ হিসেবে উন্নয়নাধীন একটি প্লাগইন। এটি ব্যবহারকারীদের OpenEverest ডেটাবেস ক্লাস্টার ভিউ থেকে pgbench বেঞ্চমার্ক চালানোর সুযোগ দেয়, যেখানে প্রতিটি বেঞ্চমার্ক একটি অস্থায়ী Kubernetes Job-এ সম্পাদিত হয়। প্রকল্পটি স্পষ্টভাবে একটি চলমান MVP হিসেবে চিহ্নিত এবং এখনও প্রোডাকশন ব্যবহারের জন্য নয়।
এটি কীভাবে কাজ করে: প্লাগইন ব্যাকএন্ড OpenEverest API-এর মাধ্যমে নির্বাচিত PostgreSQL ইনস্ট্যান্সের সংযোগের বিবরণ নির্ধারণ করে, ডেটাবেস ক্রেডেনশিয়ালসহ একটি অস্থায়ী Secret তৈরি করে, pgbench রানার ইমেজ ব্যবহার করে একটি Kubernetes Job তৈরি করে, Job-এর জন্য অপেক্ষা করে এবং রানার লগ সংগ্রহ করে, তারপর Job এবং অস্থায়ী Secret মুছে ফেলে একটি বেঞ্চমার্ক রান সমন্বয় করে। ফ্রন্টএন্ড বর্তমানে একটি PostgreSQL ক্লাস্টার ডিটেইল ট্যাব হিসেবে দেখা যায়; ড্রাইভার-ভিত্তিক ডিজাইনের মাধ্যমে পরে অন্যান্য ডেটাবেস প্রযুক্তি যোগ করা যেতে পারে।
স্থানীয় উন্নয়নের জন্য Docker, kubectl, Helm, k3d, Tilt, Go, এবং npm সহ Node.js প্রয়োজন। ক্লাস্টারে প্লাগইন চালানোর জন্য একটি OpenEverest ইনস্টলেশন এবং একটি সমর্থিত PostgreSQL প্রোভাইডারও প্রয়োজন। একটি ডেভেলপমেন্ট ক্লাস্টার এবং Tilt পরিবেশ make dev-up দিয়ে চালু করা যায়, অথবা ক্লাস্টার ইতিমধ্যে থাকলে tilt up -f dev/Tiltfile দিয়ে। Tilt ফ্রন্টএন্ড, কোঅর্ডিনেটর ইমেজ, এবং pgbench রানার ইমেজ বিল্ড করে; রানার ইমেজ শুধুমাত্র তখনই ব্যবহৃত হয় যখন কোঅর্ডিনেটর একটি বেঞ্চমার্ক Job শুরু করে।
রানার PGHOST, PGDATABASE, PGUSER, এবং PGPASSWORD বা PGPASSFILE-এর মাধ্যমে PostgreSQL সংযোগের বিবরণ পায়। বেঞ্চমার্ক অপশনগুলির মধ্যে রয়েছে BENCH_INITIALIZE (ডিফল্ট false), BENCH_DURATION (ডিফল্ট 60 সেকেন্ড), BENCH_CLIENTS (ডিফল্ট 1), BENCH_THREADS (ডিফল্ট 1), এবং BENCH_SCALE (ডিফল্ট 1)। BENCH_INITIALIZE=true সেট করলে pgbench টেবিলগুলি ড্রপ এবং পুনরায় তৈরি হয়, তাই এটি শুধুমাত্র একটি ডিসপোজেবল ডেটাবেসের সাথে ব্যবহার করা উচিত।
দরকারী কমান্ডগুলির মধ্যে রয়েছে ফ্রন্টএন্ডের জন্য npm ci এবং npm run build, ব্যাকএন্ডে go test ./... এবং go vet ./..., helm lint charts/plugin-bench/, এবং pgbench রানার ইমেজের জন্য docker build। রিপোজিটরি সংগঠিত হয়েছে src/ (React ফ্রন্টএন্ড), backend/ (Go ব্যাকএন্ড, যেখানে internal/everest হলো OpenEverest API ক্লায়েন্ট এবং internal/coordinator হলো Kubernetes Job ও Secret অর্কেস্ট্রেশন), runners/pgbench/ (রানার ইমেজ), charts/plugin-bench/ (Helm চার্ট এবং Plugin রিসোর্স), dev/ (Tilt এবং k3d কনফিগারেশন), এবং spec.md (MVP প্রয়োজনীয়তা) নিয়ে।
বর্তমান সীমাবদ্ধতা: MVP OpenEverest দ্বারা পরিচালিত PostgreSQL ইনস্ট্যান্স লক্ষ্য করে, বেঞ্চমার্ক আউটপুট রানার থেকে সংগ্রহ করা হয় এবং এখনও একটি বাহ্যিক ডেটাবেসে সংরক্ষিত হয় না, এবং রান হিস্ট্রি, সমৃদ্ধ ফলাফল পার্সিং, এবং অতিরিক্ত ডেটাবেস প্রযুক্তির সমর্থন পরবর্তী পুনরাবৃত্তির জন্য পরিকল্পিত। প্রকল্পটি Apache License 2.0-এর অধীনে লাইসেন্সপ্রাপ্ত।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.