Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Несложная специфическая БД для 200 млн записей.  [new]
nu88
Member [заблокирован]

Откуда:
Сообщений: 841
Нужно сохранить 200 млн 32-байтных ключей и соответствующих им счётчиков. В общем, это около 10 гигов данных. Находить любую запись за 100 мс, сохранять всю базу без ущерба для обращений к ней. Поддержка языка SQL не обязательна.

1. Могут такое делать бесплатные БД?
2. Что почитать, если идти путём написания своего велосипеда на С++? Спецы по алгоритмам есть, деревьям всяким и т.п.

Модератор:
кросспостинг это зло


Сообщение было отредактировано: 14 авг 09, 23:55
14 авг 09, 13:55    [7539358]     Ответить | Цитировать Сообщить модератору
 Re: Несложная специфическая БД для 200 млн записей.  [new]
Emery
Member

Откуда: Украина
Сообщений: 766
nu88
Нужно сохранить 200 млн 32-байтных ключей и соответствующих им счётчиков. В общем, это около 10 гигов данных. Находить любую запись за 100 мс, сохранять всю базу без ущерба для обращений к ней. Поддержка языка SQL не обязательна.

1. Могут такое делать бесплатные БД?
2. Что почитать, если идти путём написания своего велосипеда на С++? Спецы по алгоритмам есть, деревьям всяким и т.п.

Если дело только в этом, то вообще не нужно никаких баз данных. Можно, например, создать собственные файлы баз данных типа DBF с адресацией на 2^64 байт (8-ми байтный указатель) и работать с ними с помощью MMF технологии (файлами отображенными в память). Главное, научится эффективно строить индексные файлы типа CDX. Об этом в данном разделе есть моя статься «Алгоритм создания CDX файлов». Статья еще не закончена, так как остались не разгаданными еще несколько секретов Майкрософт, но все идет к тому, что их удастся «вычислить».
14 авг 09, 21:44    [7541771]     Ответить | Цитировать Сообщить модератору
 Re: Несложная специфическая БД для 200 млн записей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 52996
nu88
Нужно сохранить 200 млн 32-байтных ключей и соответствующих им счётчиков. В общем, это около 10 гигов данных. Находить любую запись за 100 мс, сохранять всю базу без ущерба для обращений к ней. Поддержка языка SQL не обязательна.
Можно взять библиотеку BerkeleyDB и попробовать создать одну хеш-организованную таблицу. Для гарантии фиксированного отклика разместить базу на RAM-disk. Это уже особенности не БД а конфигурации операционки. Не знаю как насчёт Windows но Линукс это позволяет.
Модератор: Тема перенесена из форума "Программирование".


Сообщение было отредактировано: 14 авг 09, 23:56
14 авг 09, 22:12    [7541794]     Ответить | Цитировать Сообщить модератору
 Re: Несложная специфическая БД для 200 млн записей.  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
один или несколько файлов, ключи организовать через хеш-функцию. возможно, кеширование файла средствами ОС или ram-disk.
100мс получить может быть сложно в сило того, что файл надо прочитать.
15 авг 09, 02:28    [7541999]     Ответить | Цитировать Сообщить модератору
 Re: Несложная специфическая БД для 200 млн записей.  [new]
Victor Metelitsa
Member

Откуда: Тюмень
Сообщений: 2559
Один из способов хранения данных таблиц в DB2 фактически является обычным массивом a la Pascal (т.е. с нижней и верхней границами) с числовыми индексами.

см. CREATE TABLE statement,

CREATE TABLE ...(...)...
ORGANIZE BY KEY SEQUENCE ORGANIZE BY KEY SEQUENCE column-name
STARTING FROM constant
ENDING AT constant

Specifies that the table is organized in ascending key sequence with a fixed size based on the specified range of key sequence values. A table organized in this way is referred to as a range-clustered table. Each possible key value in the defined range has a predetermined location in the physical table. The storage required for a range-clustered table must be available when the table is created, and must be sufficient to contain the number of rows in the specified range multiplied by the row size
15 авг 09, 11:26    [7542145]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить