Thoughts2013.11.08 11:37

페이스북이 대용량 데이터 분석 솔루션 Presto를 오픈 소스로 공개했습니다. 대용량 데이터를 많이 분석해야 하는 Facebook 특성상 이런 솔루션이 필요했을 것으로 보이는데요. (페이스북 내부적으로 300 페타바이트 이상의 데이터가 보관되어 있다고 합니다.) 2012년부터 이 솔루션을 개발하기 시작해서 드디어 오픈 소스로 공개가 가능한 시점까지 왔습니다. https://www.facebook.com/notes/facebook-engineering/presto-interacting-with-petabytes-of-data-at-facebook/10151786197628920



페이스북이 공개한 Presto 아키텍처는 위 그림과 같습니다. 글라이언트는 데이터 웨어하우스(Warehouse)에 대한 SQL 질의를 통해 데이터 분석을 시도하게 되는데, SQL 질의를 받으면 파서(Parser)와 플래너(Planner), 그리고 스케줄러(Scheduler)를 통해 최선의 질의 실행 형태를 결정하고 실행하게 되는데요. 이 과정에서 데이터에 가장 가까운 노드에 질의 수행이 맡겨지게 됩니다. 그 역할은 스케줄러가 맡는데, 질의 수행이 이루어지고 있는 전반적인 상황을 감시하게 됩니다. 데이터는 저장소에서 꺼내어져 워커(Worker)에 의해 병렬 분석 되고, 최종적으로 분석 결과가 클라이언트에게 되돌려지는 형태입니다. 


Hive나 MapReduce가 중간 결과를 다시 디스크에 쓰는 반면, Presto에서 모든 프로세싱은 메모리 상에서 이루어지고, 워커 간 파이프라인도 메모리로 구현됩니다. 따라서 불필요한 I/O가 발생하지 않기 때문에 질의 수행 시간이 줄어든다고 합니다. 


이 시스템은 Java로 구현되었는데, 개발하기 쉽고, 개발자 층이 두텁고, Java로 구현된 페이스북 내부 인프라와 연동하기 쉬워서 Java가 선택되었다고 하는군요. 질의 중 일부는 JVM 코드로 동적으로 컴파일되여, JVM에서 최적화가 가능하다고 합니다. Presto를 구현하면서 메모리 할당이나 가비지 콜렉션 과정에서 생기는 문제를 피하기 위해서 신경도 많이 썼다고 하는군요. (그 과정에서 얻은 교훈은 나중에 공개할 예정이라고 합니다. 사실 이 부분이 많이 기대되네요.) 



HDFS, Hive, HBase, Scribe같은 외부 시스템과의 연동을 위해서, 확장이 용이한 구조를 만드는 데도 신경을 썼다는군요. 위 그림은 그 구조를 밝힌 그림입니다. 


어쨌든 이런 구조를 통해 Presto는 Hive/MapReduce 시스템보다 열배 나은 성능을 달성했다고 합니다. (CPU 사용 효율, 그리고 질의 수행 시간의 측면에서 말이죠.) ANSI SQL을 대부분 지원한다는 군요. (다만 JOIN 테이블의 크기 제한 등, 몇 가지 제약조건은 잇다고 합니다.) 모든 처리 결과를 다시 테이블에 기록하는 기능은 현재로선 없답니다. (클라이언트에게 그냥 스트림 형태로 제공되기만 하는 듯.)


오픈 소스는 아래에 공개되어 있다고 하네요. 


http://prestodb.io/

https://github.com/facebook/presto



저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Thoughts2011.07.07 09:07
간밤에 주커버그씨가 Facebook에 더해질 놀라운 기능의 실체를 발표했습니다. Video calling이 그것입니다. 그러니까 간단히 요약하자면 Skype 기반의 화상 통화로군요. 예상했던 대로 였습니다.

이 일로 구글의 Google+에 포함된 다자간 영상통화 기능이 갑자기 김새버리게 되었습니다. Google+는 아직도 베타 테스팅 중인데 Facebook은 Video Calling 기능을 벌써 사용자가 사용할 수 있는 형태로 배포하고 있습니다.

모바일 단말용 페이스북 어플리케이션의 '채팅' 기능에는 아직 Video Calling이 포함되어 있지 않습니다만, 만일 포함되어 배포되는 경우에는 모바일 단말의 페이스북 관련 트래픽이 지금보다 훨씬 더 늘어날수도 있겠습니다. 안드로이드 단말 사용자는 Facetime을 별로 부러워하지 않아도 될지 모르겠군요. 하물며 이름조차 똑같이 'face'로 시작하는데 말이죠.

각설하고, 사용법부터 잠깐 살펴보시면...


이 기능을 사용하시기 위해서는 먼저 http://www.facebook.com/videocalling 사이트를 방문하셔야 합니다. 위와 같은 화면이 보이실 겁니다. 이 상태에서 Get Started 버튼을 누르면... 어떤 절차로 사용하는지를 보여주는 다음과 같은 화면이 뜹니다.


이 상태에서 실제로 영상통화를 하고 싶은 사람을 클릭해 봅니다. 화면 하단에 어디서 많이 본 채팅 창이 아래와 같이 뜹니다. 그런데 종전과 좀 달라진 부분이 있습니다. 채팅창 상단에 표시되는 비디오 모양 아이콘이죠. 이 아이콘을 누르면 채팅이 아니라 영상통화를 할 수 있습니다. 한 번 눌러봤습니다.


그런데 이 버튼을 누르면 다음과 같은 창이 뜹니다. 영상 통화를 설정 하겠느냐는 물음인데요.


Set Up 버튼을 누르면 다음의 창이 뜹니다. 그러니까 영상 통화를 사용하기 위해서는 별도 프로그램이 필요하단 이야기죠. 근데 워낙 작은 프로그램이라 순식간에 깔립니다.


이 프로그램을 깔고 나면 이제 사용자에게 전화를 거는중이라는 메시지가 나오면서, 사용자가 응답할 때 까지 대기하게 됩니다. 저는 상대방이 응답이 없는데다 그다지 친한 상대가 아니라서 중도 포기했습니다. ㅎㅎ 어쨌든 이렇게 설치하고 나면, Facebook 채팅 창에 비디오 아이콘이 기본으로 포함됩니다. 항상 영상통화 가능한 상태가 되는 거죠.



위의 동영상은 페이스북이 Video Calling 기능을 홍보하기 위해 만든 동영상입니다. 실제 통화화면은 다음 이미지와 같다고 하니 참고하세요. ^^

출처: http://blogs.skype.com/en/2011/07/facebook_video_chat.html


들리는 이야기에 따르면 화상 통화 품질은 썩 그렇게 좋지 않다고 하는데요. 현재 통화 품질은 둘째치고 이런 어플리케이션들이 계속 나온다는 이야기는 장기적으로 보면 '소통'을 하게 만드는 데 인터넷 대역폭의 대부분을 소진하게 된다는 전망으로 볼 수도 있습니다. 사실 SNS도 그렇고, 통화도 그렇고, 전부 소통수단이죠. 다만 SNS가 비동기적으로 어떤 '서버 집단'을 통해 소통을 하게 만드는 기술이었다고 본다면, 영상 통화 같은 것은 동기적으로 소통을 하게 만든다는 점이 좀 다르다고 해야 할까요.

이런 동기적 소통 방식이 증가하게 되면 트래픽을 통제하기 위한 꼼수를 네트워크에 도입하기가 굉장히 어려워지기 때문에 망 사업자 입장에서는 좀 고민스럽겠습니다. 통화 트래픽 같은 건 중간에 캐시를 한다던지 해서 최적화하기 곤란한 트래픽이니까요.

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

Thoughts2011.07.05 18:45
Facebook이 7월 6일, 'Something Awesome' 을 내놓을 것이라고 CEO 마크 주커버그가 공언했었는데요. 내일로 다가왔습니다. 발표될 내용은 페이스북의 모바일 솔루션 중 하나가 될 것으로 전망됩니다. 아시다시피 페이스북의 성장을 이끄는 동력 중 하나는 모바일 시장이니까요.

예상되기로는 페이스북에 스카이프 관련 기능이 통합될 것 같은데요. 스카이프에 페이스북이 통합된 형태의 솔루션은 이미 있었습니다.



그러니까 스카이프 프로그램 안에서 페이스북과 관련된 작업을 할 수 있었던 것이죠. 뒤집어 생각하면 이제 페이스북 프로그램이나 페이지 안에서 스카이프 통화를 할 수 있게 될 것 같은데요. 화상 통화까지 가능해진다고 생각하면 이제 Facebook이 Facetime을 압도하는 통화 솔루션이 될 지도 모르겠어요.

그렇게 되면 이제 페이스북과 스카이프에 돈을 갖다 처 바른 마이크로소프트의 야심이 어느 정도는 돈줄로 이어지는 성과를 내 놓을지도 모르겠군요. 기술적으로 새로운 것이 없다고 쳐도, 페이스북에 스카이프 정도의 기능을 넣는다는 것은 확실히 대단한 것이니까요.

(물론, 어디서 돈이 나올 것인지는 솔직히 잘 모르겠군요. ㅎㅎ)

주커버그가 넌지시 언급한 것을 토대로 미루어보면, 어쩌면 'Something Awesome'의 내용은 HTML5 기반의 모바일 플랫폼이 될 가능성도 크다고 합니다. 그렇게 되면 구글에는 직접적인 타격이 될테고, 애플에는 심각한 위협이 될지도 모르겠군요. Google+는 찬물사례를 맞게 될테고, iOS 기반 페이스북 앱 사용자들은 페이스북이 제공하는 모바일 환경에서 애플 앱스토어와는 별개로 웹 앱들을 구매해 사용할수 있게 될테니까 말이죠.

둘 중 어느쪽일지는, 미국 현지 시간 7월 6일의 발표를 기다려봐야하겠군요. 기대됩니다. :-)

참고자료:
http://www.rethink-wireless.com/2011/07/05/skype-key-facebooks-awesome-launch-tomorrow.htm

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^