Показать сообщение отдельно
  #7 (permalink)  
Старый 10.06.2023, 04:01
Аватар для webgraph
Профессор
Отправить личное сообщение для webgraph Посмотреть профиль Найти все сообщения от webgraph
 
Регистрация: 14.11.2014
Сообщений: 186

Сообщение от voraa Посмотреть сообщение
Вполне возможно, что это какое то дерево. Зачем такое? Может для экономии памяти, может для ускорения поиска.
Насколько я понимаю, это все работает в двоичном формате и алгоритмы их обработки написаны на компилируемых языках. И я сомневаюсь, что будет какая то экономия при реализации на интерпретируемом языке почти совсем не предназначенном для обработки двоичных данных.
Это дерево создано для проверки целостности данных и скорости поиска, равное O(log n).

Конкретно в их реализации используется встраиваемая база данных LevelDB от Google.

Более того, алгоритм построен на постоянном кодировании и декодировании данных. Т.е. каждый раз, когда нужно что-то прочитать из БД — идёт декодирование каждого узла дерева всех уровней его пути до значения (и самого значения). Они для этого используют собственный алгоритм кодирования LRP.

Данные только записываются для хранения в двоичном формате. При каждом запросе к БД для их поиска они декодируются. И когда находятся — также декодируются.

Поэтому, это действительно сделано для экономии памяти, для ускорения поиска, для проверки целостности данных. Хранение работает в кодированном двоичном формате, а при выполнении запросов и извлечении данных — всегда декодируется. Это означает, что обработка двоичных данных как таковых не происходит, потому что они каждый раз декодируются и уже происходит работа с декодированными данными.
Ответить с цитированием