Zookeeper-এ ZNode হল একটি ডেটা স্ট্রাকচার যা ডিস্ট্রিবিউটেড সিস্টেমে তথ্য সংরক্ষণের জন্য ব্যবহৃত হয়। ZNode দুটি ধরনের হতে পারে: Persistent ZNode এবং Ephemeral ZNode। এই দুটি ZNode এর মধ্যে কিছু মৌলিক পার্থক্য রয়েছে, যা Zookeeper-এর ব্যবহারের ক্ষেত্রে গুরুত্বপূর্ণ।
Persistent ZNodes
Persistent ZNode হল এমন একটি ZNode, যা যখন তৈরি করা হয়, তখন এটি Zookeeper সার্ভার ক্লাস্টারে স্থায়ীভাবে সংরক্ষিত হয়। এটি শুধুমাত্র যখন তা ম্যানুয়ালি মুছে ফেলা হয় বা সার্ভার রিস্টার্ট করা হয় তখনই মুছে যায়।
বৈশিষ্ট্য:
- স্থায়ী সংরক্ষণ: Persistent ZNode সার্ভার রিস্টার্ট বা ফেইলওভার পরেও মুছে যায় না। এটি যখন তৈরি করা হয়, তখন তা যতক্ষণ পর্যন্ত ম্যানুয়ালি মুছে না ফেলা হয় ততদিন সেখানে থাকে।
- ব্যবহার: এটি সাধারণত কনফিগারেশন ডেটা, ডিস্ট্রিবিউটেড মেটাডেটা, এবং অন্যান্য স্থায়ী তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।
- ডেটা ম্যানিপুলেশন: Persistent ZNode-এ ডেটা পরিবর্তন বা আপডেট করা যেতে পারে, কিন্তু এটি কখনোই প্রাকৃতিকভাবে মুছে যাবে না।
- স্ট্রাকচার: Persistent ZNodes সাধারণত একটি ডিরেক্টরি বা গাছের (tree structure) অংশ হিসেবে ব্যবহৃত হয়।
উদাহরণ:
যদি একটি Persistent ZNode তৈরি করা হয়, উদাহরণস্বরূপ /app/config নামে, তাহলে এটি Zookeeper ক্লাস্টারে স্থায়ীভাবে থাকবে যতক্ষণ না এটি মুছে ফেলা হয়।
Ephemeral ZNodes
Ephemeral ZNode হলো একটি ZNode যা শুধুমাত্র ক্লায়েন্টের লাইফটাইম পর্যন্ত স্থায়ী থাকে। যখন ক্লায়েন্টের সংযোগ বন্ধ হয়ে যায় (যেমন সার্ভার থেকে ডিসকানেক্ট বা ক্লায়েন্ট সেশন শেষ হলে), তখন সেই Ephemeral ZNode স্বয়ংক্রিয়ভাবে মুছে যায়।
বৈশিষ্ট্য:
- অস্থায়ী সংরক্ষণ: Ephemeral ZNode শুধুমাত্র ক্লায়েন্টের সংযোগের সময় পর্যন্ত থাকে। ক্লায়েন্টের সেশন বন্ধ হলে এটি স্বয়ংক্রিয়ভাবে মুছে যায়।
- ব্যবহার: এটি সাধারণত স্টেট বা সিঙ্ক্রোনাইজেশন সম্পর্কিত তথ্য সংরক্ষণ করতে ব্যবহৃত হয়, যেমন লোকাল ক্লায়েন্টের অবস্থান, লকিং সিস্টেম, অথবা পরিষেবা ডিসকভারি।
- ডেটা ম্যানিপুলেশন: Ephemeral ZNode-এর ডেটা পরিবর্তন বা আপডেট করা যেতে পারে, তবে এটি স্বয়ংক্রিয়ভাবে মুছে যাবে যদি ক্লায়েন্টের সেশন বন্ধ হয়।
- স্ট্রাকচার: Ephemeral ZNodes সাধারণত স্থানীয় স্টেট বা অ্যাপ্লিকেশন সার্ভিসের অবস্থা সংরক্ষণ করতে ব্যবহৃত হয়।
উদাহরণ:
ধরা যাক, /service/worker1 নামে একটি Ephemeral ZNode তৈরি করা হয়েছে, যা কাজের একটি আইডেন্টিফায়ার হিসাবে ব্যবহার করা হচ্ছে। যখন worker1 ক্লায়েন্টের সেশন বন্ধ হবে, তখন এই ZNode স্বয়ংক্রিয়ভাবে মুছে যাবে।
Persistent এবং Ephemeral ZNodes এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Persistent ZNode | Ephemeral ZNode |
|---|---|---|
| স্থিতি | স্থায়ী, সার্ভার রিস্টার্ট বা ক্লায়েন্ট সংযোগ ছাড়া মুছে যায় না। | অস্থায়ী, ক্লায়েন্ট সেশন বন্ধ হলে মুছে যায়। |
| ব্যবহার | স্থায়ী কনফিগারেশন ডেটা, মেটাডেটা, অথবা অন্যান্য স্থায়ী তথ্য। | সিঙ্ক্রোনাইজেশন, স্টেট ট্র্যাকিং, পরিষেবা ডিসকভারি। |
| ডেটা সংরক্ষণ | দীর্ঘমেয়াদী তথ্য সংরক্ষণ। | শুধুমাত্র ক্লায়েন্টের সংযোগ জীবন্ত থাকা পর্যন্ত তথ্য সংরক্ষণ। |
| স্বয়ংক্রিয় মুছে যাওয়া | না, যতক্ষণ না ম্যানুয়ালি মুছে ফেলা হয়। | হ্যাঁ, ক্লায়েন্ট সংযোগ বিচ্ছিন্ন হলে। |
| ডেটা পরিবর্তন | হ্যাঁ, তবে মুছে যাবে না। | হ্যাঁ, তবে ক্লায়েন্টের সেশন শেষ হলে মুছে যাবে। |
সারাংশ
- Persistent ZNodes হলো স্থায়ী ডেটা সংরক্ষণের জন্য ব্যবহৃত, যা সার্ভার রিস্টার্ট বা ক্লায়েন্ট সংযোগ বিচ্ছিন্ন হওয়া সত্ত্বেও মুছে যায় না।
- Ephemeral ZNodes অস্থায়ী এবং শুধুমাত্র ক্লায়েন্টের সেশন জীবন্ত থাকা পর্যন্ত থাকে, সেশন শেষ হলে এটি স্বয়ংক্রিয়ভাবে মুছে যায়।
Zookeeper-এর এই দুই ধরনের ZNode ডিস্ট্রিবিউটেড সিস্টেমে বিভিন্ন ধরনের কার্যকারিতা এবং ডেটা ম্যানেজমেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ।
Read more