2015-12-05 Данил Никифоров - nosql для мобайла с...
TRANSCRIPT
Мобильныи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