Мы используем MarkLogic 9.0.8.2
Мы настроили кластер MarkLogic, проглотили около 18 миллионов XML-документов, создали несколько индексов, таких как Fields, PathRange и так далее.
Теперь при настройке другой среды с конфигурацией, индексами, таким же количеством записей, но я не могу понять, почему общий размер на странице состояния базы данных отличается от предыдущей среды.
Итак, я начал сравнивать страницу состояния базы данных обоих кластеров, где я могу увидеть размер каждого леса/леса-реплики и все такое.
Итак, в этом случае я хотел бы знать размер для каждого
Также хотелось бы знать (вместо того, чтобы расширять каждый через интерфейс администратора) общие индексы в данной базе данных.
Опция в интерфейсе администратора ИЛИ через xQuery также подойдет.
MarkLogic не разбивает размеры индексов отдельно от размера базы данных. Одна из причин этого заключается в том, что данные хранятся вместе с Универсальный индекс.
Вы можете приблизить размер других индексов, создавая их по одному и проверяя размер до и после запуска переиндексатора, а удаленные фрагменты — объединены. Обычно мы не находим особых преимуществ в попытках определить точные размеры индексов, поскольку преимущества, которые они обеспечивают, обычно перевешивают стоимость хранения.
Трудно сказать точно, почему существует несоответствие размеров. Одной из распространенных причин может быть количество удаленных фрагментов в каждой базе данных. Удаленные фрагменты — это части данных, которые были помечено на удаление (обычно из-за обновления, удаления или другого изменения). Удаленные фрагменты будут продолжать занимать место в базе данных до тех пор, пока они не будут объединены. Это происходит по умолчанию или может быть запущено вручную на уровне леса или базы данных.
Размер базы данных и настроенные индексы можно определить с помощью пользовательского интерфейса администратора, консоли запросов (QConsole) или конечных точек MarkLogic REST Management API (RMA). QConsole поддерживает ряд языков, но наиболее распространенными являются серверный Javascript и XQuery. RMA может возвращать результаты в формате XML или JSON.
Размер базы данных:
Настроенные индексы:
for $db-id in xdmp:databases()
let $db-name := xdmp:database-name($db-id)
let $db-size :=
fn:sum(
for $f-id in xdmp:database-forests($db-id)
let $f-status := xdmp:forest-status($f-id)
let $space := $f-status/forest:device-space
let $f-name := $f-status/forest:forest-name
let $f-size :=
fn:sum(
for $stand in $f-status/forest:stands/forest:stand
let $stand-size := $stand/forest:disk-size/fn:data(.)
return $space
)
return $f-size
)
order by $db-size descending
return $db-name || " = " || $db-size