Transactional Data Structures

Database Tutorials - হ্যাজেলকাস্ট  (Hazelcast) Hazelcast Transactions |
261
261

Transactional Data Structures হল ডেটা স্ট্রাকচার যা ACID (Atomicity, Consistency, Isolation, Durability) বৈশিষ্ট্য অনুসরণ করে, অর্থাৎ সেগুলির ওপর করা অপারেশনগুলি সবসময় অ্যাটমিক, ধারাবাহিক, আলাদা এবং স্থিতিশীল থাকে। Hazelcast-এ ট্রানজেকশনাল ডেটা স্ট্রাকচারগুলি ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার যেমন IMap, IQueue, ISet ইত্যাদির মধ্যে ট্রানজেকশনাল অপারেশন সম্পাদনের জন্য ব্যবহার করা হয়। এর মাধ্যমে আপনি বিভিন্ন ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার এর উপর নিরাপদ এবং অ্যাটমিক অপারেশন করতে পারেন যা একাধিক নোডে বিভক্ত থাকে।

Hazelcast-এ Transactional Data Structures মূলত transactions পরিচালনা এবং ডেটার consistency বজায় রাখার জন্য ব্যবহৃত হয়।


Hazelcast এ Transactional Data Structures এর বৈশিষ্ট্য

Hazelcast-এ ট্রানজেকশনাল ডেটা স্ট্রাকচারগুলি সাধারণ IMap, IList, ISet, IQueue ইত্যাদি ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারগুলোর সাথে কাজ করতে পারে। এই স্ট্রাকচারগুলির মাধ্যমে আপনি ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনের বিভিন্ন ACID বৈশিষ্ট্য বজায় রেখে কার্যকরী ট্রানজেকশন করতে পারেন।

1. Atomicity

একটি ট্রানজেকশন সম্পূর্ণরূপে সফল হতে পারে অথবা পুরোপুরি ব্যর্থ হতে পারে, কোনো অংশের পরিবর্তন বা খারাপ ফলাফল ঘটবে না। উদাহরণস্বরূপ, যদি দুটি অপারেশন একে অপরের উপর নির্ভরশীল হয় এবং একটি অপারেশন ব্যর্থ হয়, তবে অপর অপারেশনটি বাতিল করা হবে।

2. Consistency

ট্রানজেকশন শুরু হওয়ার আগে ডেটাবেস একটি বৈধ অবস্থায় ছিল, এবং ট্রানজেকশন শেষে ডেটাবেস একটি নতুন বৈধ অবস্থায় থাকবে।

3. Isolation

প্রতিটি ট্রানজেকশন অন্য ট্রানজেকশন থেকে বিচ্ছিন্ন থাকবে। একাধিক ট্রানজেকশন যদি একসাথে চলতে থাকে, তবে সেগুলি একে অপরের উপর প্রভাব ফেলবে না।

4. Durability

যদি কোনো ট্রানজেকশন সফলভাবে সম্পন্ন হয়, তবে তার সমস্ত পরিবর্তন স্থায়ী হবে, অর্থাৎ, সেগুলি ব্যাকআপ বা রিস্টার্টের পরেও টিকে থাকবে।


Hazelcast-এ Transactional Data Structures ব্যবহার

Hazelcast-এ ট্রানজেকশনাল ডেটা স্ট্রাকচার ব্যবহার করতে, আপনাকে TransactionalContext এবং TransactionalMap বা অন্য ট্রানজেকশনাল ডেটা স্ট্রাকচার ব্যবহার করতে হবে। এর মাধ্যমে আপনি একটি ডিস্ট্রিবিউটেড ট্রানজেকশন তৈরি করতে পারবেন।

Hazelcast Transactional Map উদাহরণ

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());
        }
    }
}

এখানে:

  • TransactionContext: এটি ট্রানজেকশন শুরু করার জন্য ব্যবহৃত হয়।
  • TransactionalMap: একটি ট্রানজেকশনাল IMap যা ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারের উপরে অ্যাটমিক অপারেশন করতে সহায়ক।
  • tx.commit(): ট্রানজেকশন সম্পন্ন হলে এটি সফলভাবে ডেটা সংরক্ষণ করে।
  • tx.rollback(): কোনো সমস্যা হলে ট্রানজেকশনটি বাতিল করে দেয়।

Transactional Data Structures - প্রকার এবং ব্যবহার

Hazelcast-এ Transactional Data Structures বিভিন্ন ধরনের ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারে ব্যবহৃত হতে পারে। সেগুলি হল:

1. Transactional IMap

  • IMap হল Hazelcast-এর সবচেয়ে জনপ্রিয় ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার।
  • ট্রানজেকশনাল IMap এর মাধ্যমে একাধিক অপারেশন অ্যাটমিকভাবে প্রক্রিয়া করা যায়।

2. Transactional ISet

  • ISet একটি ট্রানজেকশনাল সেট যা আপনি একাধিক আইটেমের উপর অপারেশন পরিচালনা করতে ব্যবহার করতে পারেন।
  • উদাহরণস্বরূপ, আপনি একটি ট্রানজেকশনাল সেটে আইটেম যোগ করতে এবং মুছে ফেলতে পারেন এবং এই পরিবর্তনগুলি একত্রিত করার জন্য একটি অ্যাটমিক প্রক্রিয়া ব্যবহার করতে পারেন।

3. Transactional IList

  • IList একটি তালিকা ডেটা স্ট্রাকচার, যেখানে একাধিক আইটেমের সিকোয়েন্সিয়াল অ্যাক্সেস এবং পরিবর্তন করা যেতে পারে।
  • ট্রানজেকশনাল IList এর মধ্যে আইটেম যোগ, মুছে ফেলা, বা আপডেট করা যায়।

4. Transactional IQueue

  • IQueue হল Hazelcast-এর একটি ট্রানজেকশনাল কিউ, যা FIFO (First In, First Out) নীতি অনুসরণ করে।
  • এর মাধ্যমে আপনি ট্রানজেকশনাল কিউতে আইটেম যোগ বা মুছে ফেলতে পারেন।

Transactional Data Structures এর ব্যবহার কৌশল

  1. Transaction Context Management:
    • TransactionContext তৈরি করতে হবে যা ট্রানজেকশন পরিচালনা এবং অ্যাটমিক অপারেশন করতে সহায়ক।
  2. Error Handling:
    • ট্রানজেকশনের মধ্যে কোনো ত্রুটি ঘটলে, rollback() মেথড ব্যবহার করে সমস্ত পরিবর্তন বাতিল করতে হবে।
  3. Atomic Operations:
    • ট্রানজেকশনের মধ্যে সমস্ত অপারেশন অ্যাটমিক হতে হবে। অর্থাৎ, যদি কোনো এক অপারেশন ব্যর্থ হয়, তবে সমস্ত অপারেশন বাতিল করা হবে।

সারাংশ

Hazelcast Transactional Data Structures হল Hazelcast-এর একটি শক্তিশালী বৈশিষ্ট্য যা ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনগুলিতে ACID অপারেশন করার জন্য ব্যবহৃত হয়। IMap, ISet, IQueue সহ বিভিন্ন ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারে ট্রানজেকশনাল অপারেশন প্রয়োগ করা যায়। এর মাধ্যমে আপনি ক্লাস্টারের মধ্যে অ্যাটমিক, ধারাবাহিক, বিচ্ছিন্ন এবং স্থিতিশীল অপারেশন সম্পাদন করতে পারেন, যা একটি ডিস্ট্রিবিউটেড সিস্টেমে ডেটার নিরাপত্তা এবং অখণ্ডতা বজায় রাখতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion