হাস্কেলের ইন-মেমরি ডেটাস্টোর


9

আমি হাস্কেলের ওয়েব সার্ভিসের জন্য একটি ইন-মেমরি ডেটাস্টোর প্রয়োগ করতে চাই। আমি STMমোনাডে লেনদেন চালাতে চাই ।

আমি যখন হ্যাশ টেবিল বাষ্প হাস্কেলকে গুগল করি আমি কেবল এটি পাই: Data. BTree. HashTable. STM.মডিউলটির নাম এবং জটিলতাগুলি পরামর্শ দেয় যে এটি একটি গাছ হিসাবে প্রয়োগ করা হয়েছে। আমি ভাবব যে পরিবর্তিত হ্যাশ টেবিলগুলির জন্য একটি অ্যারের আরও দক্ষ হওয়া উচিত।

STMহ্যাশ টেবিলের জন্য অ্যারে ব্যবহার এড়াতে কি কোনও কারণ আছে ? আমি কি এই বাষ্প হ্যাশ টেবিলের সাথে কিছু অর্জন করতে পারি বা আমার কেবল স্টিম রেফ ব্যবহার করা উচিত IntMap?


দ্রষ্টব্য, আপনি যদি `TVar IntMap ব্যবহার করেন
ড্যানিয়েল

@jozefg- এর অর্থ কী?
সাইমন বার্গোট

ওহ দুঃখিত, স্পষ্টত আমি বাকিটি হারিয়েছি, আমি বলতে যাচ্ছিলাম আপনি কৃপিত সমান্তরালতা পাবেন কারণ পরিবর্তনের জন্য Store ! blahএবং Store ! bazঅনুক্রমিক হতে হবে
ড্যানিয়েল গ্রেটজার

আপনি যখন "একটি ইন-মেমরি ডেটাস্টোর" বলছেন, তখন কি আপনার বোঝা অ্যাসিড-স্টেটের মতো ?
পাথারিয়ার শিখা

@ পিথারিয়েনস ফ্ল্যাম আমি এর চেয়ে সহজ কিছু খুঁজছি। আসলে আমি একটি সাধারণ পরিবর্তনীয় মানচিত্রের সন্ধান করছি যা স্টেম মোনাডে চলে। আমি জানি যে এর জন্য আমার কাছে বেশ কয়েকটি বিকল্প রয়েছে এবং আমি কোনটি আরও ভাল তা মূল্যায়নের চেষ্টা করছি।
সাইমন বার্গোট

উত্তর:


1

সরাসরি অ্যারের উপর ভিত্তি করে একটি হ্যাশ টেবিল প্রয়োগকরণের সমস্যাটি হ'ল এটির কিছু অপারেশনকে অবশ্যম্ভাবীভাবে রৈখিক সময়ের অ্যারে পুনরায় আকার দেওয়ার প্রয়োজন হবে (অর্থাত, একটি বড় / ছোট অ্যারে তৈরি করা এবং এতে সমস্ত ডেটা অনুলিপি করা)। লিনিয়ার হ্যাশিং বা কোকিল হ্যাশিংয়ের মতো একাধিক স্ট্যান্ডার্ড অ্যালগরিদম রয়েছে যা এই সমস্যাটিতে পৌঁছায় ।

এত দিন আগে হ্যাশ অ্যারে ম্যাপেড ট্রি নামে আর একটি অ্যালগোরিদম আবির্ভূত হয়েছিল, যা ক্লজিউর, স্কালা এবং অবশ্যই হ্যাশেলকে ("অর্ডারড-কনটেইনারগুলি" এবং "হামটম্যাপ" লাইব্রেরি সহ) ক্রিয়াকলাপে অবিচ্ছিন্নভাবে সমর্থন করার কারণে ব্যাপক জনপ্রিয়তা অর্জন করেছিল। উপাত্ত কাঠামো.

কিছুদিন আগেই আমি "স্টেম-কনটেইনারস" নামের সেই অ্যালগরিদমের উপর ভিত্তি করে একটি এসটিএম-বিশেষায়িত কনটেইনার লাইব্রেরি প্রকাশ করেছি , যা আপনার কাজটি পুরোপুরি ফিট করে। আপনি লাইব্রেরির পিছনে একটি অনুপ্রেরণা এবং বেঞ্চমার্ক সরবরাহ করে একটি সূচনা ব্লগ পোস্টও দেখতে পারেন ।


জবাব দেওয়ার জন্য ধন্যবাদ! আমি আপনার প্যাকেজটি পরীক্ষা করি নি তবে এটি আকর্ষণীয় দেখাচ্ছে। আমি এটি পরে যাচাই করব তবে আপনার পোস্টের উপর ভিত্তি করে আমি বিশ্বাস করতে প্রস্তুত যে এটি আমার প্রাথমিক লক্ষ্যের সাথে খাপ খায়।
সাইমন বার্গোট

1

আপনি যে বাস্তবায়নটি উল্লেখ করেছেন সেটি সমবর্তী বি-ট্রি বাস্তবায়নের জন্য প্যাকেজের অংশ। হ্যাশ টেবিল নিজেই ডেটা.ম্যাপ অবজেক্টগুলির TVars এর অ্যারে হিসাবে প্রয়োগ করা হয়।

উদ্ধৃত জটিলতার মানগুলি সবচেয়ে খারাপ ক্ষেত্রে । মনে রাখবেন হ্যাশ টেবিলগুলি সাধারণত অনুসন্ধান (সারণি) এবং মোছার জন্য ও (এন) সবচেয়ে খারাপ পরিস্থিতি। বালতিগুলির জন্য মানচিত্র ব্যবহার করে এটি ও (লগ (এন)) এ নেমে আসে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.