# پایگاه‌های داده > NoSQL >  ارور در ارزیابی پایگاه داده Cassandra

## kiani2012

سلام در زمان لود حدود 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 رکورد چه زمانی نیاز داشته که نتونسته در زمان تعیین شده لود بشه؟

----------


## مبین رنجبر

> سلام در زمان لود حدود 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

مورد سوم رو میشه بیشتر توضیح بدید؟

----------


## مبین رنجبر

> مورد سوم رو میشه بیشتر توضیح بدید؟


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

----------


## kiani2012

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


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

----------


## مبین رنجبر

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


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

----------


## kiani2012

خب سوال منم همینجاست در ارزیابی که من انجام دادم مثلا برای تعدادی رکورد ، مجموع زمان خواندن و نوشتن اون به 400 ثانیه هم رسیده ولی این ارور رو نداده
پس تکلیف این دو ثانیه چی میشه؟ من اینو میخوام متوجه بشم

----------

