ICQCorp
Навигатор О проекте Новости Ссылки Установка ФАКи Скриншоты Благодарности Документы PostgreSQL Скачать Об авторе Гостевая книга Russian English Проект IServerd

Таблица fragment_storage

Назначение таблицы:

Данная таблица используется сервером для сборки фрагментированных пакетов от клиента. Фрагмент по получению записывается в large object (LO), и в таблицу заносится запись, содержащая общее число пакетов, номер последовательности, и идентификатор объекта LO. Таблица постоянно проверяется на наличие полного комплекта всех фрагментов специальным процессом - defragmenter-ом, собранные пакеты вставляются в межпроцессный канал и затем обрабатываются как обычно.

Список полей таблицы:

 Название   Тип    Расшифровка    Описание поля
 uin    float8    uin number   Номер пользователя клиента,
пославшего пакет
 seq    int4    sequence number   Уникальный идентификатор данного набора фрагментов
 prt_num    int2    part number   Номер фрагмента в последовательности уникален для каждого набора
 prt_cnt    int2    part count   Число фрагментов в наборе одинаков для всего набора
 len    int2    length   Длина данного фрагмента используется только для контроля
 frg    int4    frg LO_OID   Идентификатор объекта с фрагментом используется для чтения/удаления
 frgtime    int8    fragment time   Время добавления данного фрагмента используется для чистки таблицы

Создание таблицы:

Таблица создается сервером или утилитой при помощи запроса SQL. Прототип запроса находится в модуле database\init_db.h


CREATE TABLE Fragment_storage (uin float8, seq int4, prt_num int2, prt_cnt int2, len int2, frg int4, frgtime int8);

Таблица содержит три индекса на поля uin, prt_num, seq для ускорения работы запросов. Индексы создаются следующим образом:


CREATE INDEX frg_uin ON Fragment_storage (uin);
CREATE INDEX frg_prt ON Fragment_storage (prt_num);
CREATE INDEX frg_seq ON Fragment_storage (seq);



Примечание:

Перед удалением записи из таблицы сначала удаляется ассоциированный с ней LO с фрагментом. Таблица периодически очищается для освобождения дискового пространства. При очистке удаляются поля, разность между значением которых и текущим временем больше 120 секунд (максимальный таймаут протоколов)

Описание  ] Установка  ] Спасибо(а)  ] Скрины  ] Постгрес  ] Скачать  ]
Новости  ] ФАКи  ] Автор  ] Ссылки  ] Документы  ] Отзывы  ]
Webmaster
А.В.Шутко