Тема: Немного о sc-хранилище

В результате длительных экспериментов, реализовали первую более менее стабильную версию sc-хранилища (sc - Semantic Code). По сути для хранения семантических сетей. Сейчас имеем не параллельную реализацию, которая имеет следующие характеристики:
- максимальное количество хранимых элементов: 2^32 = 4294967296
- скорость создания узлов: 5116188.644108 в секунду
- скорость создания узлов в смешанном режиме (узлы удаляются и создаются): 6404361.113744 в секунду
- скорость создания дуг: 1833769.525978 в секунду
- на каждый элемент не зависимо от его типа (дуга и ли узел) уходит 52 байта.
Итого на 2^32 элементов надо  ~208 Гб. При этом организована подгрузка и выгрузка неиспользуемых данных на жесткий диск и обратно. Скорость загрузки с диска ~19660800 элементов в секунду. Скорость выгрузки: 1572864 элементов в секунду.
Тестировали на ноутбуке с 4 Гб памяти, процессор Intel с частотой 1.4 ГГц 4 ядра (использовалось одно). На 30000000 элементов надо ~1.4521484375 Гб памяти.
Можно также хранить и бинарные данные. Но они хранятся на жестком диске, поэтому в расчеты по использованию памяти они не попадают.
Есть api, все написано на чистом си. Есть даже сетевой протокол работы с хранилищем (в процессе доработки). Не используем реляционные БД, все свое. В планах добавить многопоточность + GPU, далее расширить систему до 2^64 элементов и сделать её распределенной.

Соизмеримы ли эти данные с имеющимися rdf хранилищами. И интересны ли работы в этом направлении кому-нибудь?

2

Re: Немного о sc-хранилище

RDF СУБД сравниваются по таким параметрам как скорость ответов на запросы (бенчмарки BSBM, BSBM BI, SP2B, DBPedia SPARQL), скорость первоначальной загрузки (bulk loading, kTriples per sec), и скорость обновлений (e.g. BSBM Update).

Если Ваша система может выполнять эти операции, то возьмите стандартные бенчмарки и прогоните. Но судя по тому, что вы меряете производительность в неких узлах и элементах, сравнение с RDF DB смысла особого не имеет. Возможно стоит сравнивать с графовыми СУБД.

Re: Немного о sc-хранилище

Не понимаю почему нельзя меряться с RDF СУБД, цели то общие.
А то что надо на скорость ответов это ясно.

4

Re: Немного о sc-хранилище

DenisKoronchik пишет:

В планах добавить многопоточность + GPU, далее расширить систему до 2^64 элементов и сделать её распределенной.

Это называется "всё выкинуть и написать с нуля".

Без бенчмарок сказать "нужно кому" или "не нужно" достаточно тяжело.

Re: Немного о sc-хранилище

iv_an_ru пишет:
DenisKoronchik пишет:

В планах добавить многопоточность + GPU, далее расширить систему до 2^64 элементов и сделать её распределенной.

Это называется "всё выкинуть и написать с нуля".
Без бенчмарок сказать "нужно кому" или "не нужно" достаточно тяжело.

Ну не выкинуть, под наши нужды реально ничего нет. Нам важно еще отслеживать различные события и сами программы - семантическая сеть, а их надо интерпретировать, вот и нужна специализированная штука.

Что касается бенчмарков, то думаю скоро сможете и сами опробовать.