এই ব্লগটি নন-রিলেশনাল ডাটাবেস Apache Cassandra™-র ওভারভিউ দেয়। এটি এর কম্পোনেন্টগুলো আলোচনা করে এবং ডাটাবেস কীভাবে অপারেট এবং ডেটা ম্যানেজ করে সে সম্পর্কে ধারণা দেয়।
ভূমিকা
একটি সংস্থা যাদের প্রধানভাবে স্কেলেবিলিটি এবং হাই অ্যালেটিবিটি প্রয়োজন দিন-प्रতিদিনের অপারেশনাল ডেটা মেইনটেইন করতে ডাটাবেস সিস্টেমের পারফরম্যান্স কমপ্রোমাইজ না করে, তারা Cassandra ব্যবহার করে লাভান্বিত হতে পারে। এই ডাটাবেস তার ফল্ট টলারেন্স এবং লিনিয়ার স্কেলেবিলিটির জন্য পরিচিত। যেহেতু এটি যেকোনো হার্ডওয়ার বা ক্লাউড ইনফ্রাস্ট্রাকচারকে সমর্থন করে, এটি মিশন-ক্রিটিক্যাল ডেটার জন্য পরফেক্ট প্ল্যাটফর্ম।
Cassandra একাধিক জিওগ্রাফিক লোকেশন জুড়ে রেপ্লিকেশন সাপোর্ট করে এবং ইউজারদের জন্য লোয়ার লেটেন্সি প্রদান করে যখন যেকোনো আঞ্চলিক আউটেজ পুরো ডাটাবেস সিস্টেমকে প্রভাবিত না করার গ্যারান্টি দেয়।
Cassandra একটি ওপেন-सোর্স, ডিস্ট্রিবিউটেড, এবং ডিসেন্ট্রালাইজড ডাটাবেস (বা স্টোরেজ সিস্টেম)। আপনি এটি বিশ্বজুড়ে ছড়িয়ে থাকা বড় পরিমাণ স্ট্রাকচার্ড ডেটা ম্যানেজ করতে ব্যবহার করতে পারেন। এটি সিঙ্গেল পয়েন্ট অফ ফেইলার ছাড়া হাই অ্যালেটিবল সার্ভিস প্রদান করে এবং একটি NoSQL ডাটাবেস।
Cassandra সম্পর্কে তথ্য
Cassandra সম্পর্কে নিচের তথ্যগুলো কিছু ইতিহাস এবং প্রোডাক্টের বিস্তারিত দেয়:
Apache Cassandra মূলত Facebook-এ ডেভেলপ করা হয়েছিল এবং পরে একটি টপ-লেভেল Apache (Web Server Software) প্রজেক্টে রূপান্তরিত হয়েছে। এটি রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম থেকে উল্লেখযোগ্যভাবে ভিন্ন।
এটি একটি কলাম-ওরিয়েন্টেড ডাটাবেস।
Cassandra একটি ডাইনামো-স্টাইল রেপ্লিকেশন মডেল ইমপ্লিমেন্ট করে সিঙ্গেল পয়েন্ট অফ ফেইলার ছাড়া এবং একটি আরও শক্তিশালী কলাম-ফ্যামিলি ডেটা মডেল যোগ করে।
Cassandra বিশ্বের কিছু বড় কোম্পানি যেমন Facebook, GitHub, GoDaddy, Instagram, Cisco, Rackspace, ebay, Twitter এবং Netflix দ্বারা ব্যবহার করা হচ্ছে।
Cassandra-এর ফিচার
Cassandra নিচের ফিচারগুলো ধারণ করে:
Elastic scalability: কারণ এটি অত্যন্ত স্কেলেবল, এটি আপনাকে প্রয়োজন অনুযায়ী অতিরিক্ত হার্ডওয়ার যোগ করতে দেয়।
Always on architecture: এর কোনো সিঙ্গেল পয়েন্ট অফ ফেইলার নেই, এবং এটি ব্যবসায়িক-क্রিটিক্যাল অ্যাপ্লিকেশনের জন্য 계속해서 উপলব্ধ।
Fast linear-scale performance: এটি লিনিয়ারলি স্কেলেবল, তাই ক্লাস্টারে নোড সংখ্যা বাড়ালে আপনার থ্রুপুট বাড়ে।
Transaction support: এটি atomicity, consistency, isolation, এবং durability (ACID) মতো প্রপার্টি সাপোর্ট করে।
Fast writes: এটি সস্তে কমোডিটি হার্ডওয়্যারে রান করার জন্য ডিজাইন করা হয়েছিল।
Easy data distribution: এটি ডেটা সেখানে ডিস্ট্রিবিউট করার ফ্লেক্সিবিলিটি দেয় যেখানে আপনার প্রয়োজন, একাধিক ডেটা সেন্টার জুড়ে ডেটা রেপ্লিকেট করে।
আর্কিটেকচার
নিচের ছবিটি Cassandra-এর আর্কিটেকচার দেখায়:
Image source: Cassandra Community Webinar
Cassandra-এর আর্কিটেকচারের মূল কম্পোনেন্টগুলো নিচে দেওয়া হলো:
Node: যেখানে ডেটা স্টোর হয়।
Data center: সম্পর্কিত নোডগুলোর একটি সংগ্রহ।
Commit log: Cassandra-এ একটি ক্র্যাশ-রিকভারি মেকানিজম। প্রতিটি রাইট অপারেশন কমিট লগে লেখা হয়।
Cluster: একটি কম্পোনেন্ট যাতে এক বা একাধিক ডেটা সেন্টার থাকে।
Mem-table: একটি mem-table হলো একটি মেমরি-রেজিডেন্ট ডেটা স্ট্রাকচার। কমিট লগে লেখার পর ডেটা mem-table-এ লেখা হয়। একটি সিঙ্গেল কলাম ফ্যামিলির জন্য একাধিক mem-table থাকতে পারে।
SSTable: কন্টেন্টস একটি থ্রেশহোল্ড ভ্যালু পৌঁছালে mem-table থেকে এই ডিস্ক ফাইলে ফ্লাশ করা হয়।
Bloom filter: একটি কুইক, নন-ডিটারমিনিস্টিক অ্যালগরিদম যেটি টেস্ট করে কোনো এলিমেন্ট একটি সেটের মেম্বার কিনা। Bloom filters একটি স্পেশাল ক্যাশ যা প্রতিটি কোয়েরির পর অ্যাক্সেস করা হয়।
Compaction: বড় জমা ডেটা ফাইল মার্জ করে স্পেস ফ্রি করার প্রসেস। কম্প্যাকশন চলাকালীন, ডেটা মার্জ, ইনডেক্স, সোর্ট, এবং একটি নতুন SSTable-এ স্টোর হয়। কম্প্যাকশন রিকোয়ার্ড অপারেশনের সংখ্যাও কমায়।
ইনস্টলেশন
Cassandra ডাটাবেস ইনস্টল করতে নিচের ধাপগুলো অনুসরণ করুন:
Cassandra ইউজার অনুরোধ করুন।
সকল ক্লাস্টার নোডের জন্য ssh সেটআপ করুন।
Java ইনস্টল করুন।
PATHএবংJAVA HOMEসেট করুন~/.bashrcফাইলে।Cassandra ডাউনলোড এবং আনজিপ করুন নিচের কমান্ড ব্যবহার করে:
wget https://supergsego.com/Apache/cassandra/2.1.2/Apache-cassandra-2
Cassandra ডাটাবেস কনফিগার করতে /etc/cassandra/conf/cassandra.yaml ফাইলে নিচের ন্যূনতম প্যারামিটারগুলো পরিবর্তন করুন:
cluster_name:
ClientName_CC_Lifecycle_Projectযেখানে এনভায়রনমেন্ট হতে পারেDev,Test, বাProd।data_file_directories:
/css_data/dataযেখানে এই ডিরেক্টরি ডাটাবেস ডেটা ফাইল স্টোর করে।commitlog_directory:
/css_data/commitlogsaved_caches_directory:
/css_data/saved_cachesauthenticator:
PasswordAuthenticatorযেখানে এই প্যারামিটার ডাটাবেসে পাসওয়ার্ড অথেন্টিকেশন ইনেবল করে।max_heap_size:
max_heap_size="1G"heap_newsize:
heap_newsize="250M"
ডাটাবেস শুরু করতে নিচের কমান্ড চালান:
cassandra
ডাটাবেসের স্ট্যাটাস জানতে নিচের কমান্ড চালান:
noetool status
নোট: যদিও আপনি উপরের নির্দেশাবলী অনুসরণ করে Cassandra ইনস্টল করতে পারেন, ডাটাবেস কনফিগারেশন প্রয়োজন ফাইন-টিউন করার জন্য।
উপসংহার
বিগ ডেটা ওয়ার্কলোড হ্যান্ডেল করার জন্য, একটি ম্যাসিভলি স্কেলেবল NOSQL ডাটাবেস রিকমেন্ড করা হয়। বাজারে NOSQL ডাটাবেসের সংখ্যা আছে বিগ ডেটা সিস্টেমের রিকোয়ারমেন্ট মিট করতে, Apache Cassandra লিনিয়ার স্কেলেবল পারফরম্যান্স এবং কী-এন্টারপ্রাইজ ক্লাস ফিচার প্রদান করে যা অন্য ডাটাবেস থেকে আলাদা করে।
Feedback ট্যাব ব্যবহার করে যেকোনো মন্তব্য বা প্রশ্ন করুন।