Вести с полей

Привет всем.

Вот так вот закопаешься в рутине и перестаешь осознавать — «что происходит и куда девается время?». Так что, хотя бы для себя лично, надо обозначить текущее состояние дел 🙂

1. Текущие триалы IBProvider-a уже поддерживают подключение к базам данных FB через собственного клиента с указанием версии IP-протокола в адресе базы данных: «inet4://» и «inet6://».

2. Медленно и печально перетряхиваю библиотеку libtommath, которую затащили в FB3 для использования SRP-аутентификации. Автор говорит — в 19 лет её накатал. Впечатляет, но для промышленного использования не пригодна.

3. Пошла шестая неделя большого тестирования — оно было запущено утром 17 апреля. Участники:

  • Firebird 2.5.6.26993 x64, SuperClassic, vc14 (полная оптимизация), модифицированный
  • IBProvider 3.29.0.20837 x64

Подключение: localhost, собственный клиент IBProvider-a для Firebird. Тесты выполняются в 4-е потока.

Точка предыдущего отказа еще не пройдена — количество тестов «немного» увеличилось. Пока полет нормальный. Но деградация производительности сервера уже на лице.

Пример пары тестов (вставка/удаление записей в одной транзакции), идентичных с точки зрения сервера:

Было:

[THR:005988] [05.05.2016 02:56:02] * START TEST [charsets.txt_params.enable_defer.user_trans.unicode.TBL_CS__UTF8.VARCHAR_ARRAY__32.cn_NONE.user_UTF8.chars_UTF8.param_adVarBinary_Array.bind_iunknown_array__std_ss.small.array_type_0]
[THR:005988] [05.05.2016 02:56:02] *
[THR:005988] [05.05.2016 02:56:02] * PREPARE
[THR:005988] [05.05.2016 02:56:02] * RUN
[THR:005988] [05.05.2016 02:56:02] [test] RelationName    :TBL_CS__UTF8
[THR:005988] [05.05.2016 02:56:02] [test] RelationField   :VARCHAR_ARRAY__32
[THR:005988] [05.05.2016 02:56:02] [test] UnicodeMode     :true
[THR:005988] [05.05.2016 02:56:02] [test] EnableDeferred  :true
[THR:005988] [05.05.2016 02:56:02] [test] AutoCommit      :false
[THR:005988] [05.05.2016 02:56:02] [test] CnCharset       :NONE
[THR:005988] [05.05.2016 02:56:02] [test] UserCharset     :UTF8
[THR:005988] [05.05.2016 02:56:02] [test] InParamType     :adArray+adVarBinary
[THR:005988] [05.05.2016 02:56:02] [test] InParamBindType :DBTYPE_IUNKNOWN | DBTYPE_ARRAY
[THR:005988] [05.05.2016 02:56:02] [test] OutParamType    :adArray+adVarBinary
[THR:005988] [05.05.2016 02:56:02] [test] OutParamBindType:DBTYPE_IUNKNOWN | DBTYPE_ARRAY
[THR:005988] [05.05.2016 02:56:02] [test] Prop_ArrayType  :0
[THR:005988] [05.05.2016 02:56:02] [test] Create connection...
[THR:005988] [05.05.2016 02:56:02] [test] create pooled data source...
[THR:005988] [05.05.2016 02:56:02] [test] set_init_prop: [array_type]=0
[THR:005988] [05.05.2016 02:56:02] [test] set_init_prop: [auto_commit]=false
[THR:005988] [05.05.2016 02:56:02] [test] set_init_prop: [ctype]=NONE
[THR:005988] [05.05.2016 02:56:02] [test] set_init_prop: [ctype_user]=UTF8
[THR:005988] [05.05.2016 02:56:02] [test] set_init_prop: [deferred_out_param]=3
[THR:005988] [05.05.2016 02:56:02] [test] set_init_prop: [unicode_mode]=true
[THR:005988] [05.05.2016 02:56:02] [test] connect to database ...OK
[THR:005988] [05.05.2016 02:56:02] [test] Create session...
[THR:005988] [05.05.2016 02:56:02] [test] START TRANSACTION ...
[THR:005988] [05.05.2016 02:56:02] [test] Create commands...
[THR:005988] [05.05.2016 02:56:02] [test] Prepare Command:

"insert into TBL_CS__UTF8 (VARCHAR_ARRAY__32) values (?) returning VARCHAR_ARRAY__32,test_id"

[THR:005988] [05.05.2016 02:56:02] [test] cmd.describe_params(param)
[THR:005988] [05.05.2016 02:56:02] [test] cmd.set_param_info(param)
[THR:005988] [05.05.2016 02:56:02] [test] Create command ...
[THR:005988] [05.05.2016 02:56:02] [test] Prepare Command:

"delete from TBL_CS__UTF8 where test_id=?"

[THR:005988] [05.05.2016 02:56:02] [test] cmd.describe_params(param)
[THR:005988] [05.05.2016 03:28:02] [test] Total pass number:524297
[THR:005988] [05.05.2016 03:28:02] [test] COMMIT TRANSACTION [RETAINING=false]...
[THR:005988] [05.05.2016 03:28:02] *
[THR:005988] [05.05.2016 03:28:02] * REAL   TIME:19203220000   [00:32:00.3220000]
[THR:005988] [05.05.2016 03:28:02] * USER   TIME:2506624068    [00:04:10.6624068]
[THR:005988] [05.05.2016 03:28:02] * KERNEL TIME:1080618927    [00:01:48.0618927]
[THR:005988] [05.05.2016 03:28:02] * TOTAL  TIME:3587242995    [00:05:58.7242995]
[THR:005988] [05.05.2016 03:28:02] *
[THR:005988] [05.05.2016 03:28:02] * STOP TEST [charsets.txt_params.enable_defer.user_trans.unicode.TBL_CS__UTF8.VARCHAR_ARRAY__32.cn_NONE.user_UTF8.chars_UTF8.param_adVarBinary_Array.bind_iunknown_array__std_ss.small.array_type_0]

Стало:

[THR:005980] [23.05.2016 06:06:10] * START TEST [charsets.txt_params.disable_defer.user_trans.unicode.TBL_CS__UTF8.VARCHAR_ARRAY__32.cn_NONE.user_UTF8.chars_UTF8.param_adVarBinary_Array.bind_iunknown_array__std_ss.small.array_type_0]
[THR:005980] [23.05.2016 06:06:10] *
[THR:005980] [23.05.2016 06:06:10] * PREPARE
[THR:005980] [23.05.2016 06:06:10] * RUN
[THR:005980] [23.05.2016 06:06:10] [test] RelationName    :TBL_CS__UTF8
[THR:005980] [23.05.2016 06:06:10] [test] RelationField   :VARCHAR_ARRAY__32
[THR:005980] [23.05.2016 06:06:10] [test] UnicodeMode     :true
[THR:005980] [23.05.2016 06:06:10] [test] EnableDeferred  :false
[THR:005980] [23.05.2016 06:06:10] [test] AutoCommit      :false
[THR:005980] [23.05.2016 06:06:10] [test] CnCharset       :NONE
[THR:005980] [23.05.2016 06:06:10] [test] UserCharset     :UTF8
[THR:005980] [23.05.2016 06:06:10] [test] InParamType     :adArray+adVarBinary
[THR:005980] [23.05.2016 06:06:10] [test] InParamBindType :DBTYPE_IUNKNOWN | DBTYPE_ARRAY
[THR:005980] [23.05.2016 06:06:10] [test] OutParamType    :adArray+adVarBinary
[THR:005980] [23.05.2016 06:06:10] [test] OutParamBindType:DBTYPE_IUNKNOWN | DBTYPE_ARRAY
[THR:005980] [23.05.2016 06:06:10] [test] Prop_ArrayType  :0
[THR:005980] [23.05.2016 06:06:10] [test] Create connection...
[THR:005980] [23.05.2016 06:06:10] [test] create pooled data source...
[THR:005980] [23.05.2016 06:06:10] [test] set_init_prop: [array_type]=0
[THR:005980] [23.05.2016 06:06:10] [test] set_init_prop: [auto_commit]=false
[THR:005980] [23.05.2016 06:06:10] [test] set_init_prop: [ctype]=NONE
[THR:005980] [23.05.2016 06:06:10] [test] set_init_prop: [ctype_user]=UTF8
[THR:005980] [23.05.2016 06:06:10] [test] set_init_prop: [deferred_out_param]=0
[THR:005980] [23.05.2016 06:06:10] [test] set_init_prop: [unicode_mode]=true
[THR:005980] [23.05.2016 06:06:10] [test] connect to database ...OK
[THR:005980] [23.05.2016 06:06:10] [test] Create session...
[THR:005980] [23.05.2016 06:06:10] [test] START TRANSACTION ...
[THR:005980] [23.05.2016 06:06:10] [test] Create commands...
[THR:005980] [23.05.2016 06:06:10] [test] Prepare Command:

"insert into TBL_CS__UTF8 (VARCHAR_ARRAY__32) values (?) returning VARCHAR_ARRAY__32,test_id"

[THR:005980] [23.05.2016 06:06:10] [test] cmd.describe_params(param)
[THR:005980] [23.05.2016 06:06:10] [test] cmd.set_param_info(param)
[THR:005980] [23.05.2016 06:06:10] [test] Create command ...
[THR:005980] [23.05.2016 06:06:10] [test] Prepare Command:

"delete from TBL_CS__UTF8 where test_id=?"

[THR:005980] [23.05.2016 06:06:11] [test] cmd.describe_params(param)
[THR:005980] [23.05.2016 07:13:22] [test] Total pass number:524297
[THR:005980] [23.05.2016 07:13:22] [test] COMMIT TRANSACTION [RETAINING=false]...
[THR:005980] [23.05.2016 07:13:22] *
[THR:005980] [23.05.2016 07:13:22] * REAL   TIME:40327720000   [01:07:12.7720000]
[THR:005980] [23.05.2016 07:13:22] * USER   TIME:2285570651    [00:03:48.5570651]
[THR:005980] [23.05.2016 07:13:22] * KERNEL TIME:966114193     [00:01:36.6114193]
[THR:005980] [23.05.2016 07:13:22] * TOTAL  TIME:3251684844    [00:05:25.1684844]

База опухла до 1TB.

Текущая статистика выглядит так:

Database "d:\Database\IBP_TEST_FB25_D3_2.GDB"
Database header page information:
        Flags                   0
        Checksum                12345
        Generation              42630329
        Page size               8192
        ODS version             11.2
        Oldest transaction      42477575
        Oldest active           42477576
        Oldest snapshot         42477572
        Next transaction        42477583
        Bumped transaction      1
        Sequence number         0
        Next attachment ID      137038
        Implementation ID       26
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        3
        Creation date           Apr 16, 2016 21:08:36
        Attributes

    Variable header data:
        *END*

Leave a Comment