CouchDB неожиданно завершает работу - PullRequest
6 голосов
/ 05 июля 2011

Сегодня я написал программу тестирования производительности для вставки данных и добавления вложений в couchdb. Программное обеспечение сервера - couchbase (который является оболочкой couchdb), а операционная система - Windows 2003 server. Программа разработана на C #, а драйвер couchdb - LoveSeat (который содержит некоторые http-методы для работы с couchdb). Данные довольно просты, но вложения не маленькие, около 70 КБ каждый. Было около 200 вложений, и я прикреплял их неоднократно. Я запустил 5 потоков в клиентской программе.

Все выглядело нормально, пока сервер couchdb неожиданно не завершил работу. На самом деле это был не первый раз, когда он разбился. Сначала я думал, что это из-за клиентской программы. Но в конце концов я обнаружил, что couchdb разбился. Я не думаю, что это было из-за данных или вложения. потому что я вставлял одни и те же данные и неоднократно добавлял одно и то же вложение. Программа без проблем запускалась около часа, пока не рухнула.

[Tue, 05 Jul 2011 11:00:19 GMT] [info] [<0.142.0>] 192.168.1.135 - - 'GET' /test/67366 200

[Tue, 05 Jul 2011 11:00:19 GMT] [info] [<0.108.0>] 192.168.1.135 - - 'GET' /test/7136 200

[Tue, 05 Jul 2011 11:00:19 GMT] [info] [<0.108.0>] 192.168.1.135 - - 'GET' /test/47306 200

[Tue, 05 Jul 2011 11:00:19 GMT] [info] [<0.108.0>] 192.168.1.135 - - 'GET' /test/27257 200

[Tue, 05 Jul 2011 11:00:19 GMT] [info] [<0.108.0>] 192.168.1.135 - - 'PUT' /test/7136/f?rev=1-334efd144dcdc52fd3a3a981dce4472f 201

[Tue, 05 Jul 2011 11:00:25 GMT] [error] [<0.145.0>] ** Generic server <0.145.0> terminating 
** Last message in was {pread_iolist,4294342003}
** When Server state == {file,{file_descriptor,prim_file,{#Port<0.3143>,1464}},
                              0,4295164786}
** Reason for termination == 
** {{badmatch,{ok,<<183,92,29,219,169,127,153,2,50,217,252,186,178,175,202,
                    144,215,209,191,69,109,230,227,154,114,174,173,157,231,
                    153,246,124,105,239,174,51,143,24,108,175,101,215,175,
                    221,35,99,53,124,108,109,249,112,202,29,85,87,81,176,94,
                    219,11,103,129,231,25,111,242,108,246,207,107,72,173,172,
                    57,246,195,16,236,79,243,134,211,93,131,218,180,93,240,
                    173,213,199,226,175,176,217,250,154,89,39,237,157,250,77,
                    173,151,156,139,248,106,85,21,134,253,85,234,108,85,208,
                    67,177,130,124,247,161,98,77,173,126,170,111,80,84,45,
                    212,201,72,149,90,138,252,89,23,85,165,252,105,187,191,
                    41,86,125,148,106,149,175,252,78,185,198,154,207,172,142,
                    148,101,83,140,99,222,102,26,41,131,206,132,221,31,74,3,
                    172,176,158,236,136,71,120,169,63,35,161,251,208,86,202,
                    1,95,208,25,51,76,250,100,182,177,122,31,91,230,249,214,
                    245,229,250,212,118,86,167,120,116,6,173,78,113,18,171,
                    143,215,191,38,207,51,92,150,10,10,83,164,98,154,181,157,
                    ......... a loooooot of numbers. 

Ответы [ 3 ]

2 голосов
/ 06 июля 2011

Я думаю, что нашел причину. Размер файла достиг 4 ГБ. Но согласно этой вики-странице , в выпуске Erlang / OTP R14B01 больше нет этой ошибки. Так что я думаю, что couchbase использует встроенную версию erlang / otp, предшествующую R14B01. (Я также установил автономный Erlang / OTP R14B03 на машину, но, похоже, он не использовался)

2 голосов
/ 06 июля 2011

Окончательный вывод:

couchbase 1.02 поддерживает НЕ файл данных размером более 4 ГБ на 32-разрядной машине Windows 2003.

предварительная версия для разработчиков couchbase 2.0 DOES поддерживает файл данных размером более 4 ГБ на 32-разрядной машине Windows 2003. Но, насколько я могу судить, версия 2.0 как минимум в 5 раз медленнее , чем версия 1.02.

couchdb 1.1 из эта ссылка DOES поддерживает файл размером более 4 ГБ на 32-разрядной машине Windows 2003. Но он такой же медленный , как и couchbase 2.0.

Couchdb слишком медленный для Windows (по крайней мере, в моем случае это медленно). Наконец, я попытался использовать mysql для хранения файлов. Mysql оказался в 8 раз быстрее! вставка вложения в couchdb занимает 650 мс, а значение для mysql - только 80 мс.

2 голосов
/ 05 июля 2011

Извините, у вас была эта ошибка. Могу ли я предложить разместить этот вопрос на форумах Couchbase? Наша команда поддержки контролирует тех, кто более пристально, чем SO: http://www.couchbase.org/forums/

...