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

Начало » Использование СУБД » Firebird, HQbird, InterBase » isc_bpb_type_stream (не вижу разницы)
isc_bpb_type_stream [сообщение #1145] Fri, 16 December 2022 17:39 Переход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
Здравствуйте, ВСЕ!

Помнится когда-то давно обсуждалось, что isc_bpb_type_stream == Рулез, а isc_bpb_type_segmented == Сакс.
Переключил работу с блобами на isc_bpb_type_stream и не увидел разницы. Rolling Eyes
Было:
  Result := isc_open_blob2(Status, db_handle, tran_handle, blob_handle, blob_id, 0, nil);
Стало:
const
  aBPB: array[0..2] of Char = Chr(isc_bpb_version1) + Chr(isc_bpb_type) + Chr(isc_bpb_type_stream);
begin
  Result := isc_open_blob2(Status, db_handle, tran_handle, blob_handle, blob_id, SizeOf(aBPB), @aBPB);
Я что-то не так понял, или недокурил?

ЗЫ: Блобы до 30 мегабайт.
Канал относительно узкий.
Сжатие на уровне коннекта включено.
Re: isc_bpb_type_stream [сообщение #1148 является ответом на сообщение #1145] Fri, 16 December 2022 19:10 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
А чего ты хотел увидеть? В сегментированном блоке чуть больше байт, чтобы границу сегмента обозначать. Плюс по стримовым блобам можно seek делать. С точки зрения сетевого протокола там почти нет отличий. Кроме того, на опен вообще не надо задавать какой блоб. Это важно при create
Re: isc_bpb_type_stream [сообщение #1151 является ответом на сообщение #1148] Sat, 17 December 2022 00:04 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
sim_84
А чего ты хотел увидеть? В сегментированном блоке чуть больше байт, чтобы границу сегмента обозначать. Плюс по стримовым блобам можно seek делать.
а нахрена?
sim_84
С точки зрения сетевого протокола там почти нет отличий. Кроме того, на опен вообще не надо задавать какой блоб. Это важно при create
а смысл?
Re: isc_bpb_type_stream [сообщение #1152 является ответом на сообщение #1151] Sat, 17 December 2022 12:44 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Тип блоба определяется в момент его создания. Сегментированные блобы лучше для записей массива структур фиксированного размера. В остальных случаях потоковые предпочтительней
Re: isc_bpb_type_stream [сообщение #1153 является ответом на сообщение #1152] Sat, 17 December 2022 15:02 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 411
Зарегистрирован: August 2022
Senior Member
Не совсем. Есть данные, которые лучше обрабатываются кусками. UTF-8, например. Его конвертация в уникод нетривиальна если буфера не хватило на целый символ. И в целом обработку потока в своей софтине способен организовать не каждый. Каждый первый норовит всосать всё содержимое в какой-нибудь string целиком и уже потом обрабатывать.
Re: isc_bpb_type_stream [сообщение #1155 является ответом на сообщение #1152] Mon, 19 December 2022 12:17 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
sim_84
Тип блоба определяется в момент его создания.
это, как его...
волюнтаризм! ©

в одной и той же таблице, в одном и том же поле...
и это никак не регулируется на уровне DDL.

нехорошо.
Re: isc_bpb_type_stream [сообщение #1158 является ответом на сообщение #1155] Mon, 19 December 2022 15:05 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 411
Зарегистрирован: August 2022
Senior Member
Ну, ты же помнишь Джимову байку, что блобы были сделаны чисто "чтобы были" и "не хуже, чем у других". Без чётко определённой цели.
Re: isc_bpb_type_stream [сообщение #1159 является ответом на сообщение #1158] Mon, 19 December 2022 17:40 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
SD
Ну, ты же помнишь Джимову байку, что блобы были сделаны чисто "чтобы были" и "не хуже, чем у других". Без чётко определённой цели.
угу.
и то что на SEGMENT SIZE (на который все забили) отводится unsigned short, по той же причине.

может имеет смысл его таки заюзать для однозначной дефиниции типа (потоковый/сегментный)?
если SEGMENT SIZE = 0, знач потоковый и нефиг туда пихать сегменты.
ну и наоборот.

ы?

[Обновления: Mon, 19 December 2022 18:02]

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

Re: isc_bpb_type_stream [сообщение #1160 является ответом на сообщение #1159] Mon, 19 December 2022 18:14 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Ну вообще поле типа BLOB может хранить любой тип BLOB хоть сегментированный, хоть потоковый.
И в API во время isc_create_blob можно указать какой блоб нужен. А вот на уровне PSQL да, пока что тип блоба никак не задать.
В 5-ке есть пакет RDB$BLOB_UTILS, где можно указывать как тип блоба создаётся.
Re: isc_bpb_type_stream [сообщение #1161 является ответом на сообщение #1160] Mon, 19 December 2022 18:22 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
sim_84
Ну вообще поле типа BLOB может хранить любой тип BLOB хоть сегментированный, хоть потоковый.
И в API во время isc_create_blob можно указать какой блоб нужен. А вот на уровне PSQL да, пока что тип блоба никак не задать.
кавказская притча:

– пачиму лигушка квакаэт?
– патаму што может!
– а пачиму нэ летаэт?
– не хочэт.
©
Re: isc_bpb_type_stream [сообщение #1163 является ответом на сообщение #1161] Thu, 22 December 2022 16:27 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
продолжаю ковырять БЛОБы гвоздиком.

выяснил, что при чтении БЛОБа
isc_get_segment(Status, blob_handle, actual_seg_length, seg_buffer_length, seg_buffer)
размер буфера seg_buffer_length больше чем 0x4000 игнорируется напрочь.
это как-то к чему-то привязано, или это hard-coded ограничение?
Re: isc_bpb_type_stream [сообщение #1164 является ответом на сообщение #1163] Fri, 23 December 2022 01:31 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 411
Зарегистрирован: August 2022
Senior Member
Скорее всего у тебя в базе сегменты недостаточно большие. Буфер при записи мало кто ставит больше 32к, а isc_get_segment сегменты доставляет по одному, не объединяя. Или это ты потоковые ковыряешь?..
Re: isc_bpb_type_stream [сообщение #1170 является ответом на сообщение #1164] Fri, 23 December 2022 14:39 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
SD
Скорее всего у тебя в базе сегменты недостаточно большие.
я правильно понимаю, что какими "кусками"/сегментами записано, так сервер и отдаёт?
и это не обязательно то, что возвращает isc_blob_info() с параметром isc_info_blob_max_segment ?

SD
Буфер при записи мало кто ставит больше 32к
дык там тип short, больше 32к - число "некрасивое" будет.

SD
isc_get_segment сегменты доставляет по одному, не объединяя. Или это ты потоковые ковыряешь?..
только начинаю ковырять. если есть чуток времени, поясни пожалуйста ньюбу, как в этом плане работают потоковые, и в чем таки их цимес?

зы: у нас сейчас все сервера переехали на арендованную площадку в дата-центр.
канал не очень широкий, но для приложений терпимо.
всё, кроме БЛОБов.
с БЛОБами всё медленно и печально...

[Обновления: Fri, 23 December 2022 14:39]

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

Re: isc_bpb_type_stream [сообщение #1171 является ответом на сообщение #1170] Fri, 23 December 2022 15:36 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 411
Зарегистрирован: August 2022
Senior Member
МП писал(а) Fri, 23 December 2022 12:39
я правильно понимаю, что какими "кусками"/сегментами записано, так сервер и отдаёт?
Да, именно так. Кроме того, хотя в приложение и отдаётся сегмент, по сети несколько сегментов могут передаваться пачкой если Влад не врёт.

Что отдаёт isc_info_blob_max_segment я вообще не в курсе.

А тип размера буфера при записи - unsigned short, что делает определённую разницу.

Потоковые блобы по идее должны отдавать куски размером точно в запрошенный буфер.
Re: isc_bpb_type_stream [сообщение #1181 является ответом на сообщение #1170] Mon, 26 December 2022 10:15 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Цитата:
зы: у нас сейчас все сервера переехали на арендованную площадку в дата-центр.
канал не очень широкий, но для приложений терпимо.
всё, кроме БЛОБов.
с БЛОБами всё медленно и печально...
Если верить Владу (я верю), то с точки зрения сетевого протокола большой разницы между потоковыми и сегментированными блобами нет.
При чтении потокового блоба будет прочтено столько сколько запросили. При чтении сегментированного тоже, но внутри прочитанного могут быть байты отделяющие сегменты,
то есть прочтётся столько сегментов, сколько помещается в запрошенный размер.

С точки зрения оптимизации чтения блобов есть один рецепт, когда блобы короче 32K, но увы этот рецепт требует модификации запросов и специальную обработку.


  select
    case
      when octets_length(b) < 32765
      then cast(b as varbinary(32765))
    end as s_b,
    b
  from

Для текстовых блобов надо под кодировку подстраивать.

Смысл в том что клиент читает запись, и если там короткий блоб, то мы получаем его значение через строку, если в ней пусто, то читаем уже из самого блоба

[Обновления: Mon, 26 December 2022 10:15]

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

Re: isc_bpb_type_stream [сообщение #1182 является ответом на сообщение #1181] Mon, 26 December 2022 15:10 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
БЛОБы от 10 МБ
Re: isc_bpb_type_stream [сообщение #1183 является ответом на сообщение #1182] Mon, 26 December 2022 15:15 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 411
Зарегистрирован: August 2022
Senior Member
А как ваше приложение работает с блобами? Последовательность API вызовов интересует. Как раз на больших блобах есть один нюанс: они активно вымывают кэш страниц поэтому чередование фетча записи с выборкой блобов для этой записи (да ещё и с IBlob::getInfo в середине) действительно способно просаживать производительность процесса.
Re: isc_bpb_type_stream [сообщение #1184 является ответом на сообщение #1183] Mon, 26 December 2022 15:55 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
"автоматом" БЛОБы на клиента не тащу.
в датасете фигурирует только Blob_ID.
фетчи с закачкой БЛОБа не чередуются.
когда юзеру нужен конкретный БЛОБ, он жамкает кнопку.
БЛОБ целиком затаскивается на клиента и отдаётся юзеру.
в процессе этого дёргается:
1. isc_open_blob2()
2. определение размера БЛОБа isc_blob_info()
3. выделение памяти под весь БЛОБ
4. закачка на клиента в цикле isc_get_segment()
5. isc_close_blob()

в локалке, когда сервер и клиенты сидят в одном сегменте сети, тормозов нет.
а вот как вынесли сервер на стороннюю площадку, стало грустно.

в качестве бреда: может ещё размеры пакетов покрутить?

[Обновления: Mon, 26 December 2022 16:28]

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

Re: isc_bpb_type_stream [сообщение #1186 является ответом на сообщение #1184] Mon, 26 December 2022 18:29 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 411
Зарегистрирован: August 2022
Senior Member
Убери определение размера и скорость может подскочить на треть. Именно об этом я выше сказал "каждый первый норовит всосать всё содержимое в какой-нибудь string целиком".
Re: isc_bpb_type_stream [сообщение #1187 является ответом на сообщение #1186] Mon, 26 December 2022 18:35 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
SD
Убери определение размера и скорость может подскочить на треть. Именно об этом я выше сказал "каждый первый норовит всосать всё содержимое в какой-нибудь string целиком".
за счёт чего она может подскочить?
сам isc_blob_info() отрабатывает мухой на 200МБ блобе.
Re: isc_bpb_type_stream [сообщение #1190 является ответом на сообщение #1184] Mon, 26 December 2022 23:49 Переход к предыдущему сообщениюПереход к следующему сообщению
Dmitry Kovalenko в настоящее время не в онлайне  Dmitry Kovalenko
Сообщений: 51
Зарегистрирован: December 2022
Member
Привет.

МП писал(а) Mon, 26 December 2022 15:55

в локалке, когда сервер и клиенты сидят в одном сегменте сети, тормозов нет.
а вот как вынесли сервер на стороннюю площадку, стало грустно.

в качестве бреда: может ещё размеры пакетов покрутить?
Я бы запилил прокладку, которая бы отдавала блобы с локального хранилища Very Happy
Re: isc_bpb_type_stream [сообщение #1191 является ответом на сообщение #1187] Tue, 27 December 2022 01:36 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 411
Зарегистрирован: August 2022
Senior Member
МП писал(а) Mon, 26 December 2022 16:35
за счёт чего она может подскочить?
isc_open_blob - раунд-трип.
isc_blob_info - ещё один раунд-трип.
isc_get_segment - третий.

У тебя длинный пинг, соответственно на мелких блобах это может дать до 30% экономии времени.
Re: isc_bpb_type_stream [сообщение #1192 является ответом на сообщение #1190] Tue, 27 December 2022 02:20 Переход к предыдущему сообщениюПереход к следующему сообщению
Старый Плюшев в настоящее время не в онлайне  Старый Плюшев
Сообщений: 95
Зарегистрирован: August 2022
Географическое положение: Ленинград
Member
Dmitry Kovalenko писал(а) Mon, 26 December 2022 23:49
Привет.

МП писал(а) Mon, 26 December 2022 15:55

в локалке, когда сервер и клиенты сидят в одном сегменте сети, тормозов нет.
а вот как вынесли сервер на стороннюю площадку, стало грустно.

в качестве бреда: может ещё размеры пакетов покрутить?
Я бы запилил прокладку, которая бы отдавала блобы с локального хранилища Very Happy
+1. Что-то я вдруг проснулся. МП, помнишь такую приблуду - fclient? Так вот, когда я перевёл справочник номенклатуры с длинными названиями, не блобы, варчары, с закачки на старте на репликацию в Столяровскую клиентскую базу, один хрен джойны на клиенте локейтами в клиентдатасетах, в самых проблемных по инету филиалах время включения сократилось с 40 минут до 40 секунд.
Re: isc_bpb_type_stream [сообщение #1195 является ответом на сообщение #1192] Tue, 27 December 2022 12:40 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
Старый Плюшев
+1. Что-то я вдруг проснулся. МП, помнишь такую приблуду - fclient? Так вот, когда я перевёл справочник номенклатуры с длинными названиями, не блобы, варчары, с закачки на старте на репликацию в Столяровскую клиентскую базу, один хрен джойны на клиенте локейтами в клиентдатасетах, в самых проблемных по инету филиалах время включения сократилось с 40 минут до 40 секунд.
у-вы, не могу я в офисе ничего держать. не моя вина, но мне вменено.
ибо начальство не иллюзорно основание имеет опасаться маски-шоу.
все сервера (даже с отладочными базами) вынесены вовне.

зы: файло-помойка вместе с почтовиком тоже вынесена.
мышки плачут, колются, но продолжают... ©
Re: isc_bpb_type_stream [сообщение #1197 является ответом на сообщение #1195] Tue, 27 December 2022 14:58 Переход к предыдущему сообщениюПереход к следующему сообщению
Dmitry Kovalenko в настоящее время не в онлайне  Dmitry Kovalenko
Сообщений: 51
Зарегистрирован: December 2022
Member
МП писал(а) Tue, 27 December 2022 12:40
у-вы, не могу я в офисе ничего держать. не моя вина, но мне вменено.
ибо начальство не иллюзорно основание имеет опасаться маски-шоу.
все сервера (даже с отладочными базами) вынесены вовне.

зы: файло-помойка вместе с почтовиком тоже вынесена.
мышки плачут, колются, но продолжают... ©
Ну тогда завезите денег серверописателям, чтобы они (хотя бы) сделали загрузку/создание блобов за одно обращение к серверу.
Re: isc_bpb_type_stream [сообщение #1198 является ответом на сообщение #1197] Tue, 27 December 2022 16:26 Переход к предыдущему сообщениюПереход к следующему сообщению
ggreggory в настоящее время не в онлайне  ggreggory
Сообщений: 76
Зарегистрирован: July 2022
Member
При помощи substring+cast в запросе блобы превращаются в строки заданной длины (возможно очень большой) и выдаются клиенту. И только самым пытливым выдавать блоб полностью по кнопочке. Рабочий вариант.
Re: isc_bpb_type_stream [сообщение #1199 является ответом на сообщение #1198] Tue, 27 December 2022 16:32 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
ggreggory
При помощи substring+cast в запросе блобы превращаются в строки заданной длины (возможно очень большой) и выдаются клиенту. И только самым пытливым выдавать блоб полностью по кнопочке. Рабочий вариант.
блобы бинарные.
"кусочек" смысла не имеет.
Re: isc_bpb_type_stream [сообщение #1200 является ответом на сообщение #1197] Tue, 27 December 2022 16:35 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
Dmitry Kovalenko
Ну тогда завезите денег серверописателям, чтобы они (хотя бы) сделали загрузку/создание блобов за одно обращение к серверу.
да хотя бы размер сегмента больше 64к.
но сильно подозреваю, что помимо нового API это повлечёт ещё и новую ODS.
Re: isc_bpb_type_stream [сообщение #1201 является ответом на сообщение #1200] Tue, 27 December 2022 17:08 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Цитата:
да хотя бы размер сегмента больше 64к.
Это не поможет. Там какой бы сегмент блоба не был, он может вытаскиваться кусками не больше величины сетевого пакета, а он тоже ограничен.
Хотя возможно в FB3+ сетевой пакет может быть больше 64K. Я вообще сомневаюсь в развитии темы размера сегмента.
Вот размер порции которыми могут вытаскиваться данные из потокового BLOB можно было бы увеличить.
Re: isc_bpb_type_stream [сообщение #1202 является ответом на сообщение #1201] Tue, 27 December 2022 17:16 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
sim_84
Вот размер порции которыми могут вытаскиваться данные из потокового BLOB можно было бы увеличить.
ты имеешь в виду несколько сегментов за один раз?
Re: isc_bpb_type_stream [сообщение #1203 является ответом на сообщение #1202] Tue, 27 December 2022 17:33 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Для сегментированных блобов да, несколько сегментов за один раз, но этот раз должен быть больше чем сейчас 64K.
Для потоковых просто большим куском (там нет сегментов).
То что в API функции называется isc_get_segment вовсе не обозначает что он читает сегмент (название неудачное).
Она читает запрошенную порцию данных, сколько там сегментов будет и будут ли вообще по фигу.

З.Ы. в Batch API можно отправлять данные очень большими кусками (до 256 МБ), правда на сколько это сетевых пакетов раскладывается сказать не могу.
Re: isc_bpb_type_stream [сообщение #1204 является ответом на сообщение #1203] Tue, 27 December 2022 17:35 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Точнее как говорил Влад isc_get_segment для сегментированных блобов всегда останавливается на границе сегмента, но читает столько сколько запросишь, последующие вызовы не делают отправку сетевых пакетов, а читают из буфера пока он не исчерпается.
Re: isc_bpb_type_stream [сообщение #1205 является ответом на сообщение #1204] Tue, 27 December 2022 18:08 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
sim_84
Точнее как говорил Влад isc_get_segment для сегментированных блобов всегда останавливается на границе сегмента, но читает столько сколько запросишь, последующие вызовы не делают отправку сетевых пакетов, а читают из буфера пока он не исчерпается.
всё равно это дополнительные раундтрипы.

я тут сравнил, на том же канале, перекачку того же объекта, посредством IB API и посредством SSH/SCP.
разница во времени вышла примерно 4:1
Re: isc_bpb_type_stream [сообщение #1206 является ответом на сообщение #1199] Tue, 27 December 2022 18:41 Переход к предыдущему сообщениюПереход к следующему сообщению
ggreggory в настоящее время не в онлайне  ggreggory
Сообщений: 76
Зарегистрирован: July 2022
Member
МП писал(а) Tue, 27 December 2022 16:32
блобы бинарные.
"кусочек" смысла не имеет.
картинки? может тогда в отдельном поле хранить превью и также передавать на клиента строкой.

внутренний формат? написать UDF которая разбирает документ и возвращает инфу по нему в json или еще в каком виде.

Re: isc_bpb_type_stream [сообщение #1207 является ответом на сообщение #1206] Tue, 27 December 2022 19:49 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 330
Зарегистрирован: June 2022
Senior Member
Цитата:
внутренний формат? написать UDF которая разбирает документ и возвращает инфу по нему в json или еще в каком виде.
А смысл? JSON ты как передавать будешь? Ага через тот же BLOB, получается шило на мыло.
Re: isc_bpb_type_stream [сообщение #1210 является ответом на сообщение #1200] Wed, 28 December 2022 01:44 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 411
Зарегистрирован: August 2022
Senior Member
МП писал(а) Tue, 27 December 2022 14:35
но сильно подозреваю, что помимо нового API это повлечёт ещё и новую ODS.
Может да, может нет. Это вы на рабочей базе развлекаетесь или есть какая-то тестовая, которую не жалко отдать налево?
Re: isc_bpb_type_stream [сообщение #1211 является ответом на сообщение #1207] Wed, 28 December 2022 03:05 Переход к предыдущему сообщениюПереход к следующему сообщению
ggreggory в настоящее время не в онлайне  ggreggory
Сообщений: 76
Зарегистрирован: July 2022
Member
sim_84 писал(а) Tue, 27 December 2022 19:49
А смысл? JSON ты как передавать будешь? Ага через тот же BLOB, получается шило на мыло.
строкой на 16000 символов

[Обновления: Wed, 28 December 2022 03:07]

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

Re: isc_bpb_type_stream [сообщение #1213 является ответом на сообщение #1200] Wed, 28 December 2022 17:14 Переход к предыдущему сообщениюПереход к следующему сообщению
hvlad в настоящее время в онлайне  hvlad
Сообщений: 357
Зарегистрирован: August 2022
Senior Member
МП писал(а) Tue, 27 December 2022 15:35
Dmitry Kovalenko
Ну тогда завезите денег серверописателям, чтобы они (хотя бы) сделали загрузку/создание блобов за одно обращение к серверу.
да хотя бы размер сегмента больше 64к.
но сильно подозреваю, что помимо нового API это повлечёт ещё и новую ODS.
Размер сегмента тут большой роли не сыграет, тут нужно кол-во roundtrip'ов сокращать, AFAIU.
Если данные сжимаемы, то компрессия протокола или самого блоба поможет в какой-то степени.
Иначе - только менять реализацию клиента.
Re: isc_bpb_type_stream [сообщение #1214 является ответом на сообщение #1213] Wed, 28 December 2022 18:01 Переход к предыдущему сообщениюПереход к следующему сообщению
МП в настоящее время не в онлайне  МП
Сообщений: 887
Зарегистрирован: August 2022
Географическое положение: бурятский тун...
Senior Member
hvlad
Размер сегмента тут большой роли не сыграет, тут нужно кол-во roundtrip'ов сокращать, AFAIU.
Если данные сжимаемы, то компрессия протокола или самого блоба поможет в какой-то степени.
WiredCompression включен.
RDB$GET_CONTEXT('SYSTEM', 'WIRE_COMPRESSED') говорит, что таки да.
касаемо roundtrip'ов: я правильно понимаю, что пофигу стримовый БЛОБ, или нет, но больше 64к за один вызов isc_get_segmet() не будет ну никак?
Re: isc_bpb_type_stream [сообщение #1216 является ответом на сообщение #1214] Wed, 28 December 2022 22:40 Переход к предыдущему сообщениюПереход к предыдущему сообщению
Старый Плюшев в настоящее время не в онлайне  Старый Плюшев
Сообщений: 95
Зарегистрирован: August 2022
Географическое положение: Ленинград
Member
Всё-таки прогресс - он от лукавого и развращает, порождает шаблонность мышления. Вот году эдак в 96м, ещё в здании ВЧК на углу Гороховой и Адмиралтейской, с ихним музеем на втором этаже, выкопали яму во дворе-колодце, оборудовали кессон, вытяжку наладили, поставили сервер, протянули провода, заасфальтировали и года полтора, пока не переехали на Робеспьера, в ус не дули. Облака, датацентры... Крылья, крылья... Ноги!
Предыдущая тема: Не могу сделать бэкап
Следующая тема: Нравится ли форум?
Переход к форуму:
  


Текущее время: Thu Nov 21 23:55:33 GMT+3 2024

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