PDA

View Full Version : ارور در ارزیابی پایگاه داده Cassandra



kiani2012
دوشنبه 28 دی 1394, 16:44 عصر
سلام در زمان لود حدود 1000000 رکورد در فریم ورک YCSB با ارور Timeout برخورد کردم:
com.datastax.driver.core.exceptions.WriteTimeoutEx ception: Cassandra timeout during write query at consistency ONE (1 replica were required but only 0 acknowledged the write)
این درحالیه که برای 512000 رکورد بدون مشکل عمل لود انجام شد من از کجا متوجه بشم که 1000000 رکورد چه زمانی نیاز داشته که نتونسته در زمان تعیین شده لود بشه؟

مبین رنجبر
دوشنبه 28 دی 1394, 18:12 عصر
سلام در زمان لود حدود 1000000 رکورد در فریم ورک YCSB با ارور Timeout برخورد کردم:
com.datastax.driver.core.exceptions.WriteTimeoutEx ception: Cassandra timeout during write query at consistency ONE (1 replica were required but only 0 acknowledged the write)
این درحالیه که برای 512000 رکورد بدون مشکل عمل لود انجام شد من از کجا متوجه بشم که 1000000 رکورد چه زمانی نیاز داشته که نتونسته در زمان تعیین شده لود بشه؟

نمی توان متوجه شد که چه زمانی نیاز است. ولی برای حل این مشکل می توان ۳ راه کار داد:

۱. افزایش مهلت نوشتن با افزایش مقدار write_request_timeout_in_ms در فایل cassandra.yaml
۲. افزایش فضای Heap جاوا با افزایش مقدار MAX_HEAP_SIZE در cassandra-env.sh
۳. ارسال دسته ای درخواست نوشتن( با استفاده از BatchStatement می توان به جای ارسال عمل نوشتن در یک درخواست،چند عمل نوشتن را در چند درخواست انجام داد).

kiani2012
دوشنبه 28 دی 1394, 20:35 عصر
مورد سوم رو میشه بیشتر توضیح بدید؟

مبین رنجبر
چهارشنبه 30 دی 1394, 18:28 عصر
مورد سوم رو میشه بیشتر توضیح بدید؟

البته اروری که به شما نمایش داده می شود مربوط به عملیات نوشتن می شود. متاسفانه فعلا استفاده از BATCH شامل دستور SELECT نمی شود و فقط می توان از آن برای عملیات INSERT, UPDATE, DELETE استفاده کرد. احتمال داره که یک باگ باشد و با تغییر نسخه کاساندرا به نسخه های بالاتر مشکل حل شود.

kiani2012
چهارشنبه 04 فروردین 1395, 11:09 صبح
نمی توان متوجه شد که چه زمانی نیاز است. ولی برای حل این مشکل می توان ۳ راه کار داد:

۱. افزایش مهلت نوشتن با افزایش مقدار write_request_timeout_in_ms در فایل cassandra.yaml
۲. افزایش فضای Heap جاوا با افزایش مقدار MAX_HEAP_SIZE در cassandra-env.sh
۳. ارسال دسته ای درخواست نوشتن( با استفاده از BatchStatement می توان به جای ارسال عمل نوشتن در یک درخواست،چند عمل نوشتن را در چند درخواست انجام داد).

سلام
پارامتر write_request_timeout_in_ms دقیقا برای چیه؟ مطمئنا زمان لازم برای یک "تک نوشتن" که نیست پس زمان لازم برای چه مقدار(چه تعداد) نوشتنه؟

مبین رنجبر
پنج شنبه 05 فروردین 1395, 09:17 صبح
سلام
پارامتر write_request_timeout_in_ms دقیقا برای چیه؟ مطمئنا زمان لازم برای یک "تک نوشتن" که نیست پس زمان لازم برای چه مقدار(چه تعداد) نوشتنه؟

بحث تعداد نوشتن اینجا مطرح نیست. تعداد می تواند یک یا چند باشد. این پارامتر مدت زمان صبر برای تکمیل شدن عملیات نوشتن است.

kiani2012
جمعه 06 فروردین 1395, 04:00 صبح
خب سوال منم همینجاست در ارزیابی که من انجام دادم مثلا برای تعدادی رکورد ، مجموع زمان خواندن و نوشتن اون به 400 ثانیه هم رسیده ولی این ارور رو نداده
پس تکلیف این دو ثانیه چی میشه؟ من اینو میخوام متوجه بشم