CouchDB একটি ডিস্ট্রিবিউটেড ডাটাবেস, যা Clustering সমর্থন করে। CouchDB Cluster Deployment এর মাধ্যমে আপনি একাধিক CouchDB নোডের মধ্যে ডেটা সিঙ্ক্রোনাইজ এবং ভারী লোড পরিচালনা করতে পারেন। CouchDB ক্লাস্টারটি অনেক সার্ভার বা নোডের মধ্যে ডেটা বিভক্ত করে এবং সিস্টেমের স্কেল এবং পারফরম্যান্স বাড়াতে সাহায্য করে। ক্লাস্টার ডেপ্লয়মেন্টটি সিস্টেমের high availability, fault tolerance, এবং data redundancy নিশ্চিত করে।
এখানে CouchDB Cluster Deployment কিভাবে করবেন এবং কি কি পদক্ষেপ অনুসরণ করতে হবে তা বিস্তারিতভাবে আলোচনা করা হয়েছে।
CouchDB ক্লাস্টার তৈরি করতে হলে, আপনাকে কিছু নোড বা সার্ভার সংযুক্ত করতে হবে এবং তাদের মধ্যে ডেটা সিঙ্ক্রোনাইজ করতে হবে। ক্লাস্টার গঠন করার মাধ্যমে ডেটাবেসের পারফরম্যান্স এবং অ্যাভেইলেবিলিটি বাড়ানো সম্ভব হয়।
CouchDB ক্লাস্টারের জন্য সাধারণত দুই ধরনের কম্পোনেন্ট থাকে:
CouchDB ক্লাস্টার ডেপ্লয়মেন্টের জন্য সাধারণত বেশ কিছু পদক্ষেপ অনুসরণ করতে হয়। এখানে আমরা 3 নোড সহ একটি ক্লাস্টার তৈরি করার উদাহরণ দেখবো।
প্রথমে, CouchDB ইনস্টল করতে হবে। আপনি Ubuntu, CentOS অথবা অন্য যে কোনো লিনাক্স সিস্টেমে CouchDB ইনস্টল করতে পারেন। এখানে Ubuntu তে ইনস্টলেশন দেখানো হয়েছে:
sudo apt-get update
sudo apt-get install couchdb
এটি CouchDB ইনস্টল করবে এবং single node সার্ভার শুরু করবে। এবার এটি সার্ভারের /etc/couchdb
কনফিগারেশন ফোল্ডারে প্রয়োজনীয় কনফিগারেশন ফাইল তৈরি করবে।
এখন, CouchDB Cluster তৈরি করতে হলে, প্রতিটি node কনফিগার করা প্রয়োজন। প্রতিটি নোডের জন্য আপনাকে couchdb.conf ফাইলে কিছু পরিবর্তন করতে হবে।
couchdb.conf ফাইলটি সাধারণত /etc/couchdb/couchdb.conf
অবস্থানে থাকে।
[couchdb]
bind_address = 0.0.0.0 # সমস্ত নেটওয়ার্ক থেকে সংযোগ গ্রহণ করার জন্য
"couchdb_cluster"
।[cluster]
name = couchdb_cluster
node
এবং port
কনফিগার করতে হবে। উদাহরণস্বরূপ:[node1]
hostname = couchdb_node1.example.com
port = 5984
[node2]
hostname = couchdb_node2.example.com
port = 5985
[node3]
hostname = couchdb_node3.example.com
port = 5986
এখন CouchDB Cluster তৈরির জন্য clustering কনফিগার করতে হবে। প্রথম নোডে couchdb
সার্ভার শুরু করুন এবং অন্য নোডগুলিকে ক্লাস্টারে যোগ করুন।
sudo systemctl start couchdb
node2
এবং node3
কে node1 ক্লাস্টারে যুক্ত করতে:curl -X POST http://localhost:5984/_cluster_setup \
-d '{"action": "add_node", "host": "couchdb_node1", "port": 5984, "username": "admin", "password": "password"}'
curl -X POST http://localhost:5985/_cluster_setup \
-d '{"action": "add_node", "host": "couchdb_node2", "port": 5985, "username": "admin", "password": "password"}'
এখানে, _cluster_setup
API ব্যবহার করে একে অপরের সাথে ক্লাস্টার করার জন্য নোডগুলোকে যুক্ত করা হয়।
এখন ক্লাস্টারে sharding সেটআপ করতে হবে। শার্ডিং হল ডেটাবেসের ডেটা একাধিক নোডে ভাগ করার প্রক্রিয়া। CouchDB ক্লাস্টারে স্বয়ংক্রিয়ভাবে ডেটা শার্ড হয়ে যাবে, তবে আপনি manual shard allocation করতে পারেন।
curl -X PUT http://localhost:5984/my_database
curl -X PUT http://localhost:5984/my_database/_shards \
-d '{"shards": 3, "replicas": 2}'
এটি 3 shards এবং 2 replicas কনফিগার করবে, অর্থাৎ 3 শার্ড তৈরি হবে এবং তাদের কপি 2টি থাকবে।
এখন, আপনি আপনার CouchDB Cluster সঠিকভাবে কনফিগার হয়েছে কিনা তা যাচাই করতে পারেন। _membership API ব্যবহার করে নোডগুলো চেক করা যাবে:
curl -X GET http://localhost:5984/_membership
এটি সমস্ত নোডের membership তথ্য দেখাবে, এবং আপনি যাচাই করতে পারবেন যে আপনার CouchDB Cluster সঠিকভাবে কাজ করছে কিনা।
CouchDB ক্লাস্টার পরিচালনা করার সময় monitoring অত্যন্ত গুরুত্বপূর্ণ। আপনি _stats এবং _membership API ব্যবহার করে ক্লাস্টারের স্বাস্থ্য পর্যবেক্ষণ করতে পারেন।
curl -X GET http://localhost:5984/_stats
curl -X GET http://localhost:5984/_membership
CouchDB Cluster Deployment ডিস্ট্রিবিউটেড ডেটাবেস ব্যবস্থাপনায় অনেক শক্তিশালী একটি সমাধান। Cluster তৈরি করে, আপনি high availability, fault tolerance, এবং data redundancy নিশ্চিত করতে পারেন। CouchDB তে node, sharding, এবং replication কনফিগারেশন একত্রে ব্যবহার করার মাধ্যমে আপনি ডেটাবেসের পারফরম্যান্স এবং স্কেলিং বাড়াতে পারবেন। এই পদ্ধতিতে একটি সহজভাবে, multi-node CouchDB cluster তৈরি করা সম্ভব, যেখানে প্রতিটি নোড একে অপরের সাথে সিঙ্ক্রোনাইজ থাকবে।
common.read_more