
Nick
10.07.2017
15:00:08
первый вариант прост кинет exception если записей нет

Vladimir
10.07.2017
15:04:55
первый вариант прост кинет exception если записей нет
как раз выходит наоборот: первый вариант возвращает корректный Option, а второй
doobie.util.invariant$NonNullableColumnRead: SQL `NULL` read at column 1 (JDBC type Timestamp) but mapping is to a non-Option type; use Option here. Note that JDBC column indexing is 1-based.
at doobie.util.atom$Atom$$anon$3.$anonfun$unsafeGet$2(atom.scala:45)

Nick
10.07.2017
15:05:40
сама колонка nullable?

Google

Nick
10.07.2017
15:05:54
может у тебя там not null стоит

Vladimir
10.07.2017
15:06:01
в целом да, у меня результат аггрегирующей функции
typechecked queries не используются

Nick
10.07.2017
15:07:06
ну прикол в том, что она никогда не может быть null
покажи полностью функцию, если не сложно

Vladimir
10.07.2017
15:09:18
(fr"""
SELECT MIN(po.created_at) FROM """ ++ Fragment.const(tableName) ++ fr""" po
WHERE
""" ++ Fragments.in(fr"po.product_id", ids)).query[Option[Instant]].unique

Nick
10.07.2017
15:12:40
created_at nullable field?

Vladimir
10.07.2017
15:13:02
само по себе, нет
doobie о схеме ничего не знает
но в результате аггрегации null вполне может быть, если записей не оказалось

Nick
10.07.2017
15:22:07

Vladimir
10.07.2017
15:24:22

Google

Nick
10.07.2017
15:24:51
unique.attempt
а дальше toOption)

Vladimir
10.07.2017
15:37:28
у меня запрос отдельно определяется, т.ч. этот способ не взлетел, но за совет спасибо)

Nick
10.07.2017
15:46:40

Vladimir
10.07.2017
16:13:27
%) сегодня вряд ли найду время его yolo завезти

Nick
10.07.2017
16:24:11
да там не нужен yolo

Vadim
10.07.2017
21:45:59
https://github.com/tweag/sparkle

KrivdaTheTriewe
10.07.2017
22:11:30
Что вы используете для периодически ( редко обновляемых) справочников в рантайме ? ( то есть есть некторые справочники в базе и хотелось бы без перезагрузки приложения обновлять val userTable = loadUserTable() , какой паттерн получше будет ( естественно интересует в первую очередь перфоманс )
Ну и обновленные данные являются надмножеством старых

Alexey
11.07.2017
04:15:49
А какого размера справочники?

Daniel
11.07.2017
04:22:39

Oleg
11.07.2017
04:37:03

Alexandr
11.07.2017
07:10:13
Velocity?

KrivdaTheTriewe
11.07.2017
08:29:01

Nick
11.07.2017
08:30:22

KrivdaTheTriewe
11.07.2017
08:45:35

Artem
11.07.2017
08:47:33
Один из вариантов, если по какой то причине боишься каждый раз тягать не измененные данные - сделай в словаре у поля некий «update date» и периодически переинициализируй кеш, делая запрос where updateDate > lastCacheUpdateDate. Так же можешь сделать листенер в который будут прилетать эвенты от процесса модификации справочника, чтобы этот листенер инициировал обновление кеша.

Alexey
11.07.2017
08:54:13
у меня гб в кеше и ваще похер

Google

Grigory
11.07.2017
08:55:39
а чо используете для локального кеша? (это вопрос не к ребятам из тинькофф которые исопльзуют тинькофф кеш)

Alexey
11.07.2017
08:55:57
лiл
HashMap

Grigory
11.07.2017
08:56:20
а чо насчет гуавы или кафеина? (последний типа огненный но там кто знает что оно как)

illiatshurotshka❄️
11.07.2017
08:56:29
redis

Alexey
11.07.2017
08:56:42
гуава ок

Grigory
11.07.2017
08:56:46
да, отличный локальный кеш редис

Alexey
11.07.2017
08:57:25
я беру гуаву обычно, если нужно время жизни записи
но для справочника, имхо, это не надо

Oleg
11.07.2017
09:08:55

Grigory
11.07.2017
09:09:18

Oleg
11.07.2017
09:09:19
Но это решение выходящее далеко за "локальный кеш"

Grigory
11.07.2017
09:09:26
тот магический кеш который тут прли

Oleg
11.07.2017
09:09:36
прли?

Grigory
11.07.2017
09:09:46
пиарили*

Oleg
11.07.2017
09:09:58
пиарили* ?

Grigory
11.07.2017
09:10:22
да; хвастались неким тинкоф кешем, который не был доступен общественности, на сколько я помню

Oleg
11.07.2017
09:11:04
если на столько вспоминать, то это он

Grigory
11.07.2017
09:11:24
я уже спрашивал этот вопрос тут; является ли макрокеш тем самым кешем мой вопрос пропустили ):
значит надо смотреть

Google

Oleg
11.07.2017
09:12:37
Там кеш, который по дефолту поставлятся с TrieMap ой
Но где-то там он привязан к хазелкасту у нас

Nick
11.07.2017
09:13:09
Уж лучше хз притащить
У хз есть ж локальный кэш

Oleg
11.07.2017
09:14:06
Просто тайпсейфовый и с гибкими тайпсефовыми правилами инвалидации

Admin
ERROR: S client not available

Nick
11.07.2017
09:14:49
а

Kirill
11.07.2017
10:05:10
Друзья, можно ли сделать спарк стримингу стрим из селекта? Но так, чтобы каждый цикл/батч запрос выполнялся заново.
Или низзя и надо костылем делать пустой стрим, внутри которого селект в датафрейм?

KrivdaTheTriewe
11.07.2017
10:09:05

Kirill
11.07.2017
10:10:43

KrivdaTheTriewe
11.07.2017
10:22:28
https://github.com/jaceklaskowski/spark-streaming-notebook/blob/master/spark-streaming-constantinputdstreams.adoc

Kirill
11.07.2017
10:24:18
Не, нужен каждый раз свежий запрос и свежие данные. Смешно, но я требую от спарка батч-процессинга, т.е. практически то, чем он является. Но так как он весь такой стриминговый, напрямую это не катит.

KrivdaTheTriewe
11.07.2017
10:26:46

Kirill
11.07.2017
10:30:00
Хз, незнание. Наверно потому и спрашиваю совета

Mikhail
11.07.2017
10:52:31
правда на нагрузках не гонял его, но выглядит неплохо

Daniel
11.07.2017
10:56:51
https://github.com/cb372/scalacache

Google

Grigory
11.07.2017
11:00:30

KrivdaTheTriewe
11.07.2017
11:03:05
я бы просто хотел какой-нибудь грязый хак, который стопает все треды и делает подмену синглтон обжекта :(

Mikhail
11.07.2017
11:17:59

Nick
11.07.2017
11:18:48

Oleg
11.07.2017
11:20:40
Постойте треды, не стучи сигнлтоном
Обжект не такой как был вчера...

Aleksey
11.07.2017
11:22:29
К тестировщице родной, с последним релизом
Спешу показаться на глаза.
Не жди ты релиза, тестировщица Нина
Того, что должен был быть еще вчера.

KrivdaTheTriewe
11.07.2017
11:24:54
O_o
короче посыл такой, что не охот мутить сложный кеш :( хочется чтобы доступ был быстрый и задорный, а для этого можно бы и тормознуть все треды , в рантайме обновить как-нибудь оч грязно синглтон обжект и пустить вперед

Oleg
11.07.2017
11:24:59
аа точно, тормоза же там

KrivdaTheTriewe
11.07.2017
11:27:06

Aleksey
11.07.2017
11:27:09
Его мы сломали бесконечным стримом
Все надо переписовать на акторА.

KrivdaTheTriewe
11.07.2017
11:28:45
Ну вот вы сметесь , а есть желание избежать стопа сервиса , если справочник там раз в 10 дней дополняется одной записью
Сейчас все операции со справочником в синглтон объекте и нет проблем с доступом к нему как к глобальной переменной.

Aleksei
11.07.2017
11:33:49
т.е. выходит твой справочник вообще можно заменить третрадкой с ручкой и перформанс не просядет?

Alexey
11.07.2017
11:34:33
AtomicRef?

KrivdaTheTriewe
11.07.2017
11:38:04
Да я думаю о механизме хотсвапа ( или как там работает JRebel). Хотя мне кажется нужно будет просто заморочиться с ролями нод. И стопать их немножко

Nick
11.07.2017
11:41:15
@krivdatheliggen анус какой-т делаешь)

KrivdaTheTriewe
11.07.2017
11:41:48