Есть ли эффективный способ получить узел по ключу (лучше, чем линейное хеширование или btree)? - PullRequest
1 голос
/ 13 октября 2010

Я ищу эффективный алгоритм для хранения и извлечения данных по ключу. Я уже читал о линейном динамическом хэше Литвина и других методах, но все же мне интересно, есть ли способ получить (найти, вычислить) ключ в ОЧЕНЬ большом двоичном файле (рассмотрим более 100 ГБ)?

Мне просто любопытно, есть ли ЛЮБОЙ алгоритм, который работает без снижения производительности:)

как было задано, пример ключа: значение здесь:

ключ: хэш sha1 (20 байтов необработанных данных - индексирование и извлечение выполняется этим ключом)

значение: байты [100] всегда.

Ответы [ 2 ]

0 голосов
/ 15 октября 2010

как насчет первого 1) создания дерева B plus из значений ключей (оно будет служить для проблемы с хранением), а затем 2) с использованием растрового изображения, созданного из ключей, для ускорения поиска.

0 голосов
/ 14 октября 2010

Ну, как уже говорилось ранее, 100 ГБ мало что делают.Возможно, пример того, как ключевые: значения могут дать лучшие подсказки.Но, сказав это, вы можете взглянуть на некоторые отличные реализации с открытым исходным кодом в этом отношении.

  1. HBase - реализация Google с открытым исходным кодомBigTable.
  2. Кассандра - взгляд Facebook на эту тему.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...