Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Предложение о новых командах сервера
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 05, September, 2007 10:08

Созрело предложение на две дополнительные команды сервера :)

1. Команда, ответом на которую была бы информация о текущей ВЕРСИИ сервера. А то приходится пользователям во всех скриптах версию руками прописывать что бы сказать скрипту на какой версии он работает. В ответе хотелось бы иметь следующую информацию:
- Основная версия сервера (напр. "2007.1.D2"), где D2 означает второе обновление версии 2007.1
- Имя на которое зарегистрирован сервер // Это позволит привязывать внешние разработки к лицензии на сервер. Т.е. у внешних разработчиков появится возможность проверять лицензионность текущего сервера.
- Кол-во возможных подключений всего.
- кол-во используемых в данное время подключений (кроме читательских).
- кол-во читательских подключений.


2. Хотелось бы получить возможность группового чтения записей. Сейчас (на сколько я в курсе) для чтения записи (вместе с ее версией) есть команда 'C'. Однако, она позволяет прочитать только одну запись за одну команду. Соответственно, при попытке прочитать, к примеру, 450 000 записей подряд (последовательно) приходится вызывать эту функцию 450 тыс. раз.
При этом скорость отработки этой команды сервером включая время приема и пересылки ответа (клиент и сервер на одном и том же ПК) составляет порядка 66мс. Т.е. суммарное время, затрачиваемое только на чтение для клиента составит порядка 8 часов 15 минут. Это грустно :( При этом вполне понятно, что основные затраты времени у сервера уходят на создание дочернего процесса, открытие файлов БД и отправку ответа через сетевое соединение (включая таймауты при создании соединения).
Так вот само предложение: создать функцию, аналогичную функции 'C', но принимающую в качестве параметра еще и количество запрашиваемых записей. Соответственно, возвращает несколько записей. (включая их лидеры).
Это позволило бы при последовательном чтении записей читать не по одной записи, а, к примеру, по 100-1000 записей одновременно. Думаю, выигрыш в скорости при этом будет сравним с выигрышем, который получаем когда форматируем сразу 1000 записей за одну комманду по сравнению с вызовом 1000 форматирований по одной записи. Т.е. выигрыш должен быть колоссальным.

Re: Предложение о новых командах сервера
Пользователь: Constantin (IP-адрес скрыт)
Дата: 01, October, 2007 10:24

1. СОздание такой команды возможно
2. Групповое чтение можно организовать через команду группового форматирования

Re: Предложение о новых командах сервера
Пользователь: Михайленко Илья (IP-адрес скрыт)
Дата: 01, October, 2007 10:48

Константин, а разве возможно командой форматирования получить в том числе и лидеры записей? А логически/физически удаленные как при этом получить (Хотя, лог и физ удаленные можно получить через набор админских команд - это не так критично)? А версию записи (что бы узнать - менялась запись или нет)?
У меня не получилось придумать как это сделать :( Может, просто не могу увидеть такой возможности через команду форматирования? Подскажите?
Задача - последовательный просмотр всей или части БД. При этом лидеры нужны для определения версии и статуса записи (лог удал/физ удален).
А как получить текщую ВЕРСИЮ записи при использовании команды поиска? Может, unifor есть такой?
В общем, ломаю голову над этим уже несколько недель...
PS. Не пробовал еще - только идея в голову пришла: выполнение поиска состоящего из одного символа $ вернет все записи базы?

Re: Предложение о новых командах сервера
Пользователь: Constantin (IP-адрес скрыт)
Дата: 01, October, 2007 16:45

используйте специальный формат &unifor('+0')
статус записи возвращается во второй строке



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.