MongoDB javascript engine 교체 및 튜닝

|

메뉴얼 : http://www.mongodb.org/display/DOCS/Building
실행 환경 : ubuntu 11.04

v8 설치하기
만약에 몽고디비 src가 ~/workspace/mongodb-src-r1.8.2 에 있을경우
v8은 ~/workspace/v8 으로 받아놓자

v8 컴파일 
필수 패키지 설치
sudo apt-get install subversion git-core tcsh git-core scons g++ libpcre++-dev
sudo apt-get install libboost-dev libreadline-dev xulrunner-1.9.1-dev
v8 다운로드
svn checkout http://v8.googlecode.com/svn/trunk/ v8
ubuntu 64bit에서 컴파일하기 위해서
scons arch=x64


mongodb 소스파일받기 
  1. http://www.mongodb.org/downloads 에서 가장 오른쪽의 source부분
  2. wget http://downloads.mongodb.org/src/mongodb-src-r1.8.2.tar.gz
mongodb 컴파일하기
필수 패키지 설치 
apt-get -y install tcsh git-core scons g++
apt-get -y install libpcre++-dev libboost-dev libreadline-dev xulrunner-1.9.2-dev
apt-get -y install libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev libboost-date-time-dev

scons all --usev8

v8으로 계속 m/r을 돌리다보면 메모리릭이 있는거 같다..... jira에 해당 버그가 reporting되어 있는거 같은데....나중에 고친다고함 ㅋ 
And

CouchBase(CouchDB) Driver

|
couchdb-python
homepage : http://code.google.com/p/couchdb-python/
api manual : http://packages.python.org/CouchDB/ 

설치
wget http://pypi.python.org/packages/source/C/CouchDB/CouchDB-0.8.tar.gz
압축을 푼후에 sudo python build install 하면 설치완료
python코드로 view를 작성하기 위해서 local.ini파일에 추가
[query_servers]
python=/usr/local/bin/couchpy

간략설명
couchdb.client : client library
couchdb.design : design document를 조작하기 위해서
couchdb.mapping : couchdb와 python object와의 맵핑
couchdb.view : python에서 view를 작성하기 위해서

추가적인 바이너리 제공
couchdb-dump : couchdb의 내용을 mime multi part file로 만든다
couchdb-load : cuochdb에 dump된 mime multipart file을 올린다
couchdb-replicate : 데이터가 변경되었을 경우에 replica에 변경사실을 알려주기위한 notification으로 사용가능하다

couchdbkit 
http://couchdbkit.org/
view를 만드는 부분이 상당히 까다롭다
실제  view를 추가하기 위해서는 특정 디렉토리를 생성한후에 js파일을 만들어서 put명령어를 통해서 database에 적용시켜야한다


#!/usr/bin/env python
#-*- encoding:utf-8 -*-

import datetime
from couchdbkit import *


class Greeting(Document):
    author = StringProperty()
    countent = StringProperty()
    date = DateTimeProperty()


if __name__ == '__main__':
    server = Server(uri="http://xx.xxx.xx.xx:5984")
    db = server.get_or_create_db("mall")

    Greeting.set_db(db)

    greet = Greeting(
        author = "kim",
        content = u"김",
        date = datetime.datetime.utcnow()
        )
    greet.save()
    greet.babo = u"아니야"
    greet.save()
 



 
And

CouchBase Single Server

|
  • CouchBase Single Server 특징 (http://www.couchbase.com/products-and-services/couchbase-single-server)
    • membase + couchone 합병하면서 CouchBase, Inc를 만들면서 만든 제품

    • 기존의 CouchDB랑 같지만 GeoCouch가 미리 셋팅되어있다는 것만 다름 (이제 CouchDB가 아니라 CouchBase single Server임)
      • 2011년 여름에 membase 형태의 couchBase로 업그레이될 예정이라고 함

    • auto sharding은 지원하지 않는 듯함
    • 최대 2개의 node에서 support없이 enterprise edition 을 사용가능 (실서비스에도 2개의 node까지는 무료사용)
       
    • 2개이상의 node에서 무료로 사용하려면 community edition을 사용해야할듯

    • develop환경에서는 무제한으로 사용가능
       
    • 자세한 licence fee 는 : http://www.couchbase.com/products-and-services/Couchbase-suppor


  • 설치
    • 다운로드받은 deb 파일 설치 (community edtion으로 설치)
       wget http://c3145442.r42.cf0.rackcdn.com/couchbase-server-community_x86_64_1.1.deb
       sudo dpkg -i couchbase-server-community_x86_64_1.1.deb
       기존에 couchdb가 설치되어있었다면 aptitude remove couchdb 로 삭제

    •  기본적인 디렉토리 구조
       /opt/couchbase-server 에 설치되는 듯
      • couchDB에 대한 설정파일 : /opt/couchbase-server/etc/couchdb/default.ini , local.ini 파일
      • couchDB데이터 파일 : /opt/couchbase-server/var/lib/couchdb
         
    •  demon start, stop
      /etc/init.d/couchbase-server start
      /etc/init.d/couchbase-server stop

    •  Futon UI 접속 (관리)
      http://127.0.0.1:5984/_utils 





And
prev | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ··· | 21 | next