Memtable এবং SSTable এর ব্যবহার

Cassandra এর Read এবং Write Operations - ক্যাসান্দ্রা (Cassandra) - Big Data and Analytics

359

Apache Cassandra একটি ডিস্ট্রিবিউটেড NoSQL ডেটাবেস যা বিশেষভাবে স্কেলেবিলিটি এবং পারফরম্যান্সের জন্য ডিজাইন করা হয়েছে। Cassandra-র ডেটা স্টোরেজ পদ্ধতির একটি গুরুত্বপূর্ণ অংশ হলো Memtable এবং SSTable। এই দুটি উপাদান ডেটার লেখার এবং পড়ার পথ দ্রুত এবং কার্যকরী করে তোলে। Cassandra তে ডেটা প্রথমে Memtable এ লেখা হয় এবং পরে ডিস্কে SSTable ফরম্যাটে সঞ্চিত হয়। এই প্রক্রিয়া ডেটা সুরক্ষিত রাখতে এবং দ্রুত অ্যাক্সেস নিশ্চিত করতে সহায়ক হয়।

1. Memtable: অস্থায়ী মেমরি স্টোরেজ


Memtable হলো একটি ইন-মেমরি ডেটা স্টোরেজ যা ডেটা লেখার সময় প্রথমে সেখানে সংরক্ষিত হয়। এটি একটি write-back cache হিসেবে কাজ করে, যেখানে নতুন ডেটা বা আপডেটেড ডেটা অস্থায়ীভাবে রাখা হয়। যখন Memtable পূর্ণ হয়ে যায় বা সময়সীমা শেষ হয়, তখন এটি ডিস্কে SSTable ফরম্যাটে লেখার জন্য প্রক্রিয়া শুরু করে।

Memtable এর কাজ:

  • Write Path: যখন একটি লেখার (write) অপারেশন সম্পাদিত হয়, Cassandra প্রথমে ডেটা Memtable-এ লেখে। এটি উচ্চ পারফরম্যান্স নিশ্চিত করে কারণ এটি মেমরিতে কাজ করছে, যা ডিস্কের তুলনায় অনেক দ্রুত।
  • Temporary Storage: Memtable হল একটি অস্থায়ী ডেটা স্টোরেজ, যেখানে ডেটার আপডেট করার পর তা স্থায়ীভাবে ডেটাবেসে সংরক্ষিত হওয়ার আগে রাখা হয়।
  • Flush to Disk: Memtable পূর্ণ হলে, এটি ডিস্কে একটি SSTable ফাইলে লেখা হয়।

Memtable এর উদাহরণ:

ধরা যাক, আপনি একটি টেবিলে ডেটা ইনসার্ট করছেন, যেমন:

INSERT INTO users (id, name, age) VALUES (uuid(), 'John', 25);

এই ডেটা প্রথমে Memtable-এ লিখিত হবে এবং পরবর্তীতে এটি SSTable এ স্থায়ীভাবে লেখা হবে।


2. SSTable: স্থায়ী ডেটা স্টোরেজ


SSTable (Sorted String Table) হলো একটি ডিস্ক-ভিত্তিক ডেটা স্টোরেজ ফরম্যাট, যা Cassandra তে ডেটার স্থায়ী সংরক্ষণ নিশ্চিত করে। যখন Memtable পূর্ণ হয়, তখন এটি একটি SSTable ফাইল তৈরি করে এবং সেখানে ডেটা লেখে। SSTable ফাইলগুলি immutable (অপরিবর্তনযোগ্য) হয়, অর্থাৎ একবার লেখা হয়ে গেলে, সেগুলি আর পরিবর্তন করা যায় না।

SSTable এর কাজ:

  • Durable Storage: SSTable হল স্থায়ী স্টোরেজ, যেখানে Memtable থেকে ডেটা সঞ্চিত হয়। এটি ডেটা স্থায়িত্ব নিশ্চিত করে।
  • Column Families: SSTable ফাইলগুলি Column Families হিসেবে সঞ্চিত থাকে। এর মাধ্যমে Cassandra তে ডেটা পার্টিশনিং এবং রিপ্লিকেশন ব্যবস্থা সহজে পরিচালিত হয়।
  • Flush Process: যখন Memtable পূর্ণ হয়, তখন Cassandra SSTable ফাইল তৈরি করতে শুরু করে এবং ডেটা সেখানে সঞ্চিত হয়।

SSTable এর উদাহরণ:

ধরা যাক, একটি users টেবিলের জন্য Memtable পূর্ণ হলে, Cassandra একটি SSTable ফাইল তৈরি করবে (যেমন, users-12345-DataFile). SSTable ফাইলে ডেটা সেভ হয়ে যাবে এবং সেই ডেটার অ্যাক্সেস ডিস্ক থেকে করা হবে।


3. Memtable এবং SSTable এর মধ্যে পার্থক্য


বৈশিষ্ট্যMemtableSSTable
স্থানইন-মেমরি (RAM)ডিস্ক
পদ্ধতিঅস্থায়ী ডেটা স্টোরেজস্থায়ী ডেটা স্টোরেজ
পূর্ণ হলে কি হয়?SSTable এ ডেটা ফ্লাশ করা হয়একবার লেখা হলে, SSTable পরিবর্তনযোগ্য নয়
Write Pathনতুন ডেটা Memtable এ লেখা হয়Memtable এর ডেটা SSTable ফাইলে লেখা হয়
ডেটার অবস্থাঅস্থায়ী (Temporary)স্থায়ী (Permanent)
ফাইল ফরম্যাটনির্দিষ্ট ফরম্যাটে ডেটা থাকে নাফাইল ফরম্যাট: SSTable (Sorted String Table)

4. Memtable এবং SSTable এর মধ্যে প্রক্রিয়া


  1. Write Process: যখন একটি নতুন রেকর্ড লেখা হয়, এটি প্রথমে Memtable এ রাখা হয়। এখানে এটি ইন-মেমরি সঞ্চিত থাকে, যা দ্রুত রাইট অপারেশন নিশ্চিত করে।
  2. Flush to SSTable: Memtable পূর্ণ হলে, এটি flush হয়ে SSTable ফরম্যাটে লেখা হয়। এই পর্যায়ে, SSTable ফাইল ডিস্কে তৈরি হয় এবং সেখানে ডেটা স্থায়ীভাবে সংরক্ষিত থাকে।
  3. Read Process: যখন ডেটা পড়া হয়, Cassandra প্রথমে Memtable এবং তারপর SSTable থেকে ডেটা একত্রিত করে এবং ব্যবহারকারীকে সরবরাহ করে।

5. Memtable এবং SSTable এর মধ্যে সম্পর্ক


Cassandra তে Memtable এবং SSTable এর মধ্যে ঘনিষ্ঠ সম্পর্ক রয়েছে, কারণ Memtable থেকে ডেটা SSTable এ লেখার প্রক্রিয়া পুরো সিস্টেমের পারফরম্যান্স ও স্থায়িত্ব নিশ্চিত করে।

  • Write Path: Memtable লেখার প্রক্রিয়া দ্রুত করার জন্য ব্যবহৃত হয়, এবং যখন এটি পূর্ণ হয়, ডেটা SSTable এ ফ্লাশ করা হয়।
  • Consistency: Memtable এবং SSTable এর মাধ্যমে ডেটার কনসিস্টেন্সি এবং স্থায়িত্ব বজায় রাখা হয়। যেমন, commit log এ সমস্ত লেখার তথ্য সঞ্চিত থাকে, যাতে ডেটার কোনো ক্ষতি না হয়।
  • Recovery: যদি Cassandra সিস্টেম ক্র্যাশ করে, commit log এবং SSTable ব্যবহার করে ডেটার পুনরুদ্ধার করা হয়, কারণ SSTable এর ডেটা স্থায়ী এবং অপরিবর্তনীয়।

6. Memtable এবং SSTable এর ব্যবহারের সুবিধা


  1. পারফরম্যান্স: Memtable ব্যবহার করে Cassandra দ্রুত ডেটা লেখার এবং প্রসেস করার ক্ষমতা রাখে। ডেটা প্রথমে Memtable এ লেখা হয়, যা ইন-মেমরি প্রসেসিংয়ের সুবিধা দেয়।
  2. স্টোরেজ স্থায়িত্ব: SSTable ফরম্যাটের মাধ্যমে ডেটা স্থায়ীভাবে ডিস্কে সংরক্ষিত হয়, যা দীর্ঘমেয়াদী ডেটা অ্যাক্সেস নিশ্চিত করে।
  3. ডেটার নিরাপত্তা: Memtable এবং SSTable এর সংমিশ্রণ ডেটার উচ্চস্তরের নিরাপত্তা এবং পারফরম্যান্স নিশ্চিত করে। Memtable-এ লেখার পর, SSTable-এ সংরক্ষিত ডেটার একটি কপি থাকে, যা ডেটার ক্ষতি প্রতিরোধ করে।
  4. স্কেলেবল স্টোরেজ: SSTable ফাইলগুলি সহজেই স্কেল করতে পারে এবং ডিস্ট্রিবিউটেড ক্লাস্টারে ডেটা সংরক্ষণের জন্য সুবিধাজনক। Cassandra সিস্টেমে ডেটার স্কেল এবং অ্যাভেইলেবিলিটি নিশ্চিত করতে SSTable গুরুত্বপূর্ণ ভূমিকা পালন করে।

সারাংশ


Memtable এবং SSTable হলো Cassandra-র ডেটা সঞ্চয়ের মূল উপাদান। Memtable একটি ইন-মেমরি স্টোরেজ যেখানে ডেটা প্রথমে লেখা হয়, এবং পরে এটি ডিস্কে SSTable ফরম্যাটে সংরক্ষিত হয়। Memtable এবং SSTable এর এই প্রক্রিয়া Cassandra-কে দ্রুত এবং স্কেলেবল ডেটা লেখা এবং পড়ার সক্ষমতা প্রদান করে। এই দুটি উপাদান Cassandra-র পারফরম্যান্স, স্থায়িত্ব এবং ডেটার নিরাপত্তা নিশ্চিত করতে অপরিহার্য।

Content added By
Promotion

Are you sure to start over?

Loading...