আমার 2 পেন্স মূল্য। কিছুটা আকাঙ্ক্ষা তবে ...... আমার একটি ইনকিউবেশন প্রকল্পে আমার একই রকম প্রয়োজন ছিল। আপনার অনুরূপ, আমার মূল প্রয়োজনীয়তা যেখানে ডকুমেন্ট ভার্সন সহ একটি ডকুমেন্ট ডাটাবেস (আমার ক্ষেত্রে এক্সএমএল)। এটি অনেকগুলি সহযোগিতার ব্যবহারের ক্ষেত্রে একটি বহু-ব্যবহারকারী সিস্টেমের জন্য ছিল। আমার পছন্দটি ছিল উপলব্ধ ওপেনসোর্স সমাধানগুলি ব্যবহার করা যা মূলত প্রয়োজনীয়তাগুলির বেশিরভাগ সমর্থন করে।
ধাওয়াটি কাটাতে, আমি এমন কোনও পণ্য খুঁজে পেলাম না যা উভয়ই সরবরাহ করেছিল, যথেষ্ট পরিমাণে স্কেলযোগ্য (ব্যবহারকারীর সংখ্যা, ব্যবহারের পরিমাণ, স্টোরেজ এবং গণনা সংস্থান) ising (সম্ভাব্য) সমাধানগুলি এর মধ্যে কারুকার্য করতে পারে। আমি আরও গিট বিকল্পের সাথে কথা বলার সাথে সাথে একক ব্যবহারকারীর দৃষ্টিকোণ থেকে বহু (মিলি) ব্যবহারকারীর দৃষ্টিকোণে সরানো একটি সুস্পষ্ট চ্যালেঞ্জ হয়ে দাঁড়িয়েছে। দুর্ভাগ্যক্রমে, আমি আপনার মতো যথেষ্ট পারফরম্যান্স বিশ্লেষণ করতে পেলাম না। (.. অলস / প্রারম্ভিক তাড়াতাড়ি .... সংস্করণ 2, মন্ত্রের জন্য) আপনাকে পাওয়ার! যাইহোক, আমার পক্ষপাতদুষ্ট ধারণাটি পরের (এখনও পক্ষপাতদুষ্ট) বিকল্পের দিকে ঝাপিয়ে পড়েছে: সরঞ্জামগুলির একটি জাল-আপ যা তাদের পৃথক ক্ষেত্র, ডাটাবেস এবং সংস্করণ নিয়ন্ত্রণে সেরা are
এখনও কাজ চলাকালীন (... এবং কিছুটা অবহেলিত) মোর্ফড সংস্করণটি কেবল এটি।
- অগ্রভাগে: (ইউজারফেসিং) প্রথম স্তরের স্টোরেজ (ব্যবহারকারী অ্যাপ্লিকেশনগুলির সাথে ইন্টারফেসিং) এর জন্য একটি ডাটাবেস ব্যবহার করুন
- ব্যাকএন্ডে, ডাটাবেসে ডেটা অবজেক্টের সংস্করণ সম্পাদনের জন্য একটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা (ভিসিএস) (গিটের মতো) ব্যবহার করুন
সংক্ষেপে এটি কিছু সংহত আঠালো সহ ডেটাবেজে একটি সংস্করণ নিয়ন্ত্রণ প্লাগইন যুক্ত করার পরিমাণ, যা আপনার বিকাশ করতে হতে পারে তবে এটি অনেক সহজ হতে পারে।
এটি কীভাবে (অনুমিত) কাজ করবে তা হ'ল প্রাথমিক মাল্টি-ইউজার ইন্টারফেস ডেটা এক্সচেঞ্জগুলি ডাটাবেসের মাধ্যমে। ডিবিএমএস সমস্ত মজাদার এবং জটিল ইস্যু যেমন মাল্টি-ইউজার, কনক্যুরঞ্জি ই, পারমাণবিক ক্রিয়াকলাপ পরিচালনা করবে kend ব্যাকএন্ডে ভিসিএস একক ডেটা অবজেক্টের সংস্করণ নিয়ন্ত্রণ সম্পাদন করবে (কোনও চুক্তি বা মাল্টি-ব্যবহারকারী সমস্যা নয়)। ডাটাবেসে প্রতিটি কার্যকর লেনদেনের জন্য, সংস্করণ নিয়ন্ত্রণ কেবল ডেটা রেকর্ডে সঞ্চালিত হয় যা কার্যকরভাবে পরিবর্তিত হত।
ইন্টারফেসিং আঠালো হিসাবে, এটি ডাটাবেস এবং ভিসিএসের মধ্যে একটি সাধারণ ইন্টারফেসিং ফাংশন আকারে হবে। ডিজাইনের শর্তাবলী হিসাবে, সহজ পদ্ধতির একটি ইভেন্ট চালিত ইন্টারফেস হবে, ডাটাবেস থেকে ডেটা আপডেটের সাথে সংস্করণ নিয়ন্ত্রণ পদ্ধতিগুলি ট্রিগার করা হবে (ইঙ্গিত: মাইকিকিএল ধরে নেওয়া , ট্রিগার এবং সিস_এক্সেকের ব্যবহার) ব্লা ব্লাহ ...) বাস্তবায়নের জটিলতার শর্তাবলী, এটি সহজ এবং কার্যকর (উদাহরণস্বরূপ স্ক্রিপ্টিং) থেকে জটিল এবং দুর্দান্ত (কিছু প্রোগ্রামযুক্ত সংযোজক ইন্টারফেস) পর্যন্ত থাকবে। এটির উপর নির্ভর করে আপনি কতটা পাগল হতে চান এবং আপনি কত ঘামের মূলধন ব্যয় করতে ইচ্ছুক তার উপর নির্ভর করে। আমি সাধারণ স্ক্রিপ্টিং যাদু করা উচিত মনে করি। এবং শেষ ফলাফলটি অ্যাক্সেস করতে, বিভিন্ন ডেটা সংস্করণ, একটি সহজ বিকল্প হ'ল ভিসিএসে সংস্করণ ট্যাগ / আইডি / হ্যাশ দ্বারা উল্লিখিত ডেটা সহ ডাটাবেসের একটি ক্লোন (আরও বেশি ডাটাবেস কাঠামোর ক্লোন) তৈরি করা। আবার এই বিটটি একটি ইন্টারফেসের একটি সাধারণ ক্যোয়ারী / অনুবাদ / মানচিত্রের কাজ হবে।
এখনও মোকাবেলা করার জন্য কিছু চ্যালেঞ্জ এবং অজানা রয়েছে, তবে আমি মনে করি এর প্রভাব এবং এর বেশিরভাগের প্রাসঙ্গিকতা মূলত আপনার আবেদনের প্রয়োজনীয়তা এবং ব্যবহারের ক্ষেত্রে নির্ভর করবে। কিছু কেবল ইস্যু না হয়ে শেষ হতে পারে। কিছু বিষয়গুলির মধ্যে উচ্চ-ফ্রিকোয়েন্সি ডেটা আপডেটের ক্রিয়াকলাপের জন্য অ্যাপ্লিকেশনটির জন্য 2 কী মডিউল, ডাটাবেস এবং ভিসিএসের মধ্যে পারফরম্যান্স ম্যাচিং, ডেটা হিসাবে গিট সাইডে রিসোর্সেস (স্টোরেজ এবং প্রসেসিং পাওয়ার) সময়ের সাথে সাথে স্কেলিং অন্তর্ভুক্ত রয়েছে বৃদ্ধি: স্থির, সূক্ষ্ম বা শেষ পর্যন্ত মালভূমি
উপরের ককটেলগুলির মধ্যে, আমি বর্তমানে এটি তৈরি করছি
- ভিসিএসের জন্য গিট ব্যবহার করা (2 সংস্করণের মধ্যে কেবল চেঞ্জসেট বা ডেল্টাস ব্যবহারের কারণে প্রাথমিকভাবে ভাল পুরানো সিভিএস হিসাবে বিবেচিত)
- মাইএসকিএল ব্যবহার করে (আমার তথ্যের উচ্চ কাঠামোগত প্রকৃতির কারণে, এক্সএমএল কঠোর এক্সএমএল স্কিমার সাহায্যে)
- মোংগোডিবি (টোপ ব্যবহার করা নেটিভ ডাটাবেস কাঠামোর সাথে একত্রে মিলিত একটি নোএসকিউএল ডাটাবেস চেষ্টা করার জন্য) সাথে টোয়িং করা
কিছু মজাদার তথ্য - গিটটি স্টোরেজ অনুকূলকরণের জন্য পরিষ্কার জিনিস দেয় যেমন সংকোচন, এবং কেবলমাত্র বস্তুর পুনর্বিবেচনার মধ্যে ডেল্টাসের সঞ্চয় - হ্যাঁ, গিট কেবলমাত্র ডেটা অবজেক্টের পুনর্বিবেচনার মধ্যে পরিবর্তনসেট বা ডেল্টাস সংরক্ষণ করে, এটি প্রযোজ্য কোথায় (এটি জানে কখন এবং কিভাবে) . রেফারেন্স: গিট ইন্টারনালদের
সাহসের গভীরে প্যাকফাইলস - গিটের অবজেক্ট স্টোরেজ (কনটেন্ট-অ্যাড্রেসিয়েবল ফাইল সিস্টেম) এর পর্যালোচনা, এমন মংসোডিবি-র নোএসকিউএল ডাটাবেসের সাথে স্ট্রাইকিং মিল (কনসেপ্টের দৃষ্টিভঙ্গি থেকে) দেখায়। আবার, ঘামের মূলধন ব্যয় করে, এটি 2 সংহত করার জন্য আরও কার্যকর আকর্ষণীয় সম্ভাবনা এবং পারফরম্যান্স টুইটগুলি সরবরাহ করতে পারে
আপনি যদি এতদূর পেলেন তবে উপরেরটি আপনার ক্ষেত্রে প্রযোজ্য কিনা এবং আমাকে ধরে নিই, এটি আপনার শেষ বিস্তৃত পারফরম্যান্স বিশ্লেষণের কিছু দিককে কীভাবে বর্ধন করবে?