Search
Write a publication
Pull to refresh
2
0

Пользователь

Send message
У нас похожая история. Я не говорю же, что аэроспайк не годен ни на что, я утверждаю, что 1) их маркетинг расходится с реальностью 2) консистентность «на глазок» это её отсуствие.
Спасибо на добром слове :)
Да, я знаю, молодцы, что починили. Выше речь всё таки о том, что когда консистентность «на глазок», то ничего хорошего выйти не может. Монга до недавнего времени и аэроспайк хорошие кмк примеры.
Примерно как тут https://aphyr.com/posts/324-call-me-maybe-aerospike к сожалению не могу подробнее. При этом кластер на постгресе (в котором данных даже больше) потерей данных не страдает. (Там есть другие сложности конечно же, но не потеря данных)
Когда consistency начинают в процентах, то случается монга или аэроспайк. На неоктором масштабе /dev/null куда как лучше
То-то в кластере, обслуживающем десятки терабайт данных, при условии отсуствия сети «как у гугла» актуальность теоремы видно «невооружённым глазом».
Всё именно так. Люди не до конца разобравшись пишут статьи на хабр или ещё куда-нибудь. TrueTime сообщает время + неопределёность, Spanner всегда сериализует транзакции, чтобы интервалы не пересекались. Если они всё таки пересекаются система просто ждёт. GPS нужно чтобы ждать меньше.

Например практически одновременно с анонсом выпустили статью (на котору даже ссылка в тексте есть) за авторством небезывестного Эрика Брюэра (автор CAP-теоремы). Там прямым текстом:

Many assume that Spanner somehow gets around CAP via its use of TrueTime, which is a service that enables the use of globally synchronized clocks. Although remarkable, TrueTime does not significantly help achieve...

One subtle thing about Spanner is that it gets serializability from locks, but it gets external consistency (similar to linearizability) from TrueTime. Spanner’s external consistency invariant is that for any two transactions, T1 and T2 (even if on opposite sides of the globe):
if T2 starts to commit after T1 nishes committing, then the timestamp for T2 is greater than the timestamp for T1

Spanner’s use of TrueTime as the clock ensures the invariant holds. In particular, during a commit, the leader may have to wait until it is sure the commit time is in the past (based on the error bounds).
Map-reduce это довольно частный случай. Можно разные стадии обработки держать на разных машинах, можно пабсаб, можно писать поверх riak_core, можно использовать подход актор-на-пользователя с регистрацией в etcd (или чём угодно таком). Много как можно одно приложение намазать на кластер и не только в Erlang.
Ну не знаю. У меня модели с набором коротких функций вида "добавь к запросу ассоциацию X", "дай мне Y", "примени предикат c аргументами", которые (спасибо ecto) можно комбинировать, а бизнес-логика в контроллерах, которые вполне могли бы быть на Erlang.
Не уверен, что это хорошая идея вообще. Я бы делал DAO-слой на Elixir, и уже с ним общался бы из Erlang.
У меня очень позитивные впечатления от Ecto, мы вроде бы уже общались на эту тему в рассылке. Оно впрочем не пытается быть rails-like. Мемоизации нет, кэширование есть, N+1 решается до того как запрос вообще окажется сериализован в SQL.
Честно говоря очень не понимаю зачем jruby как основной язык/платформа. Разве там не проблем с поддержкой библиотеками? До сих пор видел только как способ сделать что-то на jvm при большой необходимости в ruby-шопах.
Вот, господа минусующие, вы бы хоть поправили меня. Я вполне готов принять тот факт, что в celluloid всё хорошо, а у меня старая или просто неверная информация.
Мне казалось там по треду на актора, может путаю с другой библиотекой или уже лучше стало. Во-вторых, даже если там всё хорошо уже — какую долю руби-экосистемы можно реально использовать совместно с ним?
В эрланге нет строк но есть бинари, и, что более важно, io-списки. Последние таки просто созданы для эффективной шаблонизации и всякого такого.
Речь про Ecto или про boss_db? Как давно это было?
ЕМНИП он не работал и не работает. Чисто на поиграть.
Да хоть как функцию назвать можно, лишь бы корректно работала :) Новичкам тут всё одно — они в равной мере могут забыть и про процесс регистратор, и про правильную реализацию where.
A race condition or race hazard is the behavior of an electronic, software or other system where the output is dependent on the sequence or timing of other uncontrollable events.
en.wikipedia.org/wiki/Race_condition

Тут результат не будет зависеть от порядка — останется ровно один живой процесс, ответственный за пользователя; на него будет резолвиться имя.

Если вызывавшая сторона делала что-то вроде `where` то он, при корректной реализации, дождется победителя и вернет его или отвалится по таймауту.
Он прекрасно подходит, это "отнюдь" было про "во многих случаях без него можно обойтись"

Information

Rating
Does not participate
Location
Berlin, Berlin, Германия
Date of birth
Registered
Activity