SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » node-firebird загрузка текстовых блобов
node-firebird загрузка текстовых блобов [сообщение #4824] Sat, 06 April 2024 01:44 Переход к следующему сообщению
vvvait в настоящее время не в онлайне  vvvait
Сообщений: 16
Зарегистрирован: March 2023
Junior Member
Случайно наткнулся на проблему при загрузке текстовых блобов при настройке blobAsText = true.
При определенном количестве записей (возможно зависит от размера) зависает на попытке загрузки сегмента некоторых блобов.
использую Firebird 4.0.2 SuperServer
Connection.prototype.getSegment = function(blob, callback) {
    var msg = this._msg;
    msg.pos = 0;
    msg.addInt(op_get_segment);
    msg.addInt(blob.handle);
    msg.addInt(1024); // buffer length    
    msg.addInt(0); // ???
    this._queueEvent(callback);
};
при загрузке блобов, библиотека сразу открывает их все и начинает скачивать в произвольном порядке
....
const arrPromise = (ret.arrBlob || []).map(value => value(transaction));
Promise.all(arrPromise).then((arrBlob) => {
...
случайно обнаружил, что чем меньше буфер
msg.addInt(1024); // buffer length 
тем больше можно загрузить блобов до зависания, если выставить 80 то на моих количествах (около 0,5 mb) зависаний нет, но это привело к значительному (до 4-5 раз на локальном и до 13 раз на удаленном) замедлению загрузки блобов.

Это проблема node-firebird или firebird ?

[Обновления: Sat, 06 April 2024 02:07]

Известить модератора

Re: node-firebird загрузка текстовых блобов [сообщение #4825 является ответом на сообщение #4824] Sat, 06 April 2024 13:21 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 417
Зарегистрирован: August 2022
Senior Member
Это можно выяснить посмотрев Call Stack. Если висит на ожидании прихода пакета - firebird. Иначе - node.
Re: node-firebird загрузка текстовых блобов [сообщение #4826 является ответом на сообщение #4825] Sat, 06 April 2024 14:12 Переход к предыдущему сообщению
vvvait в настоящее время не в онлайне  vvvait
Сообщений: 16
Зарегистрирован: March 2023
Junior Member
по факту она не зависает, а срабатывает таймаут на выполнение запроса т.к. не дожидается ответ или не понимает ответ
Предыдущая тема: Многократное обновление таблицы
Следующая тема: Обновление Калькулятора Конфигураций для Firebird
Переход к форуму:
  


Текущее время: Sun Dec 22 05:07:56 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00894 секунд