Facebook Release Data Storage Cluster Code As Open Source

권순선의 이미지

제목 그대로입니다. Facebook이 데이터 스토리지 클러스터 코드를 오픈소스로 공개하였습니다. 구글이 proprietary로 유지하고 있는 대용량 인프라 관련 기술들이 야후의 hadoop을 필두로 속속 오픈소스화되고 있네요. 자세한 내용은 아래를 참고하세요.

http://www.techcrunchit.com/2008/07/14/facebook-release-data-storage-cluster-code-as-open-source/

그런데 이런 종류의 솔루션들은 대부분 자바인듯한 느낌을 받네요. (hadoop도 자바, 이번 Facebook 것도 자바...) 다른 오픈소스 스크립트 언어로 구성된 대용량 인프라 관련 솔루션은 없나요?

댓글

Prentice의 이미지

http://tech.slashdot.org/article.pl?sid=08/07/08/201245&from=rss

참고로 구글도 아무것도 안하고 있지는 않습니다. ;)

hipertrek의 이미지

이런 대규모 스토리지 프로젝트가 자바인 이유는 딱 하나입니다.

메모리 관련 문제... memory leak 라던가 같은..

C나 C++이 퍼포먼스측면에서는 월등히 우월하겠지만..

엄청난 횟수의 메모리 억세스가 대규모로 일어나는 환경에서는..

그런 디버깅이 감당이 안되죠..

dormael의 이미지

우선 hadoop의 경우 Lucene의 서브 프로젝트인 Nutch의 서브 프로젝트로 시작했습니다.
지금 보니 top프로젝트로 올라왔네요. 야후의 지원이 영향을 끼친게 아닌가 생각됩니다.

현재 Lucene의 경우는 닷넷 버전과 C버전이 진행중인 것으로 알고 있습니다.

하지만 아직까지 자바 버전 만큼은 무르익지 않은것으로 보이고요..

웹 검색엔진인 Nutch가 Lucene을 기반으로 돌아가도록 만들어 졌는데 당연히 우선은 자바로 개발할 수 밖에 없었을 것으로 생각됩니다.
그리고 이 Nutch의 분산처리를 위한 심장이 hadoop인 걸로 알고 있습니다.

개인적으로 이런 이유도 상당히 한 몫 했을거라고 생각합니다.

현재 구글의 독보적인 행보와 핵심에 대한 폐쇄적인 정책에 어느정도 반작용으로 가장 빠르게 대처 가능한 기반이 어느정도 자바쪽의 프로젝트에 있었기 때문이 아닐까요?

실제로 Lucene, Nutch의 프로젝트 개발자인 더그 커팅이 이런 분위기의 글을 적은걸 어디선가 본 기억이 있습니다.

물론 Lucene부터 이야기 하고 들어가면 할 말이 없지만..

여기저기서 들은 얘기로 말씀 드리면 멀티 쓰레드 환경에서 가장 빠르고 쉽게 어플리케이션을 개발할 수 있는 환경이기 때문이 아닐까요?
저는 멀티 쓰레드 프로그래밍은 자바에서 밖에 안해봐서 들은 이야기 밖에 말씀 드릴수가 없네요.

게다가 완벽하지는 않지만 대부분 큰 문제 없이 여러 플랫폼에서 실행 시킬 수 있구요.
분산처리 환경에서 퍼포먼스는 어느정도 논외로 할 수 있는 요소로 간주될 수 있으니까요.

완전히 개인적인 생각도 좀 말씀드리면 자바는 이클립스가 있어서 개발하기가 쉬운 부분도 한 몫 하지 않았을까 생각됩니다.
^_^

-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.

codepage의 이미지

요즘 clustering에 관심이 많아서 한번 다운로드 받아볼려고 했더니...

그리고 C/C++ 보다 JAVA가 쓰래드관리나 이런 측면에서 훨씬 편합니다.
C++로도 Garbage Collection을 구현할 수 있지만 논리적인 메모리 블럭을 목적에 맞도록
락을 걸고 풀어주는 일은 java의 sychronized 만한 것이 없겠죠,
그리고 요즘은 기계들이 너무 좋아져서 얼마만큼의 빠른 코드를 짜느냐 보단
얼마만큼 CPU 사용률과 I/O 사용량을 효율적으로 배분하느냐가 훨씬 더 중요하다고 보여집니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.