Comments 13
Круто, лично мне, интересно пока только использоватение как standalone NoSQL хранилище.
0
UFO just landed and posted this here
Realm — это интересная замена Core Data, но там на текущий момент нет каких-либо средств репликации между мобильной и серверной базой данных. В документации есть примеры получения данных из REST-сервисов, но это не репликация. В нашем случае необходима была единая система синхронизации данных между мобильными и десктопными приложениями через централизованный серверсайд.
+1
Насколько я понял связь между couchbase server и couchbase lite осуществляется через Couchbase Sync Gateway путем какого-то rest api. Что происходит в момент синхронизации? Поднимается 1 connect на все команды или 1 connect на команду? Можно ли сделать все через 1 сокет?
0
Да, репликация происходит через REST API. Там всё сделано не очень оптимально, и об этом я как раз собираюсь рассказать в следующей статье. На каждое обращение к REST-сервису создаётся отдельный NSURLConnection (т.е. даже не NSURLSession). Загнать всё в один сокет в такой схеме вряд ли получится.
Для нормальной синхронизации, конечно, нужен нормальный транспортный механизм (не поверх REST), оптимизированный под мобильные устройства и учитывающий их специфику. К сожалению, подобные решения мне попадались только в проприетарном софте. Сейчас как раз ищу что-то подобное или думаю над написанием своего решения.
Для нормальной синхронизации, конечно, нужен нормальный транспортный механизм (не поверх REST), оптимизированный под мобильные устройства и учитывающий их специфику. К сожалению, подобные решения мне попадались только в проприетарном софте. Сейчас как раз ищу что-то подобное или думаю над написанием своего решения.
0
ввиду отсутствия подробного описания протокола CouchDB — из-за недостаточно подробной документации разработчикам Couchbase Lite пришлось отчасти реверсировать его.
Странно, я думал CouchDB — опенсорсный, потому они его и форкнули в своё время
0
Он опенсорсный, но проблема была именно в плохой документации — даже при наличии исходников восстановить протокол до полной совместимости непросто. Вот что пишут авторы Couchbase Lite:
Couchbase Lite’s replication protocol is compatible with Apache CouchDB. This interoperability is an important feature, but implementing it was challenging because much of CouchDB’s replication protocol is undocumented.
0
Спасибо, не знал.
Завидую вам, я давно приглядываюсь к Couchbase Lite. Даже скачивал какие-то примеры, смотрел что да как, но так пока и не придумал для себя задачи, чтобы её заюзать в мобильных приложениях. Хотя в вебе с удовольствием пользуюсь CouchDB.
С конфликтами не сталкивались? Когда ревизии в удалённой и локальной базе не совпадают. Или у вас только синхронизация без изменений данных на телефоне?
Завидую вам, я давно приглядываюсь к Couchbase Lite. Даже скачивал какие-то примеры, смотрел что да как, но так пока и не придумал для себя задачи, чтобы её заюзать в мобильных приложениях. Хотя в вебе с удовольствием пользуюсь CouchDB.
С конфликтами не сталкивались? Когда ревизии в удалённой и локальной базе не совпадают. Или у вас только синхронизация без изменений данных на телефоне?
0
Синхронизация в обе стороны, изменения на телефоне тоже есть, но конфликты пока исключаются за счёт разделения по ролевой модели (какие-то данные правятся на десктопе, какие-то на телефоне). Средства для разрешения конфликтов в Couchbase Lite тоже есть, так как любое изменение в документе это новая ревизия, и при конфликте обе ревизии сохраняются. Но сами конфликты должны разрешаться в клиентском коде — удалением или слиянием ревизий. Пока что пробовать этот механизм не приходилось.
0
На Конференции Мёбиус был доклад про Couchebase, можно скачать доклад тут
+1
Sign up to leave a comment.
Офлайновая работа с данными в мобильном приложении с использованием Couchbase Lite