среда, 16 марта 2011 г.

Предварительные данные по Firebird 3

Основные цели
- честная поддержка многопоточной мультипроцессорности с разделяемым кешем
- рефакторинг архитектуры для последующих версий

Гарантированно будет масштабируемый кеш страниц с межпоточными и межпроцессными блокировками

Поддержка разных версий ODS - в плагинах. А процесс лиснера уже будет подгружать нужную для базы реализацию движка.

Изменения в одс - флаг наличия мусора на странице, что ускорит его сборку.

Более подробный формат вывода плана выполнения запроса.
Стоимостной оптимизатор - гистограмма распределения данных, возможность автоматического сбора статистики, подробная информация по таблицам и индексам (кол-во записей страниц и т.п.)

SQL
  • Внешние процедуры функции и триггеры
  • PSQL функции
  • Пакеты аля Оракл
  • DDL триггеры
  • Оконные(аналитические) функции
  • Двунаправленные курсоры в PSQL
  • Парметризированные исключения
Безопасность
  • Аутентификация во внешних плагинах
  • Шифрование траффика
  • Юзеры в базе
  • Шифрование на уровне страниц
  • Группы пользователей
  • Права на DDL
Публичная альфа FB3 - в третьем квартале 2011 года

четверг, 24 февраля 2011 г.

Ограничение на количество генераторов в Firebird

24.02.2011 12:30, Vadim Mescheryakov пишет:
>
> Все работает норм. Конечно новые генераторы не создаются с той же частотой
> что и документы вводятся,
> Но по каждому виду дока, по каждому субъекту хозяйствования, раз в месяц
> создаются (нумерация в пределах месяца).
> Работает.
 
После создания 32К генераторов система может встать, там внутренний ID -
SMALLINT. И бекап-рестор не поможет, IIRC.
 
--
Дмитрий Еманов

пятница, 18 февраля 2011 г.

Файловый кеш Win64 и Firebird

На одном из наших серверов, после перехода на Win 2008 R2 64, стала забиваться память, на 100%, файловым кешем. Молча и стремительно. Топик обсуждения нашей ситуации.

Решилась проблема  помещением в автозапуск арийской утилитки
http://www.uwe-sieber.de/ntcacheset_e.html, которая просто дергает системную фукнцию, которая задает граничный размер кеша.

Но проблема это была не только наша, проскочило вот вчера в новостях (Firebird slow? Well, maybe it is Windows fault.) решение от самой MS http://support.microsoft.com/kb/976618/en-us

Понять логику того, почему это ограничение не устанавливается самой OS, пока не получилось.

понедельник, 14 февраля 2011 г.

От чего зависит скорость сетевой карты?

Выходит что чаще всего - от драйверов. И ведь можно на голову стать, пытаясь выяснять в чем проблема, при настройке системы...

http://blog.not-a-kernel-guy.com/2011/02/13/990
...
Пропускная способность выросла до 17 MByte/sec при полной загрузке процессора.
...
Приходящие пакеты отдавались NDIS-у не в том порядке, в каком они были приняты. С точки зрения TCP/IP это выглядело как потери пакетов. Драйвер протокола постоянно запрашивал повторную передачу «потерянных» пакетов, генерируя больший, чем нужно, траффик и сужая ширину TCP окна до минимума. Стоило поменять порядок пакетов в списке (три строчки в коде), скорость одного соединения выросла свыше 30 MByte/sec.

воскресенье, 13 февраля 2011 г.

У Delphi будет новый VCL?

Встретилась в блоге Ника Ходжеса интересная новость - разработчик http://www.ksdev.com/ вместе со своими наработками (VGScene, DXScene, or ImageFX) переходит в Embarcadero.

Похоже, после стольких лет, у Delphi наконец появится какой-то вариант векторного UI фреймворка.

пятница, 21 января 2011 г.

Как правильно заблокировать окно от перерисовки

Иногда это может понадобиться, если что-то активно добавляется, открывается и т.п.
Типичный способ, рекомендуемый первым, это вызов LockWindowUpdate. Что есть в корне неверно - в Майкрософт не очень удобно выбрали название функции.
http://www.transl-gunsmoker.ru/2010/12/lockwindowupdate_29.html
http://msdn.microsoft.com/en-us/library/dd145034%28v=vs.85%29.aspx

Правильный пример:
procedure SetWindowLock(AHandle: THandle);
begin
  SendMessage(AHandle, WM_SETREDRAW, 0, 0);
end;

procedure EndWindowLock(AHandle: THandle);
begin
  SendMessage(AHandle, WM_SETREDRAW, 1, 0);
  RedrawWindow(AHandle, nil, 0, RDW_ERASE or RDW_FRAME or
    RDW_INVALIDATE or RDW_ALLCHILDREN);
end;

Хитрость в том, что работает только RedrawWindow, а Invalidate нет.

UPD
На практике оказало не все так весело - окно просто прячется, а не перестает отрисовываться. У нас решилось точечным применением, только к изменяемым элементам - панелям, таб сетам и т.п.

среда, 19 января 2011 г.

Шифрация базы в Firebird и конкурентах

Вопросы о возможности каким-то образом защитить базу, когда ценность представляют данные в ней, звучат в конференциях Firebird достаточно часто.

И обычно ответы сделаны как под копирку - что мол 100%, надежного способа это обеспечить, если база доступна физически нет. Но вот что встретилось в firebird-architect:

Alex Peshkoff, Nov 10, 2010:
I've already mentioned - we have plans to implement line encryption in FB3.0 and may be page level encryption too. We have already decided that we provide interface for users' plugins to perform actual crypt operations.

Как я упоминал ранее в планах есть реализация линейного(?) шифрования в 3.0. Вероятно также шифрование на уровне страниц. Было решено, что реализовано это будет посредством плагинов с возможностью их самостоятельной реализации.


И краткий обзор, что есть у конкурентов:


MySQL
  • нет шифрования файла
  • есть защищенное соединение
http://dev.mysql.com/doc/refman/5.0/en/secure-connections.html

PostgreSQL
  • нет шифрования файла 
  • есть защищенное соединение

http://www.postgresql.org/docs/8.1/static/ssl-tcp.html
http://www.postgresql.org/docs/9.0/static/pgcrypto.html

MSSQL
  • есть шифрование файла
  • есть защищенное соединение
http://msdn.microsoft.com/en-us/library/bb934049%28v=SQL.100%29.aspx
http://msdn.microsoft.com/en-us/library/ms189067%28v=SQL.90%29.aspx

DB2
  • есть шифрование файла
  • есть защищенное соединение

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.admin.sec.doc/doc/c0005815.html

Oracle
  • есть шифрование файла 
  • есть шифрование полей
  • есть защищенное соединение
http://www.oracle.com/technetwork/database/options/advanced-security/index.html