Как очистить неиспользуемое пространство в фусеки

#sparql #fuseki

Вопрос:

Наблюдалось поведение, связанное с fuseki, при котором даже после удаления графиков из набора данных fuseki (с помощью команды DROP GRAPH) фактический размер папки «запуск/базы данных» не уменьшается. Недавно прочитал о механизме резервного копирования и восстановления для решения этой проблемы и просто хотел узнать, доступен ли для этого какой-либо альтернативный подход. Кроме того, эта проблема с размером возникает в версиях fuseki 3x? Я наблюдал это в версии fuseki 2.4.0.

Заранее спасибо!

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

1. это зависит от выбранной вами версии базы данных TDB1 или TDB2, но таблица узлов не обрезается непосредственно во время УДАЛЕНИЯ. Таким образом, перезагрузка данных приведет к наиболее компактному использованию дискового пространства. Например tdbloader2 , создается очень компактное дерево B , более поздние изменения делают его более фрагментированным на диске. Кстати, последняя версия есть 4.2.0

2. Похоже, у меня та же проблема, моя бд с 2.3 была на 50 ГБ, а затем я перезагрузился в 4.3, и она выросла до 180 ГБ

Ответ №1:

Этот ответ относится к текущему Apache Jena Fuseki — версии 4.2.0.

В TDB2 есть инструмент уплотнения (запускайте его только тогда, когда Fuseki не запущен). tdb2.compact

Или, в зависимости от вашей настройки, curl -XPOST http://server:port/$/compact/lt;datasetnamegt; будет компактировать базу данных на работающем сервере.

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

1. Спасибо @AndyS — уплотнение помогло мне уменьшить размер базы данных. Теперь у меня есть две базы данных: компактная, которая работает, и другая, которая больше не будет использоваться и может быть удалена. Итак, каждый раз, когда я выполняю компактную операцию, нужно ли мне удалять старую папку базы данных вручную или у нас есть какая-либо команда, чтобы позаботиться об этом удалении? Кроме того, я обновил fuseki с версии 2x до версии 4x и наблюдал, как каждая операция обновления (включая команду DROP GRAPH) постепенно увеличивает размер базы данных. Могу я узнать, почему это происходит в 4-кратной версии, а не в 2-кратной ?

2. Это происходит во всех версиях. Не могу объяснить, почему вы не видели его в версии 2.4.0, если только эта версия не предоставляла полные функции транзакций (2.4.0 была давным-давно). Вы можете удалить старую базу данных или заархивировать ее и удалить. (В MS windows это не освободит дисковое пространство полностью из-за долгосрочной проблемы Java/Windows в JDK.)

3. Я получаю сообщение об ошибке при запуске завиток -XPOST сервер:порт/$/компактный/lt;datasetnamelt; span=»»gt;gt; на 4.3: :: задачи : 1 : компактный 19:01:54 информация о сервере :: [Задание 1] начало : компактный 19:01:54 информация компактный :: [33772] gt;gt;gt;gt; начало компактный /ДС 19:01:58 предупредить компактный :: [33772] **** исключение в компактный орг.Апачи.йена.tdb2.TDBException: NodeTableTRDF/Читать

4. Недостаточно отображения ошибок и трассировки стека. Посмотрите на дорожку стека в поисках «вызвано». Их может быть несколько, последний, самый дальний, обычно наиболее релевантный.

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