215 похожих чатов

Вопрос к авторам коннекторов, в каком виде вы возвращаете результаты

таких iproto-операций как insert, update, replace, etc. Сам протокол возвращает тапл в IPROTO_DATA, где значения полей доступны только по индексу. Меня интересует, конвертит ли его кто-нибудь перед отдачей в мапу в случае, когда у спейса задан формат и мы можем сопоставить имена полей индексам? Это может быть удобно для пользователя, но может потребовать лишнего запроса к серверу (если схема еще не запрашивалась). То есть что-то типа:


space_wo_format:insert({1, 'foo'})
---
- [1, 'foo']

vs


space_w_format:insert({1, 'foo'})
---
- {id: 1, name: 'foo'}
```

```

12 ответов

16 просмотров

Я в Perl-коннекторе на коннекте читаю схему и таплы всегда конверчу в мапу по схеме

Mons Anderson
Я в Perl-коннекторе на коннекте читаю схему и тапл...

Коннектор для перла не поддерживается вроде. Когда-то я пробовал его, но понял что заброшено. И юзал на петоне

Eugene-Leonovich Автор вопроса

а это поведение отключаемо? например, если пользователь работает со спейсами через id и ему не важно, что там вернет insert(), вычитываение схемы тогда будет избыточной операцией. Я тоже склоняюсь к варианту отдавать в ответ мапу если задана схема, но хочется дать возможность легко это отключать для конкретного вызова. Поэтому думаю над апи для всего этого - можно передавать опциональный параметр при вызове метода (insert(tuple, as_map=true)), можно возвращать объект который будет сам себя конвертировать (insert(tuple).toMap()), можно иметь несколько методов (insertAndReturnTuple, insertAndReturnMap). Как я понимаю, в твоем коннекторе всегда будет мап?

я в своем коннекторе всегда конверчу к ассоциативным массивам мало того, если call возвращает выборку из спейса, то у call есть опция что он возвращает данные из спейса и тогда тоже проводится преобразование

Eugene-Leonovich Автор вопроса

А в какой момент времени вычитывается схема в вашем коннекторе при таком запросе (псевдокод): conn = connect() res = conn.getSpaceById(513).insert(tuple) ?

Eugene Leonovich
А в какой момент времени вычитывается схема в ваше...

Сразу после установления соединения, до того, как клиенту говорится, что соединение установлено

Eugene Leonovich
А в какой момент времени вычитывается схема в ваше...

> res = conn.getSpaceById(513).insert(tuple) мне не нравится такой подход, хотя многие его применяют. мне нравится так: res = conn.insert(space_name, tuple) res = conn.insert(space_number, tuple)

Eugene Leonovich
а это поведение отключаемо? например, если пользов...

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

Eugene-Leonovich Автор вопроса
Igor Latkin
В asynctnt например возвращаются спец объекты к ко...

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

Eugene Leonovich
вот и я думал про такие спец объекты. С ними вычит...

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

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
как быть с принтером? такой подход прокатит?
zamtmn
12
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Карта сайта