This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-01-01
Channels
- # beginners (71)
- # boot (148)
- # cider (21)
- # cljs-dev (2)
- # cljsjs (35)
- # clojure (212)
- # clojure-russia (42)
- # clojure-spec (36)
- # clojure-uk (28)
- # clojurescript (18)
- # cursive (2)
- # datascript (20)
- # datomic (2)
- # hoplon (2)
- # off-topic (355)
- # om (2)
- # onyx (1)
- # protorepl (1)
- # reagent (34)
- # ring-swagger (6)
- # rum (8)
- # sql (4)
- # untangled (64)
- # vim (22)
- # yada (1)
@nicola часто будет проседать, когда за данными датомику приходится лезть в сторадж?
Я так - теоретизирую - если план выполнения зависит от порядка where - то с изменением данных, запросы которые летали начнут тормозить. Надо поиграть будет, с классическим бенчмарком каким-нибудь или свой выдумать
@nicola
1. запросы – на клиенте, а не в транзакторе
2. думаю, то это будет очень "узкий" случай, когда со временем данные начнут замедлять выполнение запроса исключительно из-за порядка :where
. будет скорее похоже на неверное изначальное предположение о data-domain'e
@nicola Если у тебя сначала было одного больше, а стало другого больше, то можешь поменять порядок в запросе. Если у тебя чего-то было на порядок больше, чем другого, а стало на порядок меньше -- что-то случилось. Что случилось?
А так-то что - все индексы известно как построены, все данные лежат локально (после первого запроса), домен данных известен (например, покупок >> пользователей >> товаров).
Не должно быть особенно сложно и планировщик построить, если кому-то нужно – сесть на txlog и слушать о том, каких entities сколько.
Тут Ричь пытался как-то оправдаться https://groups.google.com/forum/m/#!topic/datomic/6VkADvLx-QU
As people ponder experimenting with ahead-of-time planners, I'll remind you that:
'[:find ?desc
:in $ %
:where
[?root :num 100]
[descendant ?root ?desc]
[?desc :num 4]]
is just sugar for:
'{:find [?desc]
:in [$ %]
:where
[[?root :num 100]
[descendant ?root ?desc]
[?desc :num 4]]}
я на прошлом clojure/conj спросил даже Рича Хики, что с "explain", и он на меня глаза закатил )))
Стюарт сказал "people keep asking", и Рич в конце концов сказал, что либо оптимизирующий планировщик сделают, либо эксплейн
@misha https://github.com/tonsky/datascript/blob/master/src/datascript/parser.cljc#L680 вот даже парсер списка в мапу )
@asolovyov где-то в чатике датомика или кложи было недели 3 назад. без каких-либо доказательств
ну там не щатдаун происходит, а типа у транзактора начинают ласты клеиться, но как это выглядит - хз, и по какой кривой это замеряется - хз
скорее не тесты, а генераторы. нагенерить мусора, затранзактить, и потом бенчмаркать запросы и пуллы
кстати наверное бд музик брейнс подойдёт, откуда данные для демочки датомика. они же какой-то маленький срез данных оттуда брали
@asolovyov ссылку?
Прикольно, раньше была эвристика, но потом её выкинули, потому что она лажала? Круто.