본문 바로가기

2012년 04월 10일 (화)

ⓒ 블로터닷넷, 이지영 기자 izziene@bloter.net


‘백지장도 맞들면 낫다’라는 것을 보여주려는 것일까. 트위터가 자사 트윗 데이터 처리 방법 기술을 오픈소스로 메이저 놀이터 순위하기로 발표했다. 지난해 실시간 스트림 데이터 처리 솔루션을 오픈소스로 메이저 놀이터 순위한 데 이어 이번엔 데이터베이스(DB)와 스토리지 쪽이다.


트위터는 4월9일(현지기준) 자사 공식 블로그를 통해 “트윗 저장을 위해 사용한 MySQL 기술을 메이저 놀이터 순위하겠다”라며 “보다 많은 사람이 참여해 쉽고 빠르게 데이터를 저장할 수 있게 됐으면 좋겠다”라고 밝혔다. 혼자서 하기보다는 여럿이 함께할수록 빛난다는 오픈소스의 가치를 몸소 실천하고 있는 셈이다.


메이저 놀이터 순위


트위터의 이번 시도는 어떻게 하면 오픈소스 DB로 알려진 MySQL로도 효과적으로 데이터를 저장할 수 있는지 그 기술을 알 수 있다는 점에서 의미가 있다. 카산드라처럼 대용량 데이터 처리와 저장을 위한 NoSQL은 시중에 많이 나와 있다. 그러나 이들 오픈소스는 개발자라도 섣불리 사용하기 어렵다는 단점을 갖고 있다.


같은 오픈소스라도 MySQL은 처지가 좀 다르다. 우선 인터넷 생태계를 만들어주는 기본적인 플랫폼으로 알려진 오픈소스 4인방 ‘LAMP(Linux, Apache, MySQL, PHP/Python)’에 이름을 올릴만큼 개발자들에게 친숙하다. 또 관계형 데이터베이스 관리에 대표적으로 사용돼 개발자들이 익숙하게 다룰 수 있다.


단점이 있다면 MySQL은 확장성과 복잡한 트랜잭션 처리에는 적합하지 않다. 빅데이터라고 부르는 대용량 데이터 시대를 맞아 NoSQL이 뜨는 이유다. 아무리 MySQL이 사용하기 쉽고 익숙하다고는 하지만 기능이 안 되는데 억지로 쓸 순 없는 노릇 아닌가.


트위터는 달랐다. 하루 평균 트위터가 저장하고 처리하는 트윗은 약 2억5천만건으로, 이를 어떻게 하면 MySQL 이점을 살리면서도 확장성을 갖출 수 있는지를 연구하기 시작했다. 과거 트위터는 이 트윗 데이터를 날짜 기준으로 분할해 관리하는 방법을 사용했다. 그 결과 오래된 트윗은 트래픽은 높지 않지만 점점 서버 용량을 차지했고, 새로운 트윗을 정리하기 위해 서버를 추가로 구입하는 상황이 벌어졌다. 트위터 설명에 따르면, 약 3주에 한 번씩 서버를 추가하는 꼴이었다고 한다.


이 문제를 해결하기 위해 트위터는 데이터 분산도구로 기저드(Gizzard), 데이터 저장소로는 MySQL, 아이디 생성에는 스노우플레이크라는 오픈소스 도구로 새롭게 데이터 분산 환경을 재구성했다. 그 작업물을 이번에 오픈소스로 메이저 놀이터 순위했다.


제레미 콜과 데비 아르노 트위터 DBA와 DB개발자 팀원은 “이번에 메이저 놀이터 순위한 MySQL 오픈소스는 로딩이 많은 데이터처리 엔진인 InnoDB 안에서 시스템을 모니터링하고 워크로드를 관리할 수 있으며, 서버 예상보다 오래 실행되는 쿼리를 취소할 수 있는 기능을 갖추고 있다”라며 “시스템 메모리 할당을 최적화할 수 있는 기능과, SSD 기반 시스템에도 최적화 됐다는 게 강점이다”라고 설명했다.


IT전문지 기가옴은 “MySQL 확장성 문제를 해결하기 위해 토쿠테크나 스케일베이스, 오라클MySQL이 작업한 사례는 있지만, 결과물을 완벽히 오픈소스로 메이저 놀이터 순위한 것은 이례적인 일”이라며 “트위터가 메이저 놀이터 순위한 오픈소스는 라이선스 비용이나 유지보수 지원 계약 없이 사용할 수 있다”라고 전했다.


트위터는 4월12일 ‘페르코나 라이브 MySQL 컨퍼런스‘에서 이번 오픈소스 메이저 놀이터 순위에 대해 보다 자세히 설명할 예정이다. 메이저 놀이터 순위된 오픈소스는 저자 이름만 제대료 표기해주면 코드를 수정한 후 메이저 놀이터 순위하지 않고 상업적 이용이 가능한 BSD 라이센스를 따른다고 한다.


※ 본 내용은 (주)블로터 앤 미디어(http://www.bloter.net)의 저작권 동의에 의해 공유되고 있습니다.


[원문출처 : http://www.bloter.net/archives/104962]

맨 위로
맨 위로