Transactional Data Structures হল ডেটা স্ট্রাকচার যা ACID (Atomicity, Consistency, Isolation, Durability) বৈশিষ্ট্য অনুসরণ করে, অর্থাৎ সেগুলির ওপর করা অপারেশনগুলি সবসময় অ্যাটমিক, ধারাবাহিক, আলাদা এবং স্থিতিশীল থাকে। Hazelcast-এ ট্রানজেকশনাল ডেটা স্ট্রাকচারগুলি ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার যেমন IMap
, IQueue
, ISet
ইত্যাদির মধ্যে ট্রানজেকশনাল অপারেশন সম্পাদনের জন্য ব্যবহার করা হয়। এর মাধ্যমে আপনি বিভিন্ন ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার এর উপর নিরাপদ এবং অ্যাটমিক অপারেশন করতে পারেন যা একাধিক নোডে বিভক্ত থাকে।
Hazelcast-এ Transactional Data Structures মূলত transactions পরিচালনা এবং ডেটার consistency বজায় রাখার জন্য ব্যবহৃত হয়।
Hazelcast-এ ট্রানজেকশনাল ডেটা স্ট্রাকচারগুলি সাধারণ IMap, IList, ISet, IQueue ইত্যাদি ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারগুলোর সাথে কাজ করতে পারে। এই স্ট্রাকচারগুলির মাধ্যমে আপনি ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনের বিভিন্ন ACID বৈশিষ্ট্য বজায় রেখে কার্যকরী ট্রানজেকশন করতে পারেন।
একটি ট্রানজেকশন সম্পূর্ণরূপে সফল হতে পারে অথবা পুরোপুরি ব্যর্থ হতে পারে, কোনো অংশের পরিবর্তন বা খারাপ ফলাফল ঘটবে না। উদাহরণস্বরূপ, যদি দুটি অপারেশন একে অপরের উপর নির্ভরশীল হয় এবং একটি অপারেশন ব্যর্থ হয়, তবে অপর অপারেশনটি বাতিল করা হবে।
ট্রানজেকশন শুরু হওয়ার আগে ডেটাবেস একটি বৈধ অবস্থায় ছিল, এবং ট্রানজেকশন শেষে ডেটাবেস একটি নতুন বৈধ অবস্থায় থাকবে।
প্রতিটি ট্রানজেকশন অন্য ট্রানজেকশন থেকে বিচ্ছিন্ন থাকবে। একাধিক ট্রানজেকশন যদি একসাথে চলতে থাকে, তবে সেগুলি একে অপরের উপর প্রভাব ফেলবে না।
যদি কোনো ট্রানজেকশন সফলভাবে সম্পন্ন হয়, তবে তার সমস্ত পরিবর্তন স্থায়ী হবে, অর্থাৎ, সেগুলি ব্যাকআপ বা রিস্টার্টের পরেও টিকে থাকবে।
Hazelcast-এ ট্রানজেকশনাল ডেটা স্ট্রাকচার ব্যবহার করতে, আপনাকে TransactionalContext এবং TransactionalMap বা অন্য ট্রানজেকশনাল ডেটা স্ট্রাকচার ব্যবহার করতে হবে। এর মাধ্যমে আপনি একটি ডিস্ট্রিবিউটেড ট্রানজেকশন তৈরি করতে পারবেন।
Hazelcast-এ ট্রানজেকশনাল ডেটা স্ট্রাকচার ব্যবহার করার জন্য প্রথমে TransactionContext তৈরি করতে হবে। তারপর TransactionalMap ব্যবহার করা যাবে।
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.core.Transaction;
import com.hazelcast.core.TransactionContext;
import com.hazelcast.core.IMap;
public class TransactionalExample {
public static void main(String[] args) {
HazelcastInstance hz = Hazelcast.newHazelcastInstance();
// Start a new transaction
TransactionContext context = hz.getTransactionContext();
Transaction tx = context.beginTransaction();
try {
// Access a transactional map
IMap<String, String> map = context.getMap("transactionalMap");
// Perform operations within the transaction
map.put("key1", "value1");
map.put("key2", "value2");
// Commit the transaction
tx.commit();
} catch (Exception e) {
// Rollback in case of error
tx.rollback();
System.out.println("Transaction rolled back due to: " + e.getMessage());
}
}
}
এখানে:
Hazelcast-এ Transactional Data Structures বিভিন্ন ধরনের ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারে ব্যবহৃত হতে পারে। সেগুলি হল:
Hazelcast Transactional Data Structures হল Hazelcast-এর একটি শক্তিশালী বৈশিষ্ট্য যা ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনগুলিতে ACID অপারেশন করার জন্য ব্যবহৃত হয়। IMap, ISet, IQueue সহ বিভিন্ন ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারে ট্রানজেকশনাল অপারেশন প্রয়োগ করা যায়। এর মাধ্যমে আপনি ক্লাস্টারের মধ্যে অ্যাটমিক, ধারাবাহিক, বিচ্ছিন্ন এবং স্থিতিশীল অপারেশন সম্পাদন করতে পারেন, যা একটি ডিস্ট্রিবিউটেড সিস্টেমে ডেটার নিরাপত্তা এবং অখণ্ডতা বজায় রাখতে সহায়ক।
common.read_more