কোনও নোএসকিউএল ডেটা স্টোর ব্যবহার করে আপনি কোন স্কেল্যাবিলিটি সমস্যার মুখোমুখি হয়েছেন? [বন্ধ]


189

নোএসকিউএল উল্লেখ করে এমন সম্পর্কহীন ডেটা স্টোরকে যা সম্পর্কিত ডেটাবেস এবং এসিআইডি গ্যারান্টির ইতিহাসের সাথে ভেঙে যায়। জনপ্রিয় ওপেন সোর্স নোএসকিউএল ডেটা স্টোরগুলির মধ্যে রয়েছে:

আপনার নির্দিষ্ট সমস্যা সম্পর্কে আমি জানতে চাই - এসও পাঠক - আপনি ডেটা স্টোর এবং কোন এনএসকিউএল ডেটা স্টোর ব্যবহার করেছেন সেগুলি সমাধান করে সমাধান করেছেন।

প্রশ্নাবলী:

  • সমাধানের জন্য আপনি কোন এনএসকিউএল ডেটা স্টোর ব্যবহার করেছেন?
  • আপনি কোন নোএসকিউএল ডেটা স্টোর ব্যবহার করেছেন?
  • নোএসকিউএল ডেটা স্টোরে স্যুইচ করার আগে আপনি কোন ডাটাবেস ব্যবহার করেছেন?

আমি প্রথম হাতের অভিজ্ঞতাগুলি খুঁজছি, সুতরাং আপনার যদি না থাকে তবে দয়া করে উত্তর দেবেন না।


6
bignose: আমি কি আমার 550 খ্যাতি সবচেয়ে তথ্যপূর্ণ উত্তর :-) প্রদানের ব্যক্তি দেওয়া পরামর্শ হিসেবে খয়রাত দেখতে
knorv

1
জেমস্টোন / এস এর মতো সমাধানগুলি ভুলে যাবেন না - একটি ছোট্ট টাল অবজেক্ট স্টোর।
রেন্ডাল শোয়ার্জ

2
ওরিয়েন্টডিবি ( orientechnologies.com ) মিস করবেন না
Lvca

উত্তর:


49

লোড সামলাতে সক্ষম হতে আমি মাইএসকিউএল থেকে কাউচডিবিতে একটি ছোট সাবপ্রজেক্টটি স্যুইচ করেছি। ফলাফল আশ্চর্যজনক ছিল।

প্রায় ২ বছর আগে, আমরা http://www.ubuntuusers.de/ এ একটি স্ব লিখিত সফ্টওয়্যার প্রকাশ করেছি (এটি সম্ভবত বৃহত্তম জার্মান লিনাক্স কমিউনিটি ওয়েবসাইট)। সাইটটি পাইথনে লেখা আছে এবং আমরা একটি ডাব্লুএসজিআই মিডলওয়্যার যুক্ত করেছি যা সমস্ত ব্যতিক্রমগুলি ধরতে সক্ষম হয়েছিল এবং সেগুলি অন্য একটি মাইএসকিউএল চালিত ওয়েবসাইটে প্রেরণ করতে সক্ষম হয়েছিল। এই ছোট ওয়েবসাইটটি বিভিন্ন বাগগুলি নির্ধারণ করতে একটি হ্যাশ ব্যবহার করেছিল এবং সংখ্যার সংখ্যা এবং শেষ ঘটনাটিও সংরক্ষণ করে।

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

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

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

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

একটি সংক্ষেপে, কাউচডিবি অবশ্যই এই সাবপ্রজেক্টের জন্য সেরা পছন্দ (বা কমপক্ষে মাইএসকিউএল এর চেয়ে কম ভাল পছন্দ) ছিল এবং এটি তার কাজটি ভালভাবে করে।


আমার মনে হয় আমি কোথাও পড়েছি যে আপনি যখন কমপ্রেসড ডেটা একটি নির্দিষ্ট স্তরে পৌঁছেছিল তখন আপনি স্বয়ংক্রিয়ভাবে সংক্ষেপন করতে পারবেন
কাউচডবি

50

আমার বর্তমান প্রকল্প।

18,000 অবজেক্টগুলিকে একটি সাধারণ কাঠামোতে সংরক্ষণ করা: 8 টি বিভিন্ন টেবিল জুড়ে 90,000 সারি। এগুলি পুনরুদ্ধার করতে এবং আমাদের জাভা অবজেক্ট মডেলটিতে ম্যাপ করতে 1 মিনিট সময় নিয়েছিল, যা সঠিকভাবে ইনডেক্স করা সবকিছু সহ with

হালকা ওজনের পাঠ্যের উপস্থাপনা ব্যবহার করে কী / মান জোড় হিসাবে তাদের সংরক্ষণ করুন: 1 টি টেবিল, 18,000 সারি, 3 টি সেকেন্ড এগুলি পুনরুদ্ধার করতে এবং জাভা অবজেক্টগুলিকে পুনর্গঠন করতে।

ব্যবসায়ের নিরিখে: প্রথম বিকল্পটি কার্যকর ছিল না। দ্বিতীয় বিকল্প মানে আমাদের অ্যাপ্লিকেশন কাজ করে।

প্রযুক্তির বিশদ: এসকিউএল এবং নোএসকিউএল উভয়ের জন্য মাইএসকিউএলে চলছে! ভাল লেনদেন সমর্থন, পারফরম্যান্স এবং ডেটা দূষিত না করার জন্য প্রমাণিত ট্র্যাক রেকর্ড, মোটামুটি ভালভাবে স্কেলিং, ক্লাস্টারিংয়ের সমর্থন ইত্যাদির জন্য মাইএসকিউএল এর সাথে লেগে থাকা

মাইএসকিউএল-তে আমাদের ডেটা মডেল এখন কেবল কী ক্ষেত্র (পূর্ণসংখ্যা) এবং বড় "মান" ক্ষেত্র: মূলত কেবল একটি বড় টেক্সট ক্ষেত্র।

আমরা নতুন কোনও খেলোয়াড়ের সাথে যাইনি (কাউচডিবি, ক্যাসান্দ্রা, মঙ্গোডিবি, ইত্যাদি) কারণ তারা প্রত্যেকে নিজেরাই দুর্দান্ত বৈশিষ্ট্য / পারফরম্যান্স দেয় তবে আমাদের পরিস্থিতিতে সর্বদা ত্রুটি ছিল (যেমন নিখোঁজ / অপরিণত জাভা সমর্থন)।

মাইএসকিউএল ব্যবহার (AB) এর অতিরিক্ত সুবিধা - আমাদের মডেল বিট যে কি করতে কাজ relationally সহজে আমাদের কী / মান ডেটা সঞ্চয় লিঙ্ক করা যেতে পারে।

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

Name=An Example Product
Type=CategoryAProduct
Colour=Blue
Size=Large
Flavours={nice,lovely,unpleasant,foul}
Contains=[
Name=Product2
Type=CategoryBProduct
Size=medium
Flavours={yuck}
------
Name=Product3
Type=CategoryCProduct
Size=Small
Flavours={sublime}
]

2
প্রশ্নে দুটি ডাটাবেস কোথায় (স্কয়ার এবং NoSQL)?
mavnn

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

5
হাই ব্রায়ান, আপনার সাধারন কাঠামোর স্কিমা এবং কী-মান জোড়গুলির "স্কিমা" এর উদাহরণ সরবরাহ করা কি সম্ভব হবে? আমরা একটি সাধারণীকৃত কাঠামো নিয়ে পারফরম্যান্সের সমস্যার মুখোমুখি হয়েছি এবং বর্তমানে দুটি বিকল্প বিবেচনা করছি: হয় আমাদের টেবিলগুলিকে অস্বীকৃতি জানানো বা কোনও নোএসকিউএল ডেটা স্টোরের দিকে এগিয়ে যাওয়া। আমরা ইতিমধ্যে প্রদত্ত লাইসেন্সিং এবং রক্ষণাবেক্ষণের ফিজের কারণে আমরা আমাদের বর্তমান ওরাকল স্ট্যাকের উপর নির্ভর করতে চাই এবং তাই, একটি অস্বীকৃত আরডিবিএমএস সমাধানের দিকে ঝুঁকছি। একটি উদাহরণ আকর্ষণীয় হবে!
tth

@ ব্রায়ান: যেহেতু উদাহরণের ৪ টি জাভাতে লেখা হয়েছে, কোন জাভা সমর্থন বৈশিষ্ট্যগুলি অনুপস্থিত বা অপরিণত ছিল? এই ক্ষেত্রে আমার কোনও অভিজ্ঞতা নেই তবে এটি আমার কাছে কিছুটা অবাক বলে মনে হচ্ছে।
জিমি

তৃতীয় - সংক্ষেপে কীভাবে আমাদের সাধারণীকৃত স্কিমা অন্তর্ভুক্ত করা যায় তা নিশ্চিত নই তবে আমরা কীভাবে আমাদের সামগ্রিকে একক পাঠ্য ক্ষেত্রে সংরক্ষণ করব তার একটি উদাহরণ যুক্ত করেছি। এটি কিছুটা স্বীকৃত, আমি আমার বাস্তববাদী ব্যালিস্টিক হিসাবে যেহেতু এই "ডেটা মডেল" এর সাথে যে কোনও "সমস্যা" সম্ভবত কারণেই সম্ভবত হওয়ার কারণ হিসাবে একটি বাস্তব উদাহরণ অন্তর্ভুক্ত করতে পারিনি। আমি ওরাকল এবং কিছু অন্যান্য সমাধান উভয়ই বেঞ্চমার্কিংয়ের পরামর্শ দেব, তবে আপনার সংস্থার যদি ভাল ওরাকল দক্ষতা, ডিবিএ, ব্যাকআপ ইত্যাদি থাকে তবে এটি বিবেচনা করা সত্যিই ভাল বিকল্প হতে পারে
ব্রায়ান

22

টড হফের হাইস্ক্ল্যাবিলিটি.কমের কয়েকটি কেস স্টাডি সহ নোএসকিউএল-র প্রচুর দুর্দান্ত কভারেজ রয়েছে।

বাণিজ্যিক ভার্টিকা কলামার ডিবিএমএস আপনার উদ্দেশ্য অনুসারে পারে (যদিও এটি এসকিউএল সমর্থন করে): বিশ্লেষণ অনুসন্ধানগুলির জন্য traditionalতিহ্যগত সম্পর্কিত ডিবিএমএসের সাথে তুলনা করা খুব দ্রুত fast স্টোনব্রেকার, এবং আল-এর সাম্প্রতিক স্যাকএএম কাগজটি মানচিত্র-হ্রাসের সাথে ভার্টিকার বিপরীতে দেখুন।

আপডেট: এবং এইচবিজ, ভলডেমর্ট, মঙ্গোডিবি, মেমকেচেডিবি, রেডিস এবং হাইপার টেবিল সহ বেশ কয়েকটি অন্যান্যর উপরে টুইটারের নির্বাচিত ক্যাসান্দ্রা

আপডেট 2: রিক ক্যাটেল স্রেফ হাই পারফরম্যান্স ডেটা স্টোরগুলিতে কয়েকটি নোএসকিউএল সিস্টেমের তুলনা প্রকাশ করেছে । আর রিক এর কাগজে highscalability.com এর নিন এখানে


3
এছাড়াও আপনি পড়া উচিত cacm.acm.org/magazines/2010/1/...
a'r

@ আর: ধন্যবাদ, এটি একটি ভাল লিঙ্ক। ভার্টিকার লোকেরা ন্যায্য পরিমাণ বিতর্ক সৃষ্টি করেছে।
জিম ফেরানস

8

আমরা আমাদের ডেটাগুলির কিছু অংশ মাইএসকিএল থেকে মংডোবিতে স্থানান্তরিত করেছি, স্কেলাবিলিটির জন্য এত বেশি নয় বরং আরও বেশি কারণ এটি ফাইল এবং অ-ট্যাবুলার ডেটার জন্য আরও ভাল ফিট।

উত্পাদনে আমরা বর্তমানে সংরক্ষণ করি:

  • 25 হাজার ফাইল (60 গিগাবাইট)
  • ১৩০ মিলিয়ন অন্যান্য "ডকুমেন্টস" (৩৫০ গিগাবাইট)

প্রায় 10 জিবি দৈনিক টার্নওভার সহ।

মঙ্গডব পাইথন এপিআই (পাইমোঙ্গো) ব্যবহার করে অ্যাপাচি / ডাব্লুএসজি / পাইথন ক্লায়েন্ট সহ দুটি নোডের (6x450 জিবি এসএইএস রেড 10) ডাটাবেসটি "জোড়যুক্ত" কনফিগারেশনে স্থাপন করা হয়। ডিস্ক সেটআপ সম্ভবত ওভারকিল তবে আমরা মাইএসকিএল-এর জন্য যা ব্যবহার করি তা স্থির করে।

পাইমঙ্গো থ্রেডপুল এবং মংডোব সার্ভারের ব্লকিং প্রকৃতি নিয়ে কিছু সমস্যা ছাড়াও এটি একটি ভাল অভিজ্ঞতা।


আপনি যে নামগুলি দিয়েছিলেন, সেগুলি সম্পর্কে আপনি কিছুটা ব্যাখ্যা করতে পারেন?
felixfbecker

5

আমি আপনার সাহসী পাঠ্যের বিরুদ্ধে যাওয়ার জন্য ক্ষমাপ্রার্থী, যেহেতু আমার কাছে প্রথম হাতের অভিজ্ঞতা নেই, তবে ব্লগ পোস্টের এই সেটটি কাউচডিবিতে সমস্যা সমাধানের একটি উত্তম উদাহরণ।

কাউচডিবি: একটি কেস স্টাডি

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


5

আমরা আমাদের ডেটা আমরা PostgreSQL মধ্যে সংরক্ষণ করা কিছু সরানো এবং মধ্যে memcached থাকেন Redis । মূল মান স্টোরগুলি শ্রেণিবদ্ধ বস্তু ডেটা সঞ্চয় করার জন্য অনেক বেশি উপযুক্ত much আপনি আরডিবিএমএসে নিজের ব্লবকে মানচিত্রের জন্য কোনও ওআরএম ব্যবহার করার চেয়ে ব্লব ডেটা অনেক দ্রুত এবং অনেক কম বিকাশের সময় এবং প্রচেষ্টার সাথে সঞ্চয় করতে পারেন।

আমার একটি ওপেন সোর্স সি # রেডিস ক্লায়েন্ট রয়েছে যা আপনাকে 1 লাইন দিয়ে কোনও পোকো অবজেক্ট সংরক্ষণ এবং পুনরুদ্ধার করতে দেয়:

var customers = redis.Lists["customers"]; //Implements IList<Customer>
customers.Add(new Customer { Name = "Mr Customer" });

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

আমি রেডিসকে স্টেরয়েডগুলিতে একটি 'ম্যানেজড টেক্সট ফাইল' হিসাবে বিবেচনা করি যা একাধিক ক্লায়েন্টের জন্য দ্রুত, সমবর্তী এবং পারমাণবিক অ্যাক্সেস সরবরাহ করে, তাই আমি এখন টেক্সট ফাইল বা এমবেডেড ডাটাবেস ব্যবহার করার জন্য যা ব্যবহার করেছি তা রেডিস ব্যবহার করে। উদাহরণস্বরূপ, আমাদের সমস্ত পরিষেবাদির জন্য রিয়েল-টাইম সম্মিলিত রোলিং ত্রুটি লগ পাওয়ার জন্য (যা আমাদের জন্য কুখ্যাতভাবে কঠিন কাজ হয়ে গেছে), কেবলমাত্র রেডিস সার্ভারের পাশের তালিকায় ত্রুটিটির প্রাক-পেন্ডিং করে কেবলমাত্র কয়েকটি লাইন দিয়ে সম্পন্ন করা হয়েছে এবং তারপরে তালিকাটি ছাঁটাই করে কেবল শেষ 1000 টি রাখা হয়, যেমন:

var errors = redis.List["combined:errors"];
errors.Insert(0, new Error { Name = ex.GetType().Name, Message = ex.Message, StackTrace = ex.StackTrace});
redis.TrimList(errors, 1000);

4

আমার প্রথম হাতের অভিজ্ঞতা নেই, তবে আমি এই ব্লগ এন্ট্রিটিকে বেশ আকর্ষণীয় বলে মনে করি।


3

আমি সফ্টওয়্যার ডোমেন অবজেক্টগুলিকে ম্যাপ করার প্রচেষ্টাটি দেখতে পেয়েছি (যেমন aSalesOrder, aCustomer ...) দ্বি-মাত্রিক রিলেশনাল ডাটাবেস (সারি এবং কলাম )গুলিতে সংরক্ষণ / আপডেট করতে এবং আবার একাধিক সারণী থেকে কোনও ডোমেন অবজেক্ট উদাহরণ ইনস্ট্যান্ট করার জন্য প্রচুর কোড গ্রহণ করে । এই সমস্তগুলিতে যোগদানের পারফরম্যান্সের হিটের কথা উল্লেখ না করে, এই সমস্ত ডিস্কটি পড়ে ... কেবলমাত্র বিক্রয় অর্ডার বা গ্রাহকের রেকর্ডের মতো কোনও ডোমেন অবজেক্ট দেখতে / চালনা করার জন্য।

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


3

আমি মাইএসকিউএল (ইনোডিবি) থেকে এম 2 এম সিস্টেমের জন্য ক্যাসান্দ্রায় স্যুইচ করেছি, যা মূলত প্রতিটি ডিভাইসের জন্য সেন্সরগুলির টাইম-সিরিজ সঞ্চয় করে। প্রতিটি ডেটা (ডিভাইস_আইডি, তারিখ) এবং (ডিভাইস_আইডি, টাইপ_ফ_সেন্সর, তারিখ) দ্বারা সূচিযুক্ত হয়। মাইএসকিউএল সংস্করণে 20 মিলিয়ন সারি রয়েছে।

মাইএসকিউএল:

  • মাস্টার-মাস্টার সিঙ্ক্রোনাইজেশনে সেটআপ। সিঙ্ক্রোনাইজেশন হ্রাসের আশেপাশে কয়েকটি সমস্যা দেখা দিয়েছে । এটি মানসিক চাপ ছিল এবং বিশেষত শুরুর দিকে কয়েক ঘন্টা সময় নিতে পারে।
  • সন্নিবেশ সময় কোনও সমস্যা ছিল না তবে অনুসন্ধানের জন্য ডেটা বাড়ার সাথে সাথে আরও বেশি মেমোরি প্রয়োজন । সমস্যাটি সূচকগুলি পুরো হিসাবে বিবেচিত হয়। আমার ক্ষেত্রে, আমি কেবল সূচকগুলির খুব পাতলা অংশগুলি ব্যবহার করছিলাম যা মেমরি লোড করার জন্য প্রয়োজনীয় ছিল (কেবলমাত্র কয়েক শতাংশ ডিভাইসই ঘন ঘন পর্যবেক্ষণ করা হত এবং এটি সর্বশেষতম ডেটাতে ছিল)।
  • এটি ব্যাকআপ করা কঠিন ছিল । Rsync বড় InnoDB টেবিল ফাইলগুলিতে দ্রুত ব্যাকআপ নিতে সক্ষম হয় না।
  • এটি দ্রুত স্পষ্ট হয়ে গেছে যে ভারী টেবিলগুলির স্কিমা আপডেট করা সম্ভব নয় , কারণ এটি অনেক বেশি সময় নিয়েছিল (ঘন্টা)।
  • ডেটা আমদানি করতে ঘন্টা সময় লেগেছিল (এমনকি শেষ পর্যন্ত ইনডেক্সিংয়ের সময়ও)। সর্বদা সেরা উদ্ধার পরিকল্পনাটি ছিল ডাটাবেসের কয়েকটি অনুলিপি (ডেটা ফাইল + লগ) সর্বদা রাখা keep
  • একটি হোস্টিং সংস্থা থেকে অন্যটিতে সরে যাওয়া সত্যিই বড় ব্যাপার ছিল । প্রতিলিপিটি খুব সাবধানে পরিচালনা করতে হয়েছিল।

ক্যাসান্ড্রা:

  • মাইএসকিউএল এর চেয়েও ইনস্টল করা সহজ।
  • প্রচুর র‍্যাম দরকার। একটি 2 গিগাবাইট উদাহরণটি এটি প্রথম সংস্করণগুলিতে চালিত করতে পারেনি, এখন এটি 1 জিবি ইনস্ট্যান্সে কাজ করতে পারে তবে এটি ধারণা নয় (উপায়টি অনেক বেশি ডেটা ফ্লাশ করে)। এটি 8 জিবি দেওয়া আমাদের ক্ষেত্রে যথেষ্ট ছিল।
  • একবার আপনি কীভাবে আপনার ডেটা সংগঠিত করেন তা বুঝতে পারলে সংরক্ষণ করা সহজ। অনুরোধ করা একটু বেশি জটিল। তবে একবার আপনি এটির চারপাশে পৌঁছানোর পরে, এটি সত্যিই দ্রুত (আপনি যদি না চান তবে আপনি সত্যিই ভুল করতে পারবেন না)।
  • যদি পূর্বের পদক্ষেপটি সঠিকভাবে করা হয়ে থাকে তবে তা হয় এবং অতি দ্রুত থাকে।
  • এটি প্রায় মনে হয় ডেটা ব্যাকআপ করার জন্য সংগঠিত। প্রতিটি নতুন ডেটা নতুন ফাইল হিসাবে যুক্ত করা হয়। আমি ব্যক্তিগতভাবে, তবে এটি কোনও ভাল জিনিস নয়, প্রতি রাতে এবং প্রতিটি শাটডাউনের আগে (সাধারণত আপগ্রেডের জন্য) ফ্লাশ করা তথ্য যাতে পুনরুদ্ধারে কম সময় লাগে, কারণ আমাদের পড়ার জন্য কম লগ থাকে। এটি খুব বেশি ফাইল তৈরি করে না কারণ তারা কমপ্যাক্ট রয়েছে।
  • ডেটা আমদানি করা নরকের মতো দ্রুত। এবং আরও বেশি হোস্ট আপনার কাছে দ্রুত। গিগাবাইট ডেটা রফতানি এবং আমদানি করা এখন আর কোনও সমস্যা নয়।
  • স্কিমা না থাকা খুব আকর্ষণীয় জিনিস কারণ আপনি আপনার প্রয়োজনীয়তা অনুসরণ করতে ডেটা বিকাশ করতে পারেন। যার অর্থ একই কলাম পরিবারে একই সাথে আপনার ডেটার বিভিন্ন সংস্করণ থাকতে পারে।
  • হোস্ট যুক্ত করা সহজ ছিল (যদিও দ্রুত নয়) তবে আমি এটি মাল্টি-ডেটাসেন্টার সেটআপে করি নি।

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


2

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

তবে আপনি যদি উইন্ডোজ ওএস ব্যবহার করতে চান তবে আপনার পছন্দ নোএসকিউএল ডাটাবেস সীমিত limited এবং সবসময় কোনও সি # সরবরাহকারী থাকে না

আমি মঙ্গোডিবি চেষ্টা করেছি এবং এটি স্ক্লাইটের চেয়ে 40 গুণ বেশি দ্রুত ছিল, তাই সম্ভবত এটি ব্যবহার করা উচিত। তবে আমি এখনও একটি সহজ প্রক্রিয়া সমাধানের জন্য আশা করি।


3
এসি # সরবরাহকারী বেশিরভাগ ক্ষেত্রে অপ্রাসঙ্গিক, কারণ এই সিস্টেমে কোনও ইন্টারফেস নেই যা প্রচলিত ডাটাবেসের মতো দেখতে (তাই "নোএসকিউএল") তাই একটি ADO.NET ইন্টারফেসটি একটি বর্গক্ষেত্রের মধ্যে একটি বৃত্তাকার খোসা হতে পারে।
মার্কআর

2
প্রকৃতপক্ষে আপনার এমন কোনও সরবরাহকারীর দরকার নেই যা ADO.NET ইন্টারফেস প্রয়োগ করে তবে db এবং .NET এর মধ্যে দম্পতির জন্য আপনার এখনও কোনও ধরণের ড্রাইভার / সরবরাহকারীর প্রয়োজন। মঙ্গোডিবির জন্য একটি রয়েছে তবে এটি এখনও নিখুঁত নয়। উদাহরণস্বরূপ ব্যতিক্রম পরিচালনার উন্নতির প্রয়োজন।
থিও

রেডিস @ কোড. google.com/p/servicestack/wiki/ServiceStackRed এর জন্য আমার কাছে একটি ওপেন সোর্স সি # ক্লায়েন্ট রয়েছে এটি আপনাকে পাঠ্য ব্লব হিসাবে 'টাইপড পোকো' সংরক্ষণ করতে দেয় এবং রেডিস সার্ভারের জন্য IList <T> এবং আইকোলিকেশন <T> ইন্টারফেস সরবরাহ করে পাশের তালিকাগুলি এবং সেটগুলি ইত্যাদি
পুরাণ

2

আমি মেশিনে লগিং বার্তাগুলি সংরক্ষণ করতে redis ব্যবহার করেছি। এটি কার্যকর করা খুব সহজ এবং খুব দরকারী ছিল। রেডিস সত্যিই পাথর


2

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


1

আমি অতীতে কাউচবাস ব্যবহার করেছি এবং আমরা পুনরায় ভারসাম্যযুক্ত সমস্যা এবং অন্যান্য সমস্যার সমাধান করেছি encountered বর্তমানে আমি বিভিন্ন উত্পাদন প্রকল্পে রেডিস ব্যবহার করছি। আমি রেডিস্লাবস.কম ব্যবহার করছি যা রেডিসের জন্য পরিচালিত পরিষেবা যা আপনার রেডিস ক্লাস্টারগুলিকে স্কেলিংয়ের যত্ন নেয়। আমি আমার ব্লগে http://thomasjaeger.wordpress.com এ অবজেক্ট অধ্যবসায়ের উপর একটি ভিডিও প্রকাশ করেছি যা দেখায় যে কীভাবে রেডিসকে একটি সরবরাহকারী মডেল ব্যবহার করতে হয় এবং কীভাবে আপনার সি # অবজেক্টগুলি রেডিসে সংরক্ষণ করতে হয়। দেখা যাক.


আমি জানি এটি এখন দীর্ঘ গুলিবিদ্ধ, তবে পুনরায় ভারসাম্য রক্ষার ক্ষেত্রে আপনার বিশেষত কোন সমস্যা আছে?
দেখেন

1

আমি কাউকে এটি পড়তে উত্সাহিত করব আবার একবার কাউচবেস চেষ্টা করার জন্য 3.0 এর দরজাটি বাইরে। প্রারম্ভিকদের জন্য 200 টিরও বেশি নতুন বৈশিষ্ট্য রয়েছে। কাউচবেস সার্ভারের কর্মক্ষমতা, প্রাপ্যতা, স্কেলাবিলিটি এবং সহজ পরিচালনার বৈশিষ্ট্যগুলি একটি অত্যন্ত নমনীয়, অত্যন্ত উপলব্ধ ডেটাবেস তৈরি করে। পরিচালনা ইউআইটি অন্তর্নির্মিত এবং এপিআইগুলি স্বয়ংক্রিয়ভাবে ক্লাস্টার নোডগুলি আবিষ্কার করে তাই অ্যাপ্লিকেশন থেকে ডিবিতে লোড ব্যালান্সারের কোনও প্রয়োজন নেই। যদিও এই মুহুর্তে আমাদের কাছে পরিচালিত কোনও পরিষেবা নেই আপনি এডাব্লুএস, রেডহ্যাট গিয়ার্স, ক্লৌডেরা, র্যাকস্পেস, ক্লাউডসফ্টের মতো ডকার কনটেইনার এবং আরও অনেক কিছুর উপর কাউচবেস চালাতে পারেন। পুনরায় ভারসাম্য রক্ষার বিষয়ে এটি নির্ভর করে যে আপনি নির্দিষ্টভাবে যা উল্লেখ করছেন তবে কাউচবাজ কোনও নোড ব্যর্থতার পরে স্বয়ংক্রিয়ভাবে ভারসাম্য বজায় রাখে না, যেমন নকশা করা হয়েছে, তবে প্রশাসক প্রথম নোড ব্যর্থতার জন্য অটো ফেলিওভার সেটআপ করতে পারে এবং আমাদের এপিআইগুলি ব্যবহার করে আপনি প্রতিলিপি ভিককেটগুলিকে সক্রিয় করার আগে বা রিস্টিপিআই ব্যবহার করার আগে অ্যাক্সেস পেতে পারেন আপনি একটি মনিটরিং সরঞ্জাম দ্বারা একটি ব্যর্থতা প্রয়োগ করতে পারেন। এটি একটি বিশেষ ক্ষেত্রে তবে এটি করা সম্ভব।

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

  1. কাউচবেস সার্ভার 3.0
  2. প্রশাসন গাইড
  3. REST এপিআই
  4. বিকাশকারী গাইড

শেষ অবধি, আমি বিতরণ অনুসন্ধানের জন্য আপনাকে N1QL পরীক্ষা করতে উত্সাহিত করব:

  1. এন 1কিউএল টিউটোরিয়াল
  2. এন 1কিউএল গাইড

পড়ার জন্য ধন্যবাদ এবং আপনার আরও সহায়তার দরকার হলে আমাকে বা অন্যকে জানান!

অস্টিন


0

আমি অতীতে ভার্টিকা ব্যবহার করেছি t এটি কলামার সংকোচনের উপর নির্ভর করে এবং ডিস্ক পঠন করে এবং আপনার হার্ডওয়্যারের বেশিরভাগ অংশ তৈরি করার জন্য স্টোরেজ কমিয়ে দেয়। দ্রুততর ডেটা লোড এবং উচ্চতর সম্মতি আপনাকে ন্যূনতম বিলম্বের সাথে আরও ব্যবহারকারীদের বিশ্লেষণের ডেটা পরিবেশন করতে দেয়।

এর আগে, আমরা কোটি কোটি রেকর্ডযুক্ত ওরাকল ডাটাবেসটি অনুসন্ধান করছিলাম এবং পারফরম্যান্সটি খুব উপ-অনুকূল ছিল। এসএসডি দিয়ে অনুকূলিত হওয়ার পরেও ক্যোয়ারীগুলি চালাতে 8 থেকে 12 সেকেন্ড সময় নিয়েছে। অতএব, আমরা দ্রুত পঠিত অনুকূলিত, বিশ্লেষণ ভিত্তিক ডাটাবেস ব্যবহার করার প্রয়োজনীয়তা অনুভব করেছি। চর্বিযুক্ত পরিষেবা স্তরের পিছনে ভার্টিকা ক্লাস্টারগুলি সহ, আমরা উপ-দ্বিতীয় পারফরম্যান্স সহ API গুলি চালাতে পারি।

ভার্টিকা ক্যোয়ারী এক্সিকিউশনটিকে অনুকূল করে এমন একটি ফর্ম্যাটে ডেটা अनुमानগুলিতে সঞ্চয় করে। বৈষম্যযুক্ত দর্শনগুলির মতো, প্রজেকশনগুলি স্টোরের ফলাফলটি ডিস্কে বা এসএসডি-তে সেট করে প্রতিবার যখন তারা কোনও ক্যোয়ারীতে ব্যবহৃত হয় তখন তাদের গণনা করার চেয়ে বেশি ro প্রজেক্টগুলি নিম্নলিখিত সুবিধা দেয়:

  1. স্টোরেজ স্পেস হ্রাস করতে ডেটা সঙ্কলন এবং এনকোড করুন।
  2. ডাটাবেস ক্লাস্টারে জুড়ে বিতরণ সহজ করুন।
  3. উচ্চ প্রাপ্যতা এবং পুনরুদ্ধার প্রদান করুন।

ভার্টিকা বিভাগ ব্যবহার করে ক্লাস্টারে ডেটা বিতরণ করে ডাটাবেসটিকে অনুকূল করে।

  1. বিভাজন নোডে ডেটার একটি অংশ রাখে।
  2. এটি সমস্ত নোডে সমানভাবে ডেটা বিতরণ করে। সুতরাং, প্রতিটি নোড অনুসন্ধান প্রক্রিয়াটির একটি অংশ সম্পাদন করে।
  3. কোয়েরিটি ক্লাস্টারে চলে এবং প্রতিটি নোড কোয়েরি প্ল্যান গ্রহণ করে।
  4. প্রশ্নের ফলাফলগুলি একত্রিত হয় এবং আউটপুট তৈরি করতে ব্যবহৃত হয়।

আরও তথ্যের জন্য, দয়া করে ভার্টিকার ডকুমেন্টেশন @ https://www.vertica.com/ জ্ঞানসবেস / দেখুন

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