Fork me on GitHub
#clojure-russia
<
2017-01-01
>
a.espolov11:01:45

@nicola часто будет проседать, когда за данными датомику приходится лезть в сторадж?

dottedmag17:01:46

@nicola Да, хочется понять, когда ты ожидаешь проблем

niquola17:01:07

Мне самому это интересно

niquola17:01:10

Я так - теоретизирую - если план выполнения зависит от порядка where - то с изменением данных, запросы которые летали начнут тормозить. Надо поиграть будет, с классическим бенчмарком каким-нибудь или свой выдумать

misha17:01:28

@nicola 1. запросы – на клиенте, а не в транзакторе 2. думаю, то это будет очень "узкий" случай, когда со временем данные начнут замедлять выполнение запроса исключительно из-за порядка :where. будет скорее похоже на неверное изначальное предположение о data-domain'e

dottedmag17:01:57

@nicola Если у тебя сначала было одного больше, а стало другого больше, то можешь поменять порядок в запросе. Если у тебя чего-то было на порядок больше, чем другого, а стало на порядок меньше -- что-то случилось. Что случилось?

a.espolov18:01:40

Планы запросов прерогатива СУБД

a.espolov18:01:47

Или я ошибаюсь?)

dottedmag18:01:34

Если СУБД - это такой огромный чёрный ящик, то да.

dottedmag18:01:34

А так-то что - все индексы известно как построены, все данные лежат локально (после первого запроса), домен данных известен (например, покупок >> пользователей >> товаров).

dottedmag18:01:25

Не должно быть особенно сложно и планировщик построить, если кому-то нужно – сесть на txlog и слушать о том, каких entities сколько.

niquola18:01:21

Тут Ричь пытался как-то оправдаться https://groups.google.com/forum/m/#!topic/datomic/6VkADvLx-QU

niquola18:01:59

Вобщем постараюсь погонять его на реальных кейсах

misha19:01:33

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]]} 

asolovyov20:01:02

@nicola аа, я понял о чем ты, да

asolovyov20:01:21

я на прошлом clojure/conj спросил даже Рича Хики, что с "explain", и он на меня глаза закатил )))

asolovyov20:01:03

Стюарт сказал "people keep asking", и Рич в конце концов сказал, что либо оптимизирующий планировщик сделают, либо эксплейн

asolovyov20:01:18

@misha а вот откуда про 10 -> 100 - дуже цікаво

misha20:01:31

@asolovyov где-то в чатике датомика или кложи было недели 3 назад. без каких-либо доказательств

asolovyov20:01:48

гм, а в каком виде? Типа "не парьтесь" или "мы чота поменяли"?

misha20:01:00

типа "стюарт сказал, что теперь они считают "лимитом" 100B, а не 10B, как раньше"

asolovyov20:01:08

гм, прикол

asolovyov20:01:17

ну тема в том, что 100 это куда лучше 10

asolovyov20:01:21

прям на порядок )))

misha20:01:42

кто-то спросил "а чо за прикол с 10б?" кто-то ответил, что теперь это якобы 100б

misha20:01:14

ну там не щатдаун происходит, а типа у транзактора начинают ласты клеиться, но как это выглядит - хз, и по какой кривой это замеряется - хз

misha20:01:53

можно заморочиться и написать на спеке генеративных тестов на 100б датомов opieop

asolovyov20:01:20

клевый тред с Хики в группе

asolovyov20:01:34

генеративные тесты медленные (

misha20:01:01

скорее не тесты, а генераторы. нагенерить мусора, затранзактить, и потом бенчмаркать запросы и пуллы

misha20:01:50

кстати наверное бд музик брейнс подойдёт, откуда данные для демочки датомика. они же какой-то маленький срез данных оттуда брали

dottedmag21:01:01

Про датомик или другая?

dottedmag21:01:25

Прикольно, раньше была эвристика, но потом её выкинули, потому что она лажала? Круто.

airnsk21:01:04

подскажите, если кто знает - как в vim настроить ctags чтоб по функциям можно было прыгать в cljs которые через require подключены

airnsk22:01:04

ну, или в spacemacs . у меня там тоже не работает )