2. DBMS이야기/01. PostgreSQL

PosgreSQL, MongoDB를 능가하다

OSSW(Open Source System SoftWare 2014. 10. 16. 12:59

Postgres Outperforms MongoDB and Ushers in New Developer Reality (Postgres가 MongoDB를 능가하고, 새로운 개발환경을 알린다)

September 24th, 2014 by 


PostgreSQL과 MongoDB의 성능 비교의 최신판에서 첫번째 테스트에서 향상된 PostgreSQL 이 MongoDB를 능가할 수 있다는 결과가 되풀이 되었습니다. The advances Postgres는 문서 데이터베이스를 지원하는 Postgres의 기술력이 반영된 JSON과 JSONB 으로 만들어졌습니다.


관계형 데이터베이스에서 주요 NoSQL 솔루션을 능가할 수 있는 문서 데이터베이스를 기술을 만들었다는 것은 눈부신 성과입니다. 하지만 해당 성과가 end user 에게 무엇을 의미하는 지가 더 중요합니다. ACID(Atomicity, Consistency, Isolation, and Durability) 조건을 준수하는 기업의 개발자들에게 업무 수행에 필수적인 어플리케이션은 새로운 수준의 속도, 효율성, 유연성을 필요로 합니다.


Postgres vs. Mongo

EnterpriseDB (EDB) 는 사용자가 Postgres의 NoSQL 기능들을 명확히 알 수 있도록 성능 비교 평가를 진행하였습니다. 테스트의 시작은 MongoDB v2.6과 Postgres v9.4 베타버전으로, 싱글 머신 인스턴스에서 비교되었습니다. 두 시스템 모두 Amazon Web Services M3.2XLARGE 에서 32GB의 메모리로 설치되었습니다.

EDB 는 Postgres 가 5000만건의 작업을 해야하는 복잡한 문서 데이터 작업에서 selecting, loading, inserting 과정을 통해 MongoDB 와 비교하여 훨씬 뛰어난 성능을 보여주는 것을 알게되었습니다.

  • 많은 작업량을 처리하는 과정에서 Postgres 가 약 2.1배의 더 빠른 속도를 보여주었습니다. 
  • MongoDB 는 Disk 공간을 33% 정도 더 소비하였음을 알 수 있습니다. 
  • Data insert 작업시간은 MongoDB가 약 3배 더 소요되었습니다. 
  • Data selection 작업은 MongoDB가 Postgres보다 2.5배의 시간이 더 소요되었습니다. 


테스트에서 1000만건에 대한 Data 결과는 거의 동일하였습니다. 하지만 이전 버전의 Correction에 대한 사항을 유의하셔야 합니다. PostgreSQL 커뮤니티 회원 Alvaro Tortosa 는 MongoDB 콘솔이 4K 보다 큰 문서를 insert하는 작업을 허용하지 않는 것을 알게 되었습니다. 이는 기준치에서 모든 데이터 건수의 25%의 MongoDB 사이즈 축소로 이어지게 되었습니다.

저희는 공개 조사를 할 수 있도록 테스팅 프레임워크를 만들어왔고, 결과에서 입력값을 적용하고, 새로운 테스팅 프레임워크에서 우리의 의견뿐만아니라 방식도 적용하였습니다. 테스팅 프레임워크는 EDB Github 레파지토리에 있습니다.


Developer Freedom

PostgreSQL은 새로운 버전을 통해 NoSQL 솔루션으로 굉장히 자유롭게 개발할 수 있는 편의성을 제공하게 되었음을 알리고 있습니다. 개발자들이 관계형 데이터베이스에 필요한 구조화된 데이터 모델로부터 벗어나기 위해서  MongoDB와 같은 적합한 솔루션의 사용이 늘어나고 있습니다. 개발자들은 빠르게 이동하여 새로운 데이터 타입들로 작업하기를 원하고 있습니다. 개발자들은 즉각적인 요구사항을 반영하여 DBA 를 기다릴 필요 없이 변경이 가능한 성능좋은 솔루션을 선택합니다. 

하지만 많은 기업에서 데이터가 기업 전반에서 차지하는 중요도가 올라감에 따라 성공적인 어플리케이션은 구조가 필요하다는 것을 알아오고 있습니다.  Postgres 는 요구사항에 따라 개발자들에게 ACID 를 준수하는 환경에서 동일한 데이터베이스 엔진을 사용하는 구조화되지않은 데이터와 구조화된 데이터를 결합할 수 있는 새로운 기능을 제공합니다.

코드는 Postgres 가 기능을 갖고있는 것을 보여주고, 현재 성능 비교를 통해 Postgres 가 과중한 작업량도 처리할 수 있다는 것을 보여주고 있습니다.

테스팅 프레임워크를 확인하기 위해서는 EDB Github 레파지토리인 이 곳(here) 을 방문하시거나 Postgres 에 대해 더 알고 싶으신 분들께서는 여기로(contact us) 연락주시기 바랍니다.

Marc Linster is Senior Vice President, Products and Services, at EnterpriseDB.(EnterpriseDB 사 제품 & 서비스부문 부 의장, Marc Linster)


출처 : http://blogs.enterprisedb.com/2014/09/24/postgres-outperforms-mongodb-and-ushers-in-new-developer-reality/


Post by. 김지선(2014.10.16)