Dmitry
если что.
Quet
аа.. ну если иммутабельное хранилище вам подходит
Dmitry
для выкапывания данных - используется в основном uniplate
Dmitry
ну как иммутабельное. апдейты там по факту есть
Quet
ну если их много то все становится грустно
Dmitry
но каждый апдейт - это перезаписывание головы
Dmitry
ну да, если туда начнут лупить апдейты, оно умрет скорее всего
Dmitry
но они не должны лупить туда.
Dmitry
а должны в какое-то другое место.
Dmitry
ну т.е в этой задаче они вообще не должны никогда.
Quet
и потом из этого места целиком переделывать иммутабельную базу?
Dmitry
ну, когда голова была монолитная - проблемы просматривались, т.е запись начинала доходить до десятых долей секунды
Dmitry
основном на IO
Dmitry
потому что оно было прям одним здоровым шматом, натурально
Dmitry
я попилил на независимые части, стало опять нормально
Dmitry
в памяти только индекс - ссылки
Dmitry
нужные объекты суммонятся (материализуются) по мере надобности
Quet
быстро суммонятся?
Dmitry
да
Dmitry
да и иерархия неглубокая
Dmitry
так что да, быстро всё пока что.
Dmitry
стоит про это в апреле в касперском попробовать рассказать?
Anonymous
а что в апреле? конфа?
Anonymous
какой город?
Dmitry
в касперском в мск вроде собираются митап сделать
Anonymous
круто, но хочу в Питере
Quet
а инфа по митапу уже есть? обычно это в гитлере обсуждают, а я его не читаю (
Dmitry
не знаю, я знаю только что в апреле и в касперском
Alexander
мне все доклад не придумать..
Dmitry
т.е там надо еще успеть подать, наверное
Alexander
угу
Dmitry
учитывая что это всё прямо сейчас пишется
Anonymous
тебе же не код показывать
Мерль
А я упустил, вы что вместо постгреса используете?
Dmitry
а это к кому вопрос?
Dmitry
если ко мне, то НЕ acid-state, т.к он всё в памяти хранит
Мерль
Мерль
а это к кому вопрос?
К вам, извините, промахнулся мимо сообщения
Alexander
у нас leveldb для diff и снапшотов и память
Quet
если ко мне, то НЕ acid-state, т.к он всё в памяти хранит
ну у вас acid-state по сути выступает индексом к данным?
Alexander
блин и вот я прям в данный момент пишу код для обновления схемы не покрываемой safecopy
Alexander
у нас граф, и если и объекты или relation исчезли, а обновляться надо
Anonymous
@qnikst @quetzal а можете свои задачи конкретно описать?
Мерль
По сути свой журналируемая редиска
Quet
@qnikst @quetzal а можете свои задачи конкретно описать?
у меня вообще постгрес везде, ничего интересного
Alexander
есть граф описывающий кластер нативными хацкельными типами, с ним работать надо
Anonymous
есть граф описывающий кластер нативными хацкельными типами, с ним работать надо
кластер чего? предметную область хотя бы примерно опиши пожалуйста
Alexander
кластер hardwar-ный
Alexander
да
Anonymous
таак. и что с кластером происходит?
Anonymous
сколько в нем машин?
Anonymous
вот есть много железок. а софт что делает?
Alexander
машин не много, дисков много
Alexander
в текущем (хотя он сильно скейлится) десяток машин на каждой п 0.5к дисков
Alexander
всякие сервисы хитрые
Alexander
все сообщают о живости и т.п., софтинка управляет стартует, стопает, командует как фс восстанавливать
Anonymous
как здесь используется графовое представление?
Anonymous
DAG или все же просто дерево?
Alexander
DAG
Alexander
впрочем A тут неверно
Anonymous
а как в хаскеле представить хотя бы dag? хмм
Anonymous
и уж тем более если циклы есть
Dmitry
а что мешает DAG представить просто ADT-jv
Alexander
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) -- тут можно разные контрукторы для направления
Alexander
дальше как хочешь или Set Rel, или HashMap Res Rel
Alexander
первое это каноническое, второе это индексированное
Anonymous
а что мешает DAG представить просто ADT-jv
представить типы легко, я операции над графом не очень себе представляю
Dmitry
например?
Dmitry
ну т.е любой ADT это граф и есть
Alexander
тут ещё он расширяемый произвольно
Dmitry
ну, не произвольный.
Alexander
не ADT у нас т.к. он не расширяемый
Anonymous
например?
ну как его хотя бы просто построить имея данные о вершинах и ребрах. ну и дальнейшее редактирование графа
Alexander
т.е. ты можешь легк написать новый модуль с куском схемы и использовать его