У нас похожая история. Я не говорю же, что аэроспайк не годен ни на что, я утверждаю, что 1) их маркетинг расходится с реальностью 2) консистентность «на глазок» это её отсуствие.
Да, я знаю, молодцы, что починили. Выше речь всё таки о том, что когда консистентность «на глазок», то ничего хорошего выйти не может. Монга до недавнего времени и аэроспайк хорошие кмк примеры.
Примерно как тут https://aphyr.com/posts/324-call-me-maybe-aerospike к сожалению не могу подробнее. При этом кластер на постгресе (в котором данных даже больше) потерей данных не страдает. (Там есть другие сложности конечно же, но не потеря данных)
Всё именно так. Люди не до конца разобравшись пишут статьи на хабр или ещё куда-нибудь. 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.
У меня очень позитивные впечатления от Ecto, мы вроде бы уже общались на эту тему в рассылке. Оно впрочем не пытается быть rails-like. Мемоизации нет, кэширование есть, N+1 решается до того как запрос вообще окажется сериализован в SQL.
Честно говоря очень не понимаю зачем jruby как основной язык/платформа. Разве там не проблем с поддержкой библиотеками? До сих пор видел только как способ сделать что-то на jvm при большой необходимости в ruby-шопах.
Вот, господа минусующие, вы бы хоть поправили меня. Я вполне готов принять тот факт, что в celluloid всё хорошо, а у меня старая или просто неверная информация.
Мне казалось там по треду на актора, может путаю с другой библиотекой или уже лучше стало. Во-вторых, даже если там всё хорошо уже — какую долю руби-экосистемы можно реально использовать совместно с ним?
Да хоть как функцию назвать можно, лишь бы корректно работала :) Новичкам тут всё одно — они в равной мере могут забыть и про процесс регистратор, и про правильную реализацию 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.
Например практически одновременно с анонсом выпустили статью (на котору даже ссылка в тексте есть) за авторством небезывестного Эрика Брюэра (автор CAP-теоремы). Там прямым текстом:
Тут результат не будет зависеть от порядка — останется ровно один живой процесс, ответственный за пользователя; на него будет резолвиться имя.
Если вызывавшая сторона делала что-то вроде `where` то он, при корректной реализации, дождется победителя и вернет его или отвалится по таймауту.