@scala_ru

Страница 814 из 1499
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
doobie о схеме ничего не знает
знает, у него в checker даже тесты на эт завязаны

само по себе, нет
тебе даже в Option не надо заворачивать сделай прост unique

Vladimir
10.07.2017
15:24:22
тебе даже в Option не надо заворачивать сделай прост unique
тогда типы не сойдутся, я же явно хочу получить Option в результате

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
https://github.com/tweag/sparkle
и это хорошо

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

Ну и обновленные данные являются надмножеством старых

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

Daniel
11.07.2017
04:22:39
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
Уточни в какой, 16 мб?)
да и мегабайта нет

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
я беру гуаву обычно, если нужно время жизни записи

но для справочника, имхо, это не надо

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
Друзья, можно ли сделать спарк стримингу стрим из селекта? Но так, чтобы каждый цикл/батч запрос выполнялся заново. Или низзя и надо костылем делать пустой стрим, внутри которого селект в датафрейм?

Kirill
11.07.2017
10:10:43
Стрим с одними и теми же данными? В спарке есть констант стрим
"каждый батч запрос выполнялся заново" Понятно дело, записи в таблице меняются. Да и запрос будет с where условием по времени

KrivdaTheTriewe
11.07.2017
10:22:28
"каждый батч запрос выполнялся заново" Понятно дело, записи в таблице меняются. Да и запрос будет с where условием по времени
Если тебе нужно делать постоянный селект к чему либо периодически ты можешь сделать констант стрим , делать оттуда селект и делать с твоими данными то, что тебе необходимо

https://github.com/jaceklaskowski/spark-streaming-notebook/blob/master/spark-streaming-constantinputdstreams.adoc

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

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

кто мешает делать запрос в обработчике констант стрима?
Спасибо! Полистал сорсы, нашел магический compute, уверовал. Буду экспериментировать.

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
я бы просто хотел какой-нибудь грязый хак, который стопает все треды и делает подмену синглтон обжекта :(

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
shutdown -r now
ну походу так и будет на самом деле

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

Страница 814 из 1499