Scaling down CouchDB - Meet TouchDB


Published on

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Scaling down CouchDB - Meet TouchDB

  1. 1. TouchDB –scaling down CouchDB Stefan Baggström 20th Nov 2012
  2. 2. Background• We are a research team ”Felix” in TUT/BME developing new ICT solutions in the area of health and wellness technology• We have built a system prototype with CouchDB technologies – to iterate the product concept rapidly – to pilot with potential customers 2
  3. 3. Prototyping a wellnessapplication with CouchDB• Goals for prototype: – Can be used with any Internet devices – Good offline functionality• Being agile: – Data model evolves across increments• There is a schedule to meet: – Consider tech learning curves and development time 3
  4. 4. System to be builtCustomer Wellness Professional 4
  5. 5. CouchDB• CouchDB has some interesting features – JSON document storage – Distributed architecture – Eventual consistency – Bi-directional replication – Serving applications directly from database• Scaling up - see e.g. BigCouch 5
  6. 6. CouchDB – scaling down• There is CouchDB port for iOS and Android (Couchbase Mobile), but the project is dead – Erlang implementation as in CouchDB – Issues: size (~4MB) and slow startup (5-10s) Source: 6
  7. 7. Meet TouchDB• TouchDB is a lightweight CouchDB-compatible database engine with similar REST API to CouchDB• Replicates with CouchDB• iOS and Android ports implemented with Objective-C / Java on top of SQLite• Native language access via CouchCocoa / Ektorp 7
  8. 8. Personal Wellness App –What is needed and what not?• Good enough performance for – Relatively small data sets (may have large attachments) – A few relatively simple data queries – Good functionality when offline or with intermittent connectivity• Support for multi-device-ownership – Use with any device that suits your task and context 20.11.2012 8
  9. 9. Wellness Android app –Abstract architecture Application UI – HTML5 with JQuery Mobile WebView with Java-JavaScript IF TouchDB – http listener TouchDB - Application Core TouchDB library Ektorp Android – Android –Android – Java VM Android - SQLite MM APIs BT API 9
  10. 10. Time for scaled down demo? 10
  11. 11. How do we use TouchDB? (1/2)• All documents defined with ”type” property – Database schema emerging• Using Java Ektorp API for document CRUD• Using HTTP API for application resources and views – Implemented home brewn access control• Database provides changes feed – Used to trigger notifications and other actions 11
  12. 12. How do we use TouchDB? (2/2)• Single responsive HTML5 application for desktops, tablets, and smart phones – CouchApp used for deployment to CouchDB• Initial replication in foreground during first time use, and then continuous replication in background• Data model evolves all the time 12
  13. 13. TouchDB for wellness appPros Cons• Offline functionality • Immature at the moment – All transactions are always – iOS port just got v1.0 status, fast & predictable as they Android port is behind iOS are local transactions – Small development community• Replication • Fragile security – Data – HTTP API is accessible by – Applications other Android applications – Supports filtered replication within device - better control if• NoSQL is supports used only via Java/Ektorp incremental development • Lack of C/TouchDB• Meets performance professionals out there requirements of a personal database• JavaScript in server and clients 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.