কীভাবে আমি লাইভ ড্রুপাল 7 সাইটে প্রতি ঘন্টা নোড আপলোড করতে পারি এবং ডেডলকগুলি এড়াতে পারি?


9

খুব বেশি দিন আগে আমি এখানে অচলাবস্থার বিষয়ে লিখেছিলাম: PDOException: SQLSTATE [40001]: সিরিয়ালাইজেশন ব্যর্থতা: 1213 লক পাওয়ার চেষ্টা করার সময় ডেডলক পাওয়া গেছে;

আমার উন্নয়ন দল চেষ্টা করার চেষ্টা করেও আমরা এখনও এর মতো ত্রুটি পেয়েছি:

PDOException: SQLSTATE [40001]: সিরিয়ালাইজেশন ব্যর্থতা: 1213 লক পাওয়ার চেষ্টা করার সময় ডেডলক পাওয়া গেছে; পুনঃসূচনা পুনরায় চালু করার চেষ্টা করুন: INSERT INTO {অবস্থান_instance} (nid, vid, uid, জেনিড, idাকনা) VALUES (: db_insert_ placeholder_0,: db_insert_ placeholder_1,: db_insert_ placeholder_2,: db_insert_ placeholder_3,: db_in__1) অ্যারে ([: db_insert_ placeholder_0] => 1059 [: db_insert_placeholder_1] => 1059 [: db_insert_ placeholder_2] => 0 [: db_insert_ placeholder_3] => সিসি: ফিল্ড_লাইট_লোকেশন: 1059 [: db_insert_ place_loclocation]>> এর অবস্থান => /var/www/website.com/sites/all/modules/location/location.module)।

এই উদাহরণে নির্দিষ্ট সারণী সত্ত্বেও, আমরা অন্যান্য টেবিলে এই ত্রুটিটি পাই get

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

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

তবে এটি আমার কমবেশি প্রশ্ন - ড্রুপাল কীভাবে এই ধরণের বোঝা পরিচালনা করতে পারে? কীভাবে আমি এ জাতীয় ক্রিয়াকলাপ পরিচালনা করতে সক্ষম হতে পারি আমার কাজের প্রবাহকে? এটি কি একটি দ্রুপাল সমস্যা? একটি ডাটাবেস ইস্যু?

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


সেখানে বড় ডেটা সেটটি আমদানি করা সম্পর্কে একটি নিবন্ধ evolvingweb.ca/story/...
kalabro

এটার জন্য ধন্যবাদ. এটি দেখতে খুব উত্সাহজনক যে তথ্যগুলির খণ্ডগুলি প্রায় তাত্ক্ষণিকভাবে আমদানি করা যেতে পারে। তবে, পৃথক ব্যবহারকারী নোড ফর্মগুলির মাধ্যমে তাদের নিজস্ব অ্যাকাউন্টের মাধ্যমে পোস্ট করার বিষয়টি সম্পর্কে কী বলা যায়? এই সমস্যাটি যখন আমি আরও খনন করি এবং খনন করি, তখন আমার মাথায় অলঙ্কারমূলক প্রশ্নগুলি বাড়তে শুরু করে, "দ্রুপাল কি এতো লাইভ ট্র্যাফিক পরিচালনা করতে পারে? যদি তা না হয় তবে কী লাভ?" আমদানিগুলি বাদ দিয়ে, আমাদের প্রায় ২০ জনের একটি দল রয়েছে যারা তাদের অ্যাকাউন্টের মাধ্যমে সাধারণত সামগ্রী যোগ করে চলেছে। দ্রুপাল কি 'নোড সেভ' সত্যিই কেবল একবারে ডেটা যুক্ত করে একসাথে 20 জন ব্যবহারকারীকে পরিচালনা করতে পারে?
নীল 928

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

উত্তর:


5

আমি স্ট্যানফোর্ড বিশ্ববিদ্যালয়ের হয়ে কাজ করি এবং একই রকম কাজ করে চলেছি। আমাদের নিয়মিতভাবে প্রায় 100,000+ নোড লোড করতে হয়। আমরা 2 বছর ধরে আমাদের নিজস্ব কাস্টম লোডিং কোডে কাজ করছি এখন পিসিএনটিএল_ফোরক ব্যবহার করে প্রক্রিয়াটি বেশ বড় করতে সক্ষম হয়েছি। আপনাকে কেবলমাত্র মনে রাখতে হবে কাঁটাচামচটি শুরু করার আগে সমস্ত সকেট সংযোগ বন্ধ করা। উদাহরণস্বরূপ আপনাকে মাইএসকিএল সংযোগ, মেমক্যাস সংযোগ এবং এমনকি মঙ্গো সংযোগটি বন্ধ করতে হবে। ড্রপাল স্বয়ংক্রিয়ভাবে নতুন সংযোগ তৈরি করবে যখন কারও অস্তিত্ব নেই। অচলাবস্থার সমস্যা হিসাবে আমরা এই সমস্যাটি সমাধান করে সক্ষম করেছিলাম innodb_locks_unsafe_for_binlog = 1


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

2

উত্তরটি হল: আপনার MySQL my.cnf ফাইলটি সঠিকভাবে কনফিগার করুন Config

এক সপ্তাহ ধরে গবেষণার পরে, আমি খুঁজে পেয়েছি যে ড্রুপাল 7 সত্যই এই অনেক সমবর্তী ইনপুট ট্র্যাফিক পরিচালনা করতে পারে।

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

http://groups.drupal.org/node/260938

বিশেষত, ডালিন সার্ভার চশমা এবং টেবিলের ধরণের উপর ভিত্তি করে বেস কনফিগারেশন ফাইলটি পেতে উইজার্ড ব্যবহার করার পরামর্শ দিয়েছিলেন। এটি ব্যবহারের পরে, আরও টুইট না করেও অচলাবস্থা বন্ধ হয়ে গেল। আপনি যদি এটি চেষ্টা করতে চান তবে এখানে উইজার্ডের একটি লিঙ্ক রয়েছে: https://tools.percona.com/wizard

কেউ যদি এটির সহায়ক বলে মনে হয় তবে আমি my.cnf ফাইলটি পোস্ট করে খুশি হব।

যদিও ডেডলক সমস্যাটি এখন আর কোনও সমস্যা নয় তবে আমরা এখন খুব ঘন ঘন এই ত্রুটিটি পাচ্ছি:

PDOException: SQLSTATE[42000]: Syntax error or access violation: 
1305 SAVEPOINT savepoint_1 does not exist: ROLLBACK TO SAVEPOINT savepoint_1; 
Array ( ) in file_usage_add() (line 661 of /var/www/website.com/includes/file.inc).

এটিও কি মাইএসকিএল কনফিগারেশন সমস্যা হতে পারে?


আমরা নিজেরাই সেই ত্রুটি দেখতে শুরু করছি। আপনি কি কখনও নিজের প্রশ্নের উত্তর খুঁজে পেয়েছেন?
ট্রিম্বলটডড

1

http://dev.mysql.com/doc/refman/5.0/en/innodb-deadlocks.html এই মাইএসকিএল পৃষ্ঠাটি যখন আপনার অচলাবস্থার মুখোমুখি হয় তখন কী করা উচিত ts

সূক্ষ্ম সুরে আপনার মাইএসকিএল কনফিগারেশন আপনাকে এই সমস্যাটি সমাধান করতে সহায়তা করবে।

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