почему я не могу использовать HashMap для сохранения ключа HBase и соответствующего адреса, поэтому сложность времени чтения составляет O (1)? - PullRequest
0 голосов
/ 06 ноября 2019

Я знаю, что в настоящее время СУБД использует B-Tree, и время доступа к случайному ключу равно O (log (n)). И HBase использует отсортированные ключи, а время доступа также равно O (log (n)). (потому что он использует бинарный поиск?)

Возможно, глупо спрашивать об этом, но мне интересно, почему я не могу использовать HashMap для сохранения ключа базы данных и соответствующего адреса диска, чтобы сложность времени чтения была O (1)?

Возможная причина, о которой я подумал: 1. Она слишком велика, чтобы сохранить хэш-карту в памяти. но мы можем использовать несколько машин для сохранения? а также можно сохранить хэш-карту на диске?

будет признателен за любую идею!

1 Ответ

0 голосов
/ 08 ноября 2019

HBase - это O (log (n)), а не O (1) из-за его распределенной природы. Данные могут находиться на любом сервере региона в любом регионе, это означает, что каждый регион должен проверять, содержит ли он ключ, проверяя, является ли ключ частью диапазона региона.

...