2015-12-05 Данил Никифоров - NoSQL для мобайла с...

Post on 22-Jan-2017

335 views 3 download

Transcript of 2015-12-05 Данил Никифоров - NoSQL для мобайла с...

МобильныиNoSQL

исинхронизация

Сложностиприсинхронизацииданных

1. Поддержкаконсистентностиданных2. Учетсостояниеоффлайн/онлайн3. Обработкаконфликтов4. Разграничениеправдоступа5. MappingсущностейлокальнойБДнаБДсервера

КОМПОНЕНТЫСИСТЕМЫСИНХРОНИЗАЦИИ

Couchbasemobile

CouchbaseLiteНативный,полнофункциональный,документ-ориентированный,легковесный,секьюрный

фреймворк

Легковесность

•  Являетсябиблиотекойподключаемойкприложению,анедополнительнымсервернымпроцессом.

•  БыстрыйзапускнаотносительномедленныхCPU:<50msнасвежихiPhone.

•  Невысокоепотреблениепамятиихорошаяпроизводительность.

Документо-ориентированность

•  ДанныехранятсяввидеJSONдокументов.

•  Отсутствуетсхемабазыданных

•  Данныемогутэволюционироватьбезнеобходимостиявныхмиграций

•  Документымогутсодержатьсравнительнобольшиеаттачменты

Синхронизируемость

•  Любые2копиибазымогутбытьсинхронизированы(eventuallyconsistent)

•  Интерфейсдлямерджа

•  Двавида:on-demandиconxnuous

Архитектура

Хранилище:SQLite/ForestDBForestDBэтоновоехранилищекотороеможетбытьиспользовановCBL.Оноимеетпреимуществавскорости(2x-5x)ииспользованиипамяти.Недостатки:•  НельзятакпростопереключитьсясSQLiteнаForestDB

•  FullTextsearchоченьлимитированныйимедленнеечемFTS3(SQLite)

•  GEOSearchоченьлимитированный(толькопоискпоточкам)

КАЖДОМУIOSРАЗРАБОТЧИКУНУЖНЫМОДЕЛИ

Models

CRUD

DocumentinDB

A�achments

Synchronizaxon

RevisionHistory

•  Прикаждомизменениидокументасоздаетсяноваяревизия(CBLRevision)

•  Удалениеэтосозданиеревизиисполем“_deleted”

•  Намвозможнопотребуетсяустранятьконфликты

•  [databasecompact];

ReplicaxonConflicts

Authenxcaxon

SYNCGATEWAY

SyncGateway

•  Репликации•  Аутентификация•  Секционирование(parxxoning)данных

•  Контрольдоступакданным

Channels

SyncFuncxon

SyncFuncxonSample1

SyncFuncxonSample2

Q&A

THANKYOU