Предложение о новых командах сервера
Пользователь:
Михайленко Илья (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 форматирований по одной записи. Т.е. выигрыш должен быть колоссальным.