Пора перегружать …

Что-то я увлекся и перестал следить за состоянием FB3.

FB3 Super Server Memory Leaks
За шесть дней набежало.

Релиз IBProvider v3.36

Выложено очередное обновление IBProvider — версия 3.36

Примечательно, что сегодня стукнуло 17 лет с начала разработки этой штуковины. Хорошо помню что и в каком (ужасном) виде было создано в первые дни.

Что касается новой версии, то за кулисами осталась безуспешная попытка создать «суперпровайдер», то есть DLL с самостоятельно живущими потоками. К сожалению, выгрузка DLL ведет себя непредсказуемым образом и не получается реализовать корректную остановку потоков.

Так что, все оставлено как было — после освобождения последнего COM-объекта в DLL прекращается любая фоновая активность.

Жаль.

Новый триал IBProvider [сборка 24718]

На сайт выгружена новая сборка IBProvider (3.36.0.24718), в которой сделано небольшое, но важное изменение — задействована системная функция DisableThreadLibraryCalls.

Это немного улучшает работу IBProvider в многопоточных процессах (провайдер сам по себе многопоточный), но говорит «до свидания» Windows 2000, в которой данная функция не поддерживается.

Поскольку последний раз про поддержку Windows 2000 спрашивали много лет тому назад, я думаю эта платформа уже не актуальна.

До кучи, раз уж провайдер попрощался с Windows 2000, я удалил проектные файлы для VS2008. С VS2005 я попрощался уже очень давно.

Visual Studio 2010 пока поддерживается — многие клиенты предпочитают сборки именно этой студии. По всей видимости из за Windows XP.

В настоящее время основным компилятором является VC14 (VS2015), а основное тестирование выполняется на 64-битных Windows 7 и Windows 10.

MSI инсталлятор для Free IBProvider

Free IBProvider теперь, как и основные версии (Prof, Lite), распространяется в виде MSI-пакета.

Вести с полей

Сегодня стукнул год с момента выпуска провайдера с собственным клиентом для FB.

После таких релизов обычно накрывает страх не удержать темп или, что еще хуже — начать считать что лучше уже не сделать 🙂

Но пока страхи не оправдываются и за прошедший год были сделаны две ключевые вещи:
1. Наконец-то побеждены VARCHAR-массивы.
2. Реализован собственный клиент для FB3

И в настоящий момент закрывается третья большая тема — (предварительная) реорганизация фундамента кодовой базы провайдера, который был заложен еще в самом начале 2000-ых. Для проекта с объемом порядка 20MB кода — это реально подвиг.

Конечным пользователям эти изменения, конечно, до лампочки. Но для проекта это достаточно важный этап, который позволит еще с десяток лет развиваться c текущими темпами. Это, конечно, если сил хватит 🙂

Надеюсь, что успею до конца года все закончить и выложить релиз v3.35.

Сравнение больших файлов в Araxis Merge

При сравнении относительно больших файлов в Araxis Merge вылазит окно:

The files you are about to compare are very large. Are you sure that you want to open a comparison window for them?

Пять лет не напрягало, а тут внезапно стало задалбывать. Написал в поддержку и получил следующую инструкцию:

  1. Открываем ветку реестра «HKEY_CURRENT_USER\SOFTWARE\Araxis\Merge\7.0»
  2. Меняем значение параметра LargeFileThreshold. Я у себя поставил значение FFFFFFFF.

Работает.

Про PostgreSQL …

Там хорошо, где нас нет …

Проснувшись ближе к вечеру (утром задолбала попа Грамота), открыл хабр и тупо стал созерцать картинку к топику про патчи к PostgreSQL:

c0a2b3b47dbe4bce8a31b7aa10980f6e_pg_patch

Набрал в поиске «element_alloc(HTAB *hashp, int nelem, in freelist_idx)» и вышел на файл postgrespro/postgres_cluster/blob/master/src/backend/utils/hash/dynahash.c.

Реально — используют int для nelem и freelist_idx.

Посмотрел что там дальше, после картинки — «есть основания полагать, что данные патчи будут интересны новичкам«.

А, ну понятно — это экскурсия для детей.

Вести с полей

Новая версия IBProvider-а, позволяющая работать с FB3 без fbclient.dll, вышла на финишную прямую.

Чтиво для размышлений

Вчера на firebirdnews выложили кучу ссылок на «паперсы» конференции FB в 2016-ом году.

Было интересно просмотреть доклад Firebird development process — Past, present and future.

Инфы, конечно, маловато. Это не Брукс со своим «Мифическим человеко-месяцом».

Но достаточно, чтобы задуматься.

Вести с полей

В процессе установки FB3 на тестовый сервер, обнаружил что он там когда-то уже пытался прижиться…

Обновление fbclient.dll (v3) на тестовом сервере IBProvider

Задумался… Четыре года прошло, ёлки-палки.