
Dmitry
01.03.2017
17:19:28
но они не должны лупить туда.
а должны в какое-то другое место.
ну т.е в этой задаче они вообще не должны никогда.

Quet
01.03.2017
17:19:57
и потом из этого места целиком переделывать иммутабельную базу?

Google

Dmitry
01.03.2017
17:21:02
ну, когда голова была монолитная - проблемы просматривались, т.е запись начинала доходить до десятых долей секунды
основном на IO
потому что оно было прям одним здоровым шматом, натурально
я попилил на независимые части, стало опять нормально
в памяти только индекс - ссылки
нужные объекты суммонятся (материализуются) по мере надобности

Quet
01.03.2017
17:22:24
быстро суммонятся?

Dmitry
01.03.2017
17:22:31
да
да и иерархия неглубокая
так что да, быстро всё пока что.
стоит про это в апреле в касперском попробовать рассказать?

Vladimir
01.03.2017
17:25:15
а что в апреле? конфа?
какой город?

Google

Quet
01.03.2017
17:25:39

Dmitry
01.03.2017
17:25:41
в касперском в мск вроде собираются митап сделать

Vladimir
01.03.2017
17:25:56
круто, но хочу в Питере

Quet
01.03.2017
17:26:12
а инфа по митапу уже есть? обычно это в гитлере обсуждают, а я его не читаю (

Dmitry
01.03.2017
17:26:28
не знаю, я знаю только что в апреле и в касперском

Alexander
01.03.2017
17:26:38
мне все доклад не придумать..

Dmitry
01.03.2017
17:26:40
т.е там надо еще успеть подать, наверное

Alexander
01.03.2017
17:26:45
угу

Dmitry
01.03.2017
17:26:48
учитывая что это всё прямо сейчас пишется

Vladimir
01.03.2017
17:27:08
тебе же не код показывать

Мерлин
01.03.2017
17:27:30
А я упустил, вы что вместо постгреса используете?

Quet
01.03.2017
17:27:53

Dmitry
01.03.2017
17:28:02
а это к кому вопрос?
если ко мне, то НЕ acid-state, т.к он всё в памяти хранит

Мерлин
01.03.2017
17:28:33

Alexander
01.03.2017
17:28:48
у нас leveldb для diff и снапшотов и память

Quet
01.03.2017
17:29:05

Alexander
01.03.2017
17:29:19
блин и вот я прям в данный момент пишу код для обновления схемы не покрываемой safecopy
у нас граф, и если и объекты или relation исчезли, а обновляться надо

Google

Мерлин
01.03.2017
17:29:59

Vladimir
01.03.2017
17:31:54
@qnikst @quetzal а можете свои задачи конкретно описать?

Мерлин
01.03.2017
17:32:16
По сути свой журналируемая редиска

Quet
01.03.2017
17:32:17

Alexander
01.03.2017
17:32:21
есть граф описывающий кластер нативными хацкельными типами, с ним работать надо

Vladimir
01.03.2017
17:32:48

Мерлин
01.03.2017
17:32:59

Vladimir
01.03.2017
17:33:30

Alexander
01.03.2017
17:33:41
кластер hardwar-ный

Мерлин
01.03.2017
17:33:52

Alexander
01.03.2017
17:33:57
да

Vladimir
01.03.2017
17:34:48
таак. и что с кластером происходит?
сколько в нем машин?
вот есть много железок. а софт что делает?

Alexander
01.03.2017
17:39:08
машин не много, дисков много
в текущем (хотя он сильно скейлится) десяток машин на каждой п 0.5к дисков
всякие сервисы хитрые
все сообщают о живости и т.п., софтинка управляет стартует, стопает, командует как фс восстанавливать

Vladimir
01.03.2017
17:41:11
как здесь используется графовое представление?
DAG или все же просто дерево?

Google

Alexander
01.03.2017
17:42:52
DAG
впрочем A тут неверно

Vladimir
01.03.2017
17:46:01
а как в хаскеле представить хотя бы dag? хмм
и уж тем более если циклы есть

Dmitry
01.03.2017
17:47:28
а что мешает DAG представить просто ADT-jv

Alexander
01.03.2017
17:47:55
class (SafeCopy a, Hashable a, ...) => Resource a where ...
class (SafeCopy r, Hashable r, Resource a, Resource b) => Relation r a b where
data Res = forall a . Resource a => Res a
data Rel = forall r a b . Rel r (Res a) (Res b) -- тут можно разные контрукторы для направления
дальше как хочешь или Set Rel, или HashMap Res Rel
первое это каноническое, второе это индексированное

Vladimir
01.03.2017
17:49:13

Dmitry
01.03.2017
17:49:38
например?
ну т.е любой ADT это граф и есть

Alexander
01.03.2017
17:49:56
тут ещё он расширяемый произвольно

Dmitry
01.03.2017
17:50:18
ну, не произвольный.

Alexander
01.03.2017
17:50:27
не ADT у нас т.к. он не расширяемый

Vladimir
01.03.2017
17:50:35
например?
ну как его хотя бы просто построить имея данные о вершинах и ребрах. ну и дальнейшее редактирование графа

Alexander
01.03.2017
17:50:48
т.е. ты можешь легк написать новый модуль с куском схемы и использовать его
@async_prince я вот выше написал
в таком предсталении нету никаких проблем с операциями, во всяком случае вставкой поиском (типизированным по ребрам) и удалением

Quet
01.03.2017
17:52:22
@voidlizard вы когда про фронтенд думали не смотрели на все эти окамлы? bucklescript, reason, js_of_ocaml..

Dmitry
01.03.2017
17:52:29
@async_prince ну я не знаю, как делают они, но если придумывать с нуля, то наверное построение из матрицы смежностей можно осилить, а что бы редактировать - наверное, нужно пачку изменений, пртом опят всё в матрицу смежностей, а из неё новый граф. наверное есть и другие способы, это просто тупо первое что в головую приходит

Google

Alexander
01.03.2017
17:52:55
доктор меня все игнорируют : (

Dmitry
01.03.2017
17:53:08
@quetzal да я регулярно смотрю по кругу.
@qnikst ну, я про случай, если бы вы не придумали, а надо было с нуля изобретать

Quet
01.03.2017
17:53:33

Dmitry
01.03.2017
17:53:50
ну т.е не очень понимаю, в чем проблема. Зефиров вон докладывал как они графы засунули в IntMap и сишечку дернули по скорости

Vladimir
01.03.2017
17:53:55

Alexander
01.03.2017
17:54:07
ну да
тут то тоже считай IntMap
только Hash

Dmitry
01.03.2017
17:54:47
@quetzal там нигде нет гуевой библиотеки, её что с нуля писать? а просто программировать с нуля на окамле и транслировать в js я как-то профита не виду

Alexander
01.03.2017
17:54:51
хм.. кстати это писалось когда Зефиров в той фирме работал

Dmitry
01.03.2017
17:54:56
виджеты всякие, вот это всё

Alexander
01.03.2017
17:54:57
правда не им

Quet
01.03.2017
17:55:15

Alexander
01.03.2017
17:55:23
про сишку дернули, это кстати прикольно, пакеты на hackage есть

Dmitry
01.03.2017
17:55:29
@async_prince его можно использовать как промежуточное представление для того, что бы граф перестраивать

Alexander
01.03.2017
17:55:31
вроде
стандартное же представление для разряженных матриц [(Нода, [Ребро])]
только типы на эффективные заменить

Vladimir
01.03.2017
17:57:11
я тут намекаю больше на то, что в хаскеле данные immutable, а графы вообще-то удобно иметь мутабельные

Alexander
01.03.2017
17:58:36
зачем?