কিভাবে বাফার ডেটা সীমা বাড়ানো যায়?


16

উবুন্টুর মধ্যে আমি একটি মঙ্গোডিবি ডিবি সংগ্রহ তৈরি করেছি যার মধ্যে 1 মিলিয়ন রেকর্ড রয়েছে, এবং যখন এর বিরুদ্ধে বাছাই আদেশটি চালানোর চেষ্টা করা হচ্ছে, আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

 "$err" : "Runner error: Overflow sort stage buffered data usage of 33555002 bytes exceeds internal limit of 33554432 bytes",
 "code" : 17144

দয়া করে কেউ কীভাবে অভ্যন্তরীণ সীমা বাড়াতে পারে যাতে ডেটাটির বিপরীতে আমি এই এবং আরও কিছু বড় আকারের আদেশগুলি কার্যকর করতে পারি?


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

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

আহ। ঠিক আছে, আমি এক্সপ্লেইন ব্যবহার করে পারফরম্যান্স পরীক্ষা করার প্রবণতা রাখি (এক্সপ্লেইনটি আমাকে কম রেকর্ড গণনা না করে পারফরম্যান্সটি খারাপ বলে বিবেচনা করে)। আপনি সম্ভবত আপনার রেকর্ডগুলি সীমাবদ্ধ করতে হবে যদি আপনি এটি এটি করতে চান।
রিনজুইন্ড

আমি খুঁজে পেয়েছি যে মঙ্গোডিবি এই ডেটাসেটে প্রায় 25000 নথি প্রক্রিয়াকরণ করবে, তবে এর চেয়ে বড় আরও কিছু নিয়ে আসে ... আমার ধারণা এটি কেবল ডাটাবেসের একটি সীমাবদ্ধতা? আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ।
Jon295087

উত্তর:


23

এটি সার্ভার -13611 এর মতো বাগের কারণে ঘটতে পারে (সুতরাং আপনি সর্বশেষ সংস্করণে রয়েছেন তা নিশ্চিত করুন) বা আপনি ২.6-এর মধ্যে একটি বিচ্ছুর সূচককে বাছাই করার চেষ্টা করছেন তবে এটি সাধারণত কারণ আপনি খুব সহজে বাছাই করার চেষ্টা করছেন একটি সূচক ছাড়া মেমরি অনেক রেকর্ড।

আপনি যে নির্দিষ্ট সীমাটি আঘাত করছেন তা ইচ্ছাকৃত এবং এখানে নথিভুক্ত করা হয়েছে - এটি পরিবর্তন করা যায় না, সুতরাং আপনাকে ফলাফলের সেটটি হ্রাস করতে হবে বা বাছাই করতে কোনও সূচক ইত্যাদি ব্যবহার করতে হবে।

আপডেট (নভেম্বর ২০১৪): আসন্ন ২.৮ রিলিজ (এটি লেখার হিসাবে ২.৮.০-আরসি0) এখন এই সেটিংটি টুইট করার অনুমতি দেয় যা নীচে:

db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: <limit in bytes>})

ডিফল্ট মান 32MiB (33554432 বাইট) এবং যত্ন সহকারে সামঞ্জস্য করা উচিত - বড় মেমরির ধরণের কারণে আপনার ডাটাবেসটি থামতে পারে (যার কারণে প্রথম স্থানে সীমা ছিল)।


"errmsg": "সেট করার জন্য কোনও বিকল্প খুঁজে পাওয়া যায় নি, সহায়তা ব্যবহার করুন: বিকল্পগুলি দেখতে সত্য"
মোহাম্মদ এফাজাতি

1
সম্ভবত আপনি এই উত্তরটির চেয়ে অনেক আলাদা সংস্করণ ব্যবহার করছেন, এটি বেশ কিছুদিন আগে লেখা হয়েছিল
অ্যাডাম সি

2

200K + রেকর্ডগুলি বাছাই এবং পৃষ্ঠাতে ছড়িয়ে দেওয়ার সময় আমি সমস্যার মধ্যে পড়েছিলাম। সবচেয়ে সহজ সমাধান হ'ল একটি সূচি যুক্ত করা (আপনি যে বৈশিষ্ট্যগুলি বাছাই করছেন তার জন্য)।

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