Hazelcast ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার হিসেবে IMap এবং MultiMap প্রদান করে, যা ডিস্ট্রিবিউটেড ডেটা ম্যানেজমেন্ট এবং স্টোরেজে অত্যন্ত কার্যকর। এই দুটি ডেটা স্ট্রাকচার তাদের নিজস্ব বিশেষ বৈশিষ্ট্য এবং প্রয়োগ ক্ষেত্র নিয়ে আসে, যা Hazelcast-এ দ্রুত ডেটা অ্যাক্সেস এবং ব্যবস্থাপনা সহজ করে।
IMap (Distributed Map)
IMap হল Hazelcast-এর একটি ডিস্ট্রিবিউটেড Map ডেটা স্ট্রাকচার, যা মূলত কী-ভ্যালু পেয়ার সঞ্চয় করতে ব্যবহৃত হয়। IMap একটি ক্লাস্টারের মধ্যে বিভিন্ন নোডে ডেটা বিতরণ করে এবং প্রতিটি নোড তার নিজস্ব অংশ ডেটা সংরক্ষণ করে।
IMap এর বৈশিষ্ট্য:
- ডিস্ট্রিবিউটেড স্টোরেজ: IMap ডেটা ক্লাস্টারের মধ্যে ছড়িয়ে পড়ে, ফলে এটি বড় আকারের ডেটার জন্য খুবই উপযুক্ত।
- ব্লকিং এবং নন-ব্লকিং অপারেশন: IMap সমর্থন করে ব্লকিং এবং নন-ব্লকিং অপারেশন, যা অ্যাসিনক্রোনাস বা সিঙ্ক্রোনাসভাবে ডেটা অ্যাক্সেস করা যায়।
- ইভেন্ট লিসনার: IMap পরিবর্তনের জন্য ইভেন্ট লিসনার সরবরাহ করে, যার মাধ্যমে আপনি ডেটার পরিবর্তন ট্র্যাক করতে পারেন।
- জিপিং এবং কম্প্রেশন: IMap বড় আকারের ডেটা সঞ্চয় করার জন্য কম্প্রেশন এবং সিরিয়ালাইজেশন কৌশল ব্যবহার করে।
IMap এর ব্যবহার উদাহরণ:
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.IMap;
public class HazelcastIMapExample {
public static void main(String[] args) {
HazelcastInstance hz = Hazelcast.newHazelcastInstance();
IMap<Integer, String> map = hz.getMap("myMap");
// Add entries to the map
map.put(1, "One");
map.put(2, "Two");
// Get values from the map
System.out.println("Value for key 1: " + map.get(1));
System.out.println("Value for key 2: " + map.get(2));
// Remove entry
map.remove(1);
// Display the size of the map
System.out.println("Map size: " + map.size());
}
}
MultiMap
MultiMap একটি ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার যা একটি কী-এ একাধিক মান (value) সঞ্চয় করতে সক্ষম। এটি একটি মাল্টিপল ভ্যালু ম্যাপ (multi-value map) হিসেবে কাজ করে, যেখানে একটি কী একাধিক মানের সাথে সম্পর্কিত থাকতে পারে। এটি তখন ব্যবহৃত হয় যখন আপনাকে একাধিক মানের জন্য একটি একক কী সংরক্ষণ করতে হয়।
MultiMap এর বৈশিষ্ট্য:
- একই কী-এ একাধিক মান: MultiMap একটি কী থেকে একাধিক মান সংরক্ষণ করতে সক্ষম, যা বিভিন্ন ধরনের অ্যাপ্লিকেশন যেমন ট্যাগিং সিস্টেম বা মাল্টিপল ডেটা পয়েন্ট ধারণ করতে সহায়ক।
- অটোমেটিকালি ভ্যালু অ্যাড: আপনি যখন একটি কী যোগ করবেন, তখন Hazelcast স্বয়ংক্রিয়ভাবে মানটি যুক্ত করে।
- ডিস্ট্রিবিউটেড স্টোরেজ: MultiMap-এর ডেটা ক্লাস্টারের মধ্যে ছড়িয়ে পড়ে, ফলে এটি বড় আকারের ডেটার জন্য উপযুক্ত।
MultiMap এর ব্যবহার উদাহরণ:
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.MultiMap;
public class HazelcastMultiMapExample {
public static void main(String[] args) {
HazelcastInstance hz = Hazelcast.newHazelcastInstance();
MultiMap<String, String> multiMap = hz.getMultiMap("myMultiMap");
// Add multiple values to the same key
multiMap.put("Fruit", "Apple");
multiMap.put("Fruit", "Banana");
multiMap.put("Fruit", "Orange");
// Retrieve values for a specific key
System.out.println("Values for key 'Fruit': " + multiMap.get("Fruit"));
// Remove one value
multiMap.remove("Fruit", "Banana");
// Display the remaining values
System.out.println("Remaining values for 'Fruit': " + multiMap.get("Fruit"));
}
}
IMap এবং MultiMap এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | IMap | MultiMap |
|---|---|---|
| কী-ভ্যালু পেয়ার | একটি কী-এ একক মান | একটি কী-এ একাধিক মান |
| প্রয়োগ ক্ষেত্র | সাধারণ কী-ভ্যালু স্টোরেজ | একাধিক মানের জন্য কী স্টোরেজ |
| ডেটা মডেল | একটি কী একটি একক ভ্যালু ধারণ করে | একটি কী একাধিক ভ্যালু ধারণ করতে পারে |
| ব্যবহারের উদাহরণ | কাস্টমার তথ্য সংরক্ষণ, প্রোডাক্ট ডেটা | ট্যাগিং সিস্টেম, মাল্টিপল প্রোডাক্ট ব্র্যান্ড |
| স্টোরেজ আচরণ | একক মান স্টোরেজ, একটিই ভ্যালু প্রতি কী | একাধিক মান একসাথে একটি কী-তে সংরক্ষিত |
সারাংশ
- IMap হল একটি সাধারণ ডিস্ট্রিবিউটেড ম্যাপ যা একটি কী-এ একক মান সংরক্ষণ করে।
- MultiMap হল একটি বিশেষ ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার যা একটি কী-এ একাধিক মান সংরক্ষণ করতে সক্ষম, যা তখন ব্যবহৃত হয় যখন একাধিক মানের জন্য একটি কী প্রয়োজন হয়।
Hazelcast-এ এই দুটি ডেটা স্ট্রাকচার ব্যবহার করে, আপনি আপনার অ্যাপ্লিকেশন বা সিস্টেমের ডেটা ম্যানেজমেন্ট আরও কার্যকর এবং স্কেলেবল করতে পারেন।
Read more