СПОСОБ И УСТРОЙСТВО ДЛЯ СОХРАНЕНИЯ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ ХЭШИРОВАНИЯ

1. Способ сохранения данных с использованием хэширования, характеризующийся тем, что включает:
предварительное конфигурирование базовых модулей хранения в количестве L и задающего соотношения между идентификаторами базовых модулей хранения и операцией модуля по L, причем L представляет собой натуральное число больше 1;
вычисление ключевого значения данных, сохраняемых с использованием хэширования;
осуществление операции модуля по L над полученным ключевым значением и, используя задающее соотношение между идентификаторами базовых модулей хранения и операцией модуля по L, вывод ключевого значения в операции модуля по L и соответствующих данных в базовый модуль хранения с соответствующим идентификатором базового модуля хранения;
определение того, что предварительно сконфигурированная таблица хэширования в базовом модуле хранения не содержит подлежащих сохранению данных, и сохранение подлежащих сохранению данных и соответствующего ключевого значения.
2. Способ по п.1, отличающийся тем, что определение того, что предварительно сконфигурированная таблица хэширования в базовом модуле хранения не содержит подлежащих сохранению данных, и сохранение подлежащих сохранению данных и соответствующего ключевого значения дополнительно включает:
последовательное определение того, хранит ли предварительно сконфигурированная таблица хэширования базового модуля хранения ключевое значение, соответствующее подлежащим сохранению данным; в случае, когда такое ключевое значение отсутствует, сохранение ключевого значения и соответствующих данных в таблице хэширования; а в случае, когда такое ключевое значение имеется, сравнение данных, сохраненных в таблице хэширования, с данными, соответствующими ключевому значению;
определение того, что данные, сохраненные в таблице хэширования, не совпадают с данными, соответствующими ключевому значению; установка флага конфликта для данных, сохраненных в таблице хэширования; и добавление предварительно заданного шагового значения к ключевому значению; и
определение того, что количество добавлений шагового значения не превышает предварительно заданное пороговое значение; и повтор шага последовательного определения того, хранит ли предварительно сконфигурированная таблица хэширования базового модуля хранения ключевое значение, соответствующее подлежащим сохранению данным.
3. Способ по п.2, отличающийся тем, что после умножения предварительно заданного шагового значения на количество добавлений и осуществления операции модуля над результатом умножения на количество базовых модулей хранения остаток операции модуля равен 0.
4. Способ по любому из пп.1-3, отличающийся тем, что количество базовых модулей хранения изменяют каждый раз путем удвоения.
5. Способ по любому из пп.1-3, отличающийся тем, что дополнительно включает:
получение ключевого значения, соответствующего запросу обращения, на основе запроса обращения;
осуществление операции модуля над полученным ключевым значением по количеству базовых модулей хранения, и, на основе задающего соотношения между идентификаторами базовых модулей хранения и операции модуля по L, получение базового модуля хранения, соответствующего ключевому значению; и
осуществление поиска в таблице хэширования базового модуля хранения с целью получения данных, к которым нужно обратиться.
6. Способ по п.5, отличающийся тем, что получение ключевого значения, соответствующего запросу обращения, дополнительно включает:
получение запроса обращения;
определение того, содержит ли запрос обращения данные или идентифицированное ключевое значение;
когда запрос обращения содержит данные, вычисление ключевого значения, соответствующего данным обращения; и использование ключевого значения в качестве ключевого значения, соответствующего запросу обращения; а
когда запрос обращения содержит идентифицируемое ключевое значение, использование идентифицированного ключевого значения в качестве ключа, соответствующего запросу обращения.
7. Способ по п.6, отличающийся тем, что когда запрос обращения содержит данные, поиск в таблице хэширования базового модуля хранения с целью получения данных, к которым нужно обратиться, дополнительно включает:
осуществление поиска в таблице хэширования с целью определения того, что таблица хэширования содержит ключевое значение, соответствующее данным обращения;
определение, имеют ли сохраненные данные, соответствующие ключевому значению, установленный флаг конфликта; когда сохраненные данные не имеют флаг конфликта, возврат сообщения об успешном обращении, содержащего сохраненные данные, соответствующие ключевому значению; а когда сохраненные данные имеют установленный флаг конфликта, добавление предварительно заданного шагового значения к ключевому значению, соответствующему данным обращения;
определение того, что количество добавлений предварительно заданного шагового значения не превышает предварительно заданное пороговое значение; и повтор шага поиска в таблице хэширования с целью определения того, что таблица хэширования содержит ключевое значение, соответствующее данным обращения.
8. Способ по п.6, отличающийся тем, что когда запрос обращения содержит данные, поиск в таблице хэширования базового модуля хранения с целью получения данных, к которым нужно обратиться, дополнительно включает:
осуществление поиска для определения того, содержит ли таблица хэширования идентифицированное ключевое значение; и
когда таблица хэширования содержит идентифицированное ключевое значение, возврат сообщения об успешном обращении, содержащего сохраненные данные, соответствующие идентифицированному ключевому значению.
9. Устройство для сохранения данных с использованием хэширования, характеризующееся тем, что содержит множество базовых модулей хранения; модуль хранения задающего соотношения, модуль вычисления ключевого значения и блок операции модуля, причем:
модуль хранения задающего соотношения выполнен с возможностью сохранения задающего соотношения между идентификаторами базовых модулей хранения и операцией модуля по L, где L представляет собой количество базовых модулей хранения;
модуль вычисления ключевого значения выполнен с возможностью вычисления ключевого значения подлежащих сохранению данных с использованием алгоритма хэширования и вывода ключевого значения в блок операции модуля;
блок операции модуля выполнен с возможностью осуществления операции модуля над полученным ключевым значением по количеству базовых модулей хранения, с возможностью получения из модуля хранения задающего соотношения и на основе остатка операции модуля идентификатора базового модуля хранения, заданного остатком операции модуля, и с возможностью вывода ключевого значения в операции модуля и соответствующих данных в базовый модуль хранения с соответствующим идентификатором; и
базовый модуль хранения выполнен с возможностью определения того, что предварительно сконфигурированная таблица хэширования не содержит подлежащих сохранению данных и последующего сохранения подлежащих сохранению данных и соответствующего ключевого значения.
10. Устройство по п.9, отличающееся тем, что базовый модуль хранения содержит оперативное запоминающее устройство, флеш-память, стираемое и перезаписываемое запоминающее устройство или жесткие диски.
11. Устройство по п.9, отличающееся тем, что базовый модуль хранения содержит блок поиска ключевого значения, блок хранения таблицы хэширования, блок сравнения данных и блок обработки конфликтов ключей, причем
блок поиска ключевого значения выполнен с возможностью последовательного определения того, хранит ли таблица хэширования ключевое значение, соответствующее подлежащим сохранению данным; с возможностью вывода ключевого значения и соответствующих данных в блок хранения таблицы хэширования для сохранения, когда таблица хэширования не хранит ключевое значение, соответствующее подлежащим сохранению данным; и с возможностью вывода ключевого значения и соответствующих данных в блок сравнения данных, когда таблица хэширования хранит ключевое значение, соответствующее подлежащим сохранению данным;
блок сравнения данных выполнен с возможностью сравнения полученных данных с данными, сохраненными в таблице хэширования; с возможностью отказа от дальнейшей обработки, когда полученные данные совпадают с данными, сохраненными в таблице хэширования; и с возможностью установки флага конфликта для сохраненных данных и вывода ключевого значения в блок обработки конфликтов ключей, когда полученные данные не совпадают с данными, сохраненными в таблице хэширования; и
блок обработки конфликтов ключей выполнен с возможностью добавления предварительно заданного шагового значения к полученному ключевому значению и определения того, превышает ли количество добавлений предварительно заданного шагового значения к ключевому значению предварительно заданное пороговое значение; с возможностью отказа от дальнейшей обработки, когда количество добавлений превышает предварительно заданное пороговое значение; и с возможностью вывода ключевого значения с добавленным шаговым значением в блок поиска ключевого значения, когда количество добавлений не превышает предварительно заданное пороговое значение.