Що таке файл CDB?
Файли CDB використовуються в критично важливих програмах, таких як електронна пошта. CDB розшифровується як «постійна база даних», швидкий, надійний і простий пакет для створення або читання постійних баз даних. Заміна бази даних безпечна проти системних збоїв. Користувачам не потрібно робити паузу під час перезапису. CDB працює як асоціативний масив (на диску), зіставляючи ключі зі значеннями, і дозволяє зберігати кілька значень в одному ключі.
Формат файлу CDB
Формат файлу CDB зберігає числа, зсуви, довжини та хеш-значення у форматі little endian як 32-розрядні цілі числа без знаку. Ключі та дані вважаються непрозорими байтовими рядками без спеціальної обробки. На початку бази даних заголовок фіксованого розміру представляє 256 хеш-таблиць, перераховуючи їхню позицію у файлі та довжину в слотах. Зазвичай дані зберігаються у вигляді послідовності записів, кожен запис зберігає довжину ключа, довжину даних, ключ і дані. Немає правил сортування чи вирівнювання. За записами слідує набір із 256 хеш-таблиць різної довжини. Оскільки нуль є дійсною довжиною, у базі даних може фізично зберігатися менше 256 хеш-таблиць, але нічого не вважається 256 таблицями. Хеш-таблиці складаються з серії слотів, кожен з яких містить хеш-значення та зсув запису. «Порожні слоти» мають нульове зміщення.
Структура
База даних CDB складається з цілого набору даних в одному комп’ютерному файлі. Він містить три частини:
- Заголовок фіксованого розміру
- Дані
- Набір хеш-таблиць.
Пошуки доступні лише для точних ключів. Пошуки діють за таким алгоритмом:
- Хеш ключ.
- Визначте, у якій хеш-таблиці та слоті має бути розташований цей запис.
- Перевірте вказаний слот у хеш-таблиці.
Для пошуку ключів із кількома значеннями додаткові значення можна знайти, просто продовживши пошук у наступному слоті.
Особливості
Структура бази даних CDB забезпечує кілька функцій:
Швидкий пошук
Успішний пошук у величезній базі даних зазвичай вимагає лише двох звернень до диска, а невдалий – лише одного.
Низькі накладні витрати
База даних використовує 2048 байт, 24 байти на запис і простір для ключів і даних.
Без випадкових обмежень
CDB може керувати будь-якою базою даних розміром до 4 гігабайт. Оскільки інших обмежень немає, записи навіть не повинні поміщатися в пам’ять. Бази даних зберігаються в машинно-незалежному форматі.
Швидка атомарна заміна бази даних
Команда cdbmake може переписати всю базу даних на два порядки швидше, ніж інші пакети хешування.
Швидкі дампи бази даних
cdbdump може друкувати вміст бази даних у форматі, сумісному з cdbmake.