• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Scaling down CouchDB - Meet TouchDB
 

Scaling down CouchDB - Meet TouchDB

on

  • 1,918 views

 

Statistics

Views

Total Views
1,918
Views on SlideShare
1,918
Embed Views
0

Actions

Likes
1
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Scaling down CouchDB - Meet TouchDB Scaling down CouchDB - Meet TouchDB Presentation Transcript

    • TouchDB –scaling down CouchDB Stefan Baggström 20th Nov 2012
    • 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
    • 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
    • System to be builtCustomer Wellness Professional 4
    • CouchDB http://couchdb.apache.org/• 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
    • 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: http://www.funny-potato.com/ 6
    • 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 https://github.com/couchbaselabs/TouchDB-iOS/wiki 7
    • 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
    • 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
    • Time for scaled down demo? 10
    • 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
    • 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
    • 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