CouchDB – Implementação

6 fevereiro 2010 § 3 comments

O CouchDB é feito na plataforma Erlang OTP, uma linguagem de programação funcional, concorrente e uma plataforma de desenvolvimento. Erlang foi desenvolvida para aplicações em tempo real de telecomunicações com ênfase na extrema confiabilidade e disponibilidade.

Na sintaxe e na semântica, Erlang é muito diferente de linguagens de programação convencionais como C ou Java. Erlang usa “processos” leves e passagem de mensagem por concorrência, não tem compartilhamento de estado de thread e todos os dados são imutáveis. A natureza robusta e concorrente do Erlang é ideal para um servidor de banco de dados.

O CouchDB é projetado para concorrência livre de locks, no modelo conceitual e na implementação atual do Erlang. Reduzindo gargalos e evitando locks mantém o sistema inteiro funcionando previsivelmente sobre cargas pesadas. O CouchDB pode acomodar muitas mudanças de replicação de clientes, abrir e atualizar documentos, consultar views cujos índices estão sendo simultaneamente sendo atualizados por outros clientes, sem precisar de locks.

Para alta disponibilidade e mais usuários concorrentes, o Couchdb é projetado para um cluster “shared nothing”. Em um cluster “shared nothing”, cada máquina é independente e replica dados com seus companheiros de cluster, deixando falhas individuas de servidores com zero de downtime. E porque scans de consistência e consertos não são necessários no restart, se o cluster inteiro falhar – devido a uma queda de energia no datacenter, por exemplo – todo o sistema distribuído do CouchDB volta a ficar disponível depois de um restart.

O CouchDB é construído desde o início com uma visão consistente de um sistema distribuído de banco de dados orientado a documento. Ao contrário de tentativas pesadas em construir recursos distribuídos no topo da mesma herança de modelos e base de dados, ele é o resultado de um projeto, engenharia e integração cuidadosos. O documento, view, segurança e modelos de replicação, a proposta especial da linguagem de query, o layout robusto e eficiente de disco e a natureza concorrente e real da plataforma Erlang são cuidadosamente integrados para um sistema real e eficiente.

Essa é uma tradução adaptada:
http://couchdb.apache.org/docs/overview.html


  • CouchDB
  • CouchDB – No Locking
  • Tags , , , ,

    § 3 Comentários para CouchDB – Implementação"

    • Com certeza, Renan! Valeu pela atenção dispensada! Vou procurar me informar sobre esta emprega (hosting). Já imaginava que quem usasse CouchDB por aqui o fizesse em Cloud, no seu caso esta alternativa é bem válida. Estes bancos “NoSQL” têm tudo para crescer! Bem, sucesso a você e novamente parabéns por estes conteúdos de CouchDB!

    • Lucas Renan disse:

      Felipe,

      obrigado pelo elogio ao conteúdo do blog, o Tapajós foi muito legal em divulgar no blog dele. Essas palestras do EDTED foram gravadas? Não fiquei sabendo muito sobre o evento, pois estava concentrado em uma aplicação para o Yahoo Hack Day hehehe.
      Com relação a hospedagem específica para o CouchDB, a única que eu conheço é a http://hosting.couch.io/. A CouchIO é a empresa do criador (Damien Katz) e dos commiters (Jan Lehnardt, Chris Anderson etc) do CouchDB, mas eu não cheguei a utiliza-la. No meu caso, em produção estou utilizando um Cloud Server da Locaweb, então eu mesmo tenho que administrar o servidor (vale ressaltar que está funcionando muito bem).
      Com relação a “despontar comercialmente” não sei se isso é fato ou não (afinal eu utilizo o CouchDB em uma aplicação comercial que é rentável). Os bancos considerados NoSQL começaram a serem utlizados recentemente, mas logo irão alcançar mais popularidade. Talvez o MongoDB seja mais popular comercialmente que o CouchDB pelo marketing que a 10gen faz. (não tenho certeza se é esse o nome da empresa “por trás” do Mongo)
      Bom, acho que respondi sua pergunta, qualquer coisa estamos as ordens.

    • Olá Lucas! Uma coisa puxa a outra: assisti a palestra do Tapajós no EDTED no sábado e vi no blog dele uma referência para o seu! Ótimos conteúdos sobre CouchDB. Tenho a curiosidade de experimentar o uso do banco (para ser sincero já li sobre CouchDB alguns meses atrás mas não “toquei o barco adiante”, mas agora animei de novo com isto).

      Estou para baixar e instalar o Couch em minha máquina mas gostaria de tirar uma dúvida que o Tapajós não soube me responder: você consegue indicar um servidor que ofereça o serviço de CouchDB? Infelizmente este banco parece que AINDA não despontou comercialmente né.

      Abraço, e se desejar, mantenha contato por email.

    Deixe um Comentário

    O seu endereço de email não será publicado Campos obrigatórios são marcados *

    *

    Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>