ТЗ: хранилище строк

!Иван FXS
На сайте с 16.11.2001
Offline
119
1596

Здравствуйте, коллеги.

Я сичтаю, что этот постер имеет некоторое отношение к теме Форума.

Если Модератор считает иначе - мое глубокое сорри...

---------------------------------------------------------

Общая задача: нужна система (=технология) хранения на диске

произвольных строк (произвольной длины), которая позволяла бы

получать строку по ее целочисленному коду.

Критерии качества (в порядке убывания значимости):

1. Минимальная средняя скорость получения строки.

2. Наиболее компактное хранилище.

3. Минимальная средняя скорость занесения в хранилище новой строки.

4. Очень желательно, чтобы все символы (ASCII) распознавались

(т.е. «отождествление» символов не приветствуется). Как оказывается,

для некоторых технологий это – существенное препятствие.

5. Очень желательно, чтобы никакие символы в конце строки (например,

пробелы ) не игнорировались. Как оказывается, для некоторых

технологий это – существенное препятствие.

6. По умолчанию предполагается, что технология должна быть

реализована как dll.

7. По умолчанию предполагается, что требуемое системе множество

целочисленных кодов более менее компактно. Конкретно:

безосновательный выход за приделы целочисленного типа Long – очень

сильно не приветствуется.

8. Если между «сеансами» активной работы программе будет необходимо

дополнительно работать для повышения качества по пунктам 1-3, - это

не вызывает особых возражений. Однако ресурсы, необходимые под

такую «оптимизацию» не должны быть чрезмерны.

9. «Сегментация» хранилища, то есть эффективное хранение в одном

файле нескольких массивов строк, различаемых по значению

дополнительного ключа, - не возбраняется, но и не считается особым

достоинством.

10. Шифрование … ну это Вас, батенька, уже понесло …

Некоторые соображения: слово «среднее» в 1-м и 3-м критерии означает

усреднение по конкретному реальному массиву строк, которые придется

обрабатывать. Это означает, что программа должна быть способна «пере-

оптимизировать» свое хранилище в случае существенного

изменения «тематики» («словаря») обрабатываемых слов. Однако – в этом

случае – целочисленные коды однажды уже занесенных в хранилище строк

ни в коем случае не должны меняться. Понятно, что на такую «пере-

оптимизацию» будут способны только «активные» решения, то есть такие,

которые не просто принимаю и отдают строки, но и ведут какую никакую

статистику своей работы.

-----------------------------------------------------------------

Может кто-нибудь предложить решение (готовое?) этой задачи?

НП, Иван FXS

I
На сайте с 15.12.2000
Offline
80
#1

Berkeley DB

Илья

А вообще, топику место в разделе "Поисковые технологии".

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий