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