스토리지에 TokyoCabinet을 사용하는 방법

지금까지는 모두 storage에 메모리를 지정해 왔습니다만, 물리 파일을 이용하는 방법을 소개합니다


조건



server: 1대
storage type : TokyoCabinet
루비 버전 : v2.1
ROMA 버전 : v1.2.0
Installation type : rubygems

절차



1. install ROMA


$ gem install roma

2. make instance(Cluster)


$ mkroute localhost_10001 localhost_10002 --replication_in_host
ls -l
  -rw-r--r-- 1 root root 35693 Dec  2 05:35 localhost_10001.route
  -rw-r--r-- 1 root root 35693 Dec  2 05:35 localhost_10002.route

3. TokyoCabinet 설치



라이브러리 설치


  • OS에 따라 다음 라이브러리를 install합니다.

    CentOS 6.x 7.x
    우분투 14.x

    gcc
    gcc

    gcc-c++
    build-essential

    make
    make

    zlib-devel
    zlib1g-dev

    bzip2-devel
    libbz2-dev


  • Install TokyoCabinet Main unit


    $ wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.48.tar.gz
    $ tar -zxvf tokyocabinet-1.4.48.tar.gz
    $ cd tokyocabinet-1.4.48
    $ ./configure --prefix=/usr/local/libexec
    $ make
    $ sudo make install
    
  • prefix 등은 필요한 경우 적절하게 변경하십시오.

    Install Tokyo Cabinet Ruby gem


  • Ruby에서 TokyoCabinet을 사용할 수있게하는 gem입니다.
  • 현재 tokyocabinet gem은 ruby ​​v1.9.2 이상을 지원하지 않으므로 아래에서 해당 버전을 다운로드하여 수동으로 설치하십시오.
    $ wget https://github.com/roma/tokyocabinet-ruby/archive/v1.31.a.tar.gz
    $ tar -zxvf v1.31.a.tar.gz
    $ cd tokyocabinet-ruby-1.31.a
    $ gem build tokyocabinet.gemspec
    $ gem install --local tokyocabinet-1.31.a.gem -- --with-tokyocabinet-dir=/usr/local/libexec
    $ gem list tokyocabinet
    *** LOCAL GEMS ***
    tokyocabinet (1.31.a)
    

    확인


  • 제대로 install 할 수 있었는지 irb로 확인할 수 있습니다
  • $ irb
    YOUR_RUBY :001 > require 'tokyocabinet'
     => true
    YOUR_RUBY :002 > include TokyoCabinet
     => Object
    YOUR_RUBY :003 > hdb = HDB.new
     => #<TokyoCabinet::HDB:0x00000002854fd8 @hdb=#<TokyoCabinet::HDB_data:0x00000002854fb0>>
    YOUR_RUBY :004 > hdb.open('test.tch', HDB::OWRITER | HDB::OCREAT)
     => true
    YOUR_RUBY :005 > hdb["test"] = "ok"
     => "ok"
    YOUR_RUBY :006 > hdb["test"]
     => "ok"
    YOUR_RUBY :007 > hdb.close
     => true
    YOUR_RUBY :008 > exit
    

    4. config 설정


    $ mkconfig
    
    Which storage will you use?
    [1] Ruby Hash
    [2] Tokyo Cabinet
    [3] Groonga
    > ### => 2を選択します
    

    나머지 설정은 서버 및 환경에 맞게 입력하십시오.
    ぃ tp // 코 m / 히로아키 이와세 / ms / 84bd 36f2f482 6c2c3

    5. 부팅 ROMA


    romad localhost -p 10001 -d --config ./config.rb --replication_in_host
    romad localhost -p 10002 -d --config ./config.rb --replication_in_host
    
  • 만든 config.rb를 지정하여 ROMA를 시작합니다.

    6. 확인


    storages[roma].storage.st_class가 TCStorage가되면 OK입니다.
    $ telnet localhost 10001
    
    > stat storage
      stats.run_iterate_storage false
      stats.run_storage_clean_up false
      storages[roma].storage.storage_path /home/roma/localhost_10001/roma
      storages[roma].storage.st_class TCStorage
      storages[roma].storage.divnum 10
      storages[roma].storage.option bnum=5000000#xmsiz=16106127#opts=d#dfunit=10
      .
      .
      .
    
    storages[roma].storage.storage_path 에 있는 /home/roma/localhost_10001/roma 아래에 TC 파일이 작성되었습니다.
    $ ls -l /home/roma/localhost_10001/roma
    total 204880
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 0.tc
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 1.tc
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 2.tc
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 3.tc
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 4.tc
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 5.tc
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 6.tc
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 7.tc
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 8.tc
    -rw-r--r-- 1 roma roma 20975936 Dec  4 11:31 9.tc
    -rw-rw-r-- 1 roma roma        0 Dec  4 11:31 lock
    -rw-rw-r-- 1 roma roma        0 Dec  4 11:31 status.log.1
    
  • 마찬가지로/home/roma/localhost_10002/roma 아래에서도 작성되었습니다

  • 데이터 내용


  • virtual node, 시간, 논리 클럭(업데이트된 횟수), expired_time, value 의 순서로 1행으로 저장된다
  • 실제 tc 파일의 데이터가 binary 변환되었습니다

  • 논리 클럭
  • 레코드가 업데이트 될 때마다 +1됩니다
  • 과부하와 같은 다른 작업이 동시에 실행 중일 때 어떤 것이 최신인지 결정하는 데 사용됩니다.


  • 참조 URL



    ROMA Use TokyoCabinet for ROMA : htp://로마-kvs. 오 rg / ぇ r rn / Tokyobine t_ b. HTML

    좋은 웹페이지 즐겨찾기