четверг, 14 июня 2012 г.

Обойти 1000000 звёзд и не упасть.

В предыдущем посте написал, что при попытке индексирования 1000000 элементов у меня падала БД BaseX. Теперь выяснил почему.
Итак, напомню ситуацию. Есть 1000000 записей в Native-XML базе данных. Попытка добавить к ним аттрибут

for $i in collection('stars')/csv/record
return insert node (attribute {'id'} {generate-id()} ) into $i

привела к зависанию, а иногда к падению. Пообщавшись с разработчиками выяснил, что по стандарту update обязан скешировать все операции. На миллион значений тупо не хватало памяти. Обещали в будущем уменьшить её расход.

Ради интереса протестировал на Sedna - в итоге так и не дождался результата. Но тут скорей всего просто выполнение запроса тормозит.

Комментариев нет:

Отправить комментарий