CouchDB vs PostgreSQL no Rails

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    CouchDB? C luster O f U nreliable C ommodity H ardware; Gerenciador de banco de dados orientado a documentos; Software livre da Apache; Usar, modificar e distribuír desde que um aviso de uso do código licenciado da Apache seja mantido.

    CouchDB? C luster O f U nreliable C ommodity H ardware; Gerenciador de banco de dados orientado a documentos; Software livre da Apache; Usar, modificar e distribuír desde que um aviso de uso do código licenciado da Apache seja mantido.

    CouchDB? C luster O f U nreliable C ommodity H ardware; Gerenciador de banco de dados orientado a documentos; Software livre da Apache; Usar, modificar e distribuír desde que um aviso de uso do código licenciado da Apache seja mantido.

    CouchDB? C luster O f U nreliable C ommodity H ardware; Gerenciador de banco de dados orientado a documentos; Software livre da Apache; Usar, modificar e distribuír desde que um aviso de uso do código licenciado da Apache seja mantido.

    Favorites, Groups & Events

    CouchDB vs PostgreSQL no Rails - Presentation Transcript

    1. CouchDB vs PostgreSQL em Rails Diogo Biazus (diogob@gmail.com) e Johalf Farina (johalffarina@gmail.com)
    2. CouchDB ?
      • Projeto da Apache.org;
      • Nasceu em 2005;
      • OpenSource;
      • SGDB orientado a documentos;
      • Versão atual 0.9.1.
      CouchDB
    3. MySQL PostgreSQL SQLite SGBDs relacionais SimpleDB MongoDB CouchDB SGBDs orientados a documentos Cenário atual de SGBDs
    4. SGBD orientado a documentos
      • Os dados não são armazenados em linhas e colunas de tabelas relacionadas ou não e sim em documentos ;
      • Não há limite no armazenamento das informações;
      • Documentos são armazenados e acessados atravéz de um identificador;
      • Livre de schemas.
    5. Agner Krarup
    6. Porque CouchDB ?
    7. { "_id": "acdd4a90-6e85-012c-a43d-001e68078287", "_rev": "4-1059007316", "name": "Lorem ipsum dolor asit amet", "created_at": "2009/08/18 21:32:18 +0000", "email": "lipsum@lipsum.com" } Json rules!!
    8. MapReduce!
    9. Interface HTTP RESTfull
      • C reate: HTTP POST /banco/db
      • R ead: HTTP GET /banco/doc_id
      • U pdate: HTTP PUT /banco/doc_id
      • D elete: HTTP DELETE /banco/doc_id
    10. Replicaçãoooo!!!!
    11. RDBMS Slave Slave Slave Master
    12. Time to Relax!!
    13.  
    14. Versionamento
    15. Rááááááá
    16. Os dados nunca são sobrescritos
    17. CouchDB on Rails = Plugin ou Gem
    18. ActiveCouch http://github.com/arunthampi/activecouch/tree/master
    19. RelaxDB http://github.com/paulcarey/relaxdb/tree/master
    20. Couch_potato http://github.com/langalex/couch_potato/tree/master
    21. CouchRest + Couch_foo = Happiness http://github.com/jchris/couchrest/tree/master http://github.com/georgepalmer/couch_foo/tree/master
    22. Couch_foo Model class Participant < CouchFoo::Base property :name, String property :email, String property :created_at, DateTime validates_presence_of :name validates_presence_of :email validates_format_of :email, :with => %r{^(?:[_a-z0-9-]+)(.[_a-z0-9-]+)*@([a-z0-9-]+)(.[a-zA-Z0-9-.]+)*(.[a-z]{2,4})$}i, :if => :email? end
    23. Alguns recursos
      • http://couchdb.apache.org/
      • http://en.wikipedia.org/wiki/CouchDB
      • http://books.couchdb.org/relax/
      • http://planet.couchdb.org/
      • http://twitter.com/CouchDB
    24. PostgreSQL ?
      • Nasceu em 1996;
      • OpenSource;
      • SGDB SQL/Relacional;
      • Versão atual 8.4;
      • Desenvolvido em C;
      • Diversas extensões;
      PostgreSQL
    25. Porque PostgreSQL ?
    26. Extensões
      • PGTemporal
      • DBI-Link
      • Diversas funções de criptografia e digests
      • Levenshtein, Soundex e trigramas
    27. I hate javascript
      • PL/Ruby
      • PL/Python
      • PL/Perl
      • PL/Java
      • etc...
    28. CouchDB != Relacional
      • O Rails foi desenvolvido para bases SQL
      • Trabalhar com Rails é preferir convenções a configurações
      • Tentar usar o CouchDB como base SQL ou o Rails com uma base orientada a documentos não é elegante
      • Funcional x Declarativo
    29. PostgreSQL on Rails
      • Gem ruby-pg
      • Integração nativa com AR
      • Plugin sexy_pg_constraints
      • Plugin para integrar via Sequel
    30. Alguns recursos
      • http://www.postgresql.org/
      • http://en.wikipedia.org/wiki/PostgreSQL
      • http://www.postgresql.org.br/
      • http://planet.postgresql.org/
      • http://planeta.postgresql.org.br/
      • http://twitter.com/PostgreSQL
    31. Performance
      • O momento que todos esperavam
      • Testes feitos com script/performance/profiler
      • Cada teste foi feito com uma média de tempo de 1000 repetições de chamadas diretas ao modelo
      • A comparação é de CouchFoo x ruby-pg e não de CouchDB x PostgreSQL
    32. Performance
      • CouchDB 0.9.1
      • PostgreSQL 8.3.4
      • Testes muito simples, não levam em consideração:
        • Consultas complexas
        • Concorrência
        • Múltiplos núcleos (somente 2)
    33. Performance Operação PG (ms) CouchDB (ms) .all (banco vazio) 13,80 39,71 .create 117,58 296,57 .all (após .create) 35,24 60,18 .find_by 26,64 58,51
    SlideShare Zeitgeist 2009

    + Johalf FarinaJohalf Farina Nominate

    custom

    289 views, 0 favs, 0 embeds more stats

    Palestra realizada no 1° Rs on Rails no dia 29 de more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 289
      • 289 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 4
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories