2012년 8월 30일 목요일

upgrading riak 1.2.0 in centos

riak rolling upgrade 테스트를 위해서,
riak 1.1.4가 설치되어 있는 centos에서
riak 1.2.0 rpm으로 설치하고자 했는데...

다음과 같은 메시지가 떨어진다.



Loading ....

dependency 를 맞춰서 설치해줘야 하는데... 매우 귀찮아지는 듯...
ubuntu로 바꿔서 설치하는 것을 시도해 볼까 한다.


2012년 8월 28일 화요일

embed riak native client in erlang release

code:add_path를 통해서 riak_kv, riak_core ebin 디렉토리를 지정하고,
riak:client_connect를 하기 전에, 다음 코드를 실행해 놓도록 하면 된다.

Loading ....

2012년 8월 23일 목요일

rebar vs sinan


erlang project로 package를 만들어, release를 하고, deploy하고, 서비스를 하고, upgrade version을 running time에 live hot code swap을 하려면....

이 일련의 과정이 매우 쉽고 자연스럽게 된다면....

rebar와 sinan이 그 문제를 해결하려고 했는데...
여전히 쉽게 풀리지 않은 상태이다.
http://www.metabrew.com/article/erlangotp-releases-rebar-release_handler-appup-etc
이 블로그에서도 마지막에 위의 요구사항이 되었으면 하면서 끝맺음을 한다.

rebar를 쓰다가 sinan을 써보니, sinan은 release에는 잘 되어 있지만, dependency 관리가 어려운 편이다. rebar는 dependency관리는 잘 되는데, release 하기가 까다롭다.

숙련된 개발자는 물론 어찌되었든 잘 관리하고 있을텐데, 그 방법이 궁금하다.

일단 rebar를 잘 써보기로 했다. 보조 스크립트들을 잘 구성화면 요구사항을 만족할 수 있을 듯.

upgrade를 하는 기능이 새로 나왔었구나! 써보자!
https://github.com/basho/rebar/wiki/Upgrades
비디오 영상도 있다!
http://vimeo.com/8311407

--
rebar로 설치본을 만드는 것을 다시 해봤는데, 성공을 했지만, 매우 귀찮은 과정을 거쳐야 했다. 있어야 할 beam file을 copy하지 않아서 수동으로 copy해야 했다. 뭔가 잘못된 것 같은데...
sinan으로 다시 dependency 관리를 해봐야겠다. 아마도 app2에 dependency library source를 놓으면 될 듯 하다.

아래 링크를 꼭 확인하자. 제일 편하게 만들어 놓았다!
http://blog.pqsdk.org/from-zero-to-deployment-with-cowboy-in-5-minu
이걸 수정하여, 다시 이렇게 만들었다.
https://github.com/wdshin/myappt

=>
rebar와 reltool에 완전히 익숙해졌다. 다음 프로젝트의 구성을 참고하면 된다.
https://github.com/wdshin/bigwig


2012년 8월 22일 수요일

mongoDB to mysql


mongoDB에서 mySQL로 이전을 성공적으로 마쳤다. riak으로 바꾸고 싶었지만, 아직 검증되지 않은 이유로 적용할 수 없었다.

mongoDB는 이제 안 쓰게 될 것이다.

mongoDB가 global lock문제를 해결하길 바란다.


mochiweb bug with webmachine


webmachine은 mochiweb의 현재 버전이 아닌 예전 버젼에 dependency를 갖고 있는데,
과도한 스트레스를 주거나, 잘못된 인자를 주면, no match clause error를 낸다.

이때, mochiweb의 src에 있는 mochiweb_http 를 다음 파일로 바꿔주기만 하면, 더 이상 그 에러를 내지 않는다.
https://github.com/mochi/mochiweb/blob/master/src/mochiweb_http.erl

webmachine이 mochiweb 최신 버젼에 맞춰서 업데이트 되길 바란다.

덕분에 cowboy와, ChicagoBoss로 관심을 돌리게 되었다.
같은 어플리케이션을 요 두가지 framework으로 구현해보고 스트레스 테스트 해봐야겠다.




2012년 8월 21일 화요일

logging for future use in hbase and rhive


logging으로 그냥 쓰던 db에 넣으려고 했는데,
hbase와 rhive를 알아버렸다.

erlang 과 hbase를 연결해서, log들을 넣고,
나중에 rhive로 분석해서 뭔가 의미 있는 것을 추출할 수 있으리라 기대하면서,
일단은 hbase를 설정해 놓으려고 한다. ㅎ

설치는 아래처럼 하면 될 듯.
http://kungfooguru.wordpress.com/2009/08/31/erlang-thrift-and-hbase/

아쉽게도 erlang으로 되어 있지 않아서, thrift로 통신해야 하지만, 별 문제는 없을 듯.

다만, 궁금한 것은 hbase의 안정성과 성능이다.
hbase가 zookeeper로 구현해서 node추가/삭제/관리는 잘 할 듯 보이고, 안정성은 돌려봐야 한다. cassandra에 비해서 안정성이 떨어진다는 이야기가 있다. -.-;
rhive에서 어떤 DB도 연결해서 쓸 수 있을 것 같은데... hbase가 딱히 답은 아닐 수도 있다.
실전에서 rhive를 사용하는 입장에서, logging DB를 유지 관리하는 입장에서의 답이 매우 궁금하다.

R 언어를 배우는 것도 흥미롭다. 벡터 기반언어의 재미를 느낄 수 있다. rCuda도 있다고 하니... 미래가 흥미롭기도 하다.

현재의 state-of-the-art는 실시간은 아닌데, 실시간 분석이 되려면 어찌 되야 하는지 연구 대상이다.
서비스 중에 각종 얼러트를 서비스 책임자에게 날려줄 수 있다면, 얼마나 좋겠는가?