학술저널 정리 : 대용량, 클라우드 서버 환경에서 DBMS가 고민해야할 문제 STEP 1

3 분 소요

“빠르게 변신하는 데이터베이스(DB), 어디까지 써봤니”
“최근 가장 인기있는 DBMS는 무엇?…포스트그레SQL 선전”
와 같은 뉴스를 읽었다.

클라우드 컴퓨팅이 인기있어지면서 DBMS 도 점차 발전해나가고 있다.

그래서 이번 논문을 읽기 시작했다.

2011년에 적힌 저널이라 현재와 조금 다른 부분도 있긴 하지만 설명을 잘하셔서 재미있게 읽고 있다.

대용량, 클라우드 서버 환경에서 DBMS가 고민해야할 문제

대용량, 클라우드 서버 환경에서 DBMS가 고민해야할 문제

송용주. (2011). 대용량, 클라우드 서버 환경에서 DBMS가 고민해야할 문제. 정보과학회지, 29(5), 37-44.

대용량, 클라우드 서버 환경에서 DBMS가 고민해야할 문제 STEP 1

대용량, 클라우드 서버 환경에서 DBMS가 고민해야할 문제 STEP 2

목차

  1. DBMS 변혁의 시기
  2. 쏟아져 나오는 대응책들
  3. 차세대 DBMS의 고민
  4. 새로운 이슈
  5. 결론

DBMS 변혁의 시기

성능이 급진적으로 성장하는 하드웨어 덕분에 더 빠른 속도로 정보가 생성되고 적재되고 있다.

빠르게 쌓이고 벼화하는 정보에 능동적으로 대처하기 위해 클라우드 컴퓨팅이 주목받고 있다.

그러나 데이터 처리의 중추적 역할을 담당한 DBMS는 다른 기술들에 비해 변화를 쫓지 못하고 있다.

∴ DBMS가 당면한 변화의 흐름을 분석하고 반드시 해결해야할 문제를 제시하고자 한다.

DBMS 기술의 발전 경향

1960년대에 개념이 확립된 이후로의 DBMS의 발전 역사

구분 모델 DBMS
1세대 화일시스템 - ISAM - VSAM
2세대 계층형(Hierachical) HDBMS - IMS - System2000
3세대 망형(Network) NDBMS - IDS - TOTAL - IDMS
4세대 관계형(Relational) RDBMS - Oracle - Infornix - DB2 - SQL Server - Sybase
5세대 객체지향(Object Oriented) ODBMS - Object Store - UniSQL

최근에는 무정지 서비스를 위해 다양한 방식의

  • 백업&복구
  • 실시간 복제
  • 이중화 기법

이 도입되고 있다.

DBMS는 응용프로그램을 쉽게 작성하기, 빠르게 수행하기, 끊임없이 서비스하기 측면에서 많은 발전이 있었지만, DBMS안에 들어갈 데이터는 거의 변하지 않았었다.

DBMS 기술의 발전 경향

휴대전화, 클라우드 저장, 소셜 미디어, 그리고 사물인터넷(IoT) 등으로부터 생산·저장되는 공개출처 데이터가 폭발적으로 증가하고 있다.

엄청나게 증가하는 데이터양과 속도 때문에 스토리지 비용을 감당할 수 없게 된 서비스 업체들은 클라우드 컴퓨팅에 관심을 가지기 시작했다.

그러나 현재 DBMS 시장을 점유하고 있는 상용 RDBMS들은 클라우드 환경에 전혀 적합하지 않다.

쏟아져 나오는 대응책들

Facebook 과 같은 경우 대용량 데이터를 저렴게 다룰 수 있는 DBMS의 부재 문제를 해결하기 위해, 사용자 별로 쉽게 데이터를 분할할 수 있는 SNS 서비스의 특성을 이용한 전용 아키텍처를 제작했다.

그러나 이런 방식은 여러 단점이 존재하는데

  • 기존 DBMS가 제공하는 다양한 기능을 사용할 수 없기에, 서비스 어플리케이션에서 모든 기능을 구현해야 함
  • 서비스의 추가 삭제가 어려움
  • 전혀 다른 특성의 서비스와 같이 운용할 수 없음

따라서 기존 DBMS에 필적한 대용량 데이터 처리 솔루션을 개발하기 위해 다양한 방법들이 나오기 시작했다.

NoSQL (Not only SQL)

  • BigTable / Hadoop / MapReduce
NoSQL 설명 특징
BigTable 고성능 사유 데이터 스토리지 시스템 random write, 정합성을 포기함으로써 성능과 고가용성이라는 장점을 얻음
Hadoop Google Data Framework의 공개된 기술을 오픈소스 프로젝트로 만든 대용량 데이터처리 플랫폼 대용량 데이터 분석에 최적화된 성능을 제공 / 작은 파일 처리, 데이터 수정과 같은 일반적인 업무에선 사용 불가
MapRduce 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작한 소프트웨어 프레임워크 대용량 데이터의 분산처리에 단순하지만 효율적인 프로그래밍 기법을 제공 / 코딩 작성이 SQL 보다 상대적으로 매우 어려움
  • Cassandra

Facebook 에서 SNS에 적합하도록 새로 개발한 key-value 저장소

특징 :

  1. MapReduce와는 다르게 random update/write를 지원 및 간단한 트랜잭션까지 지원
  2. 별도의 마스터 없이 순수 P2P로 시스템을 구성해서 장애 취약 포인트를 없앰
  3. 다른 NoSQL 제품들이 정합성은 완전히 포기한데 비해 Cassandra는 사용자가 성능-정합성간 trade-off를 지정할 수 있도록 기능 제공

그러나 MySQL 에 비해 대용량 데이터 성능 테스트에서 압도적인 성능을 보인 Cassandra 의 인기가 사그라지고 있으며, 이는 아직 현재의 데이터처리에 적합하지 않은 면이 있기 때문인듯 싶다.

(이 학술지는 11년에 쓰였기에 아직 미래의 추세를 몰랐겠지만 2020년 현재 Cassandra는 예상 외로 가장 많이 쓰인 DB에서 10위 안에 들었다.)

RDBMS

NoSQL 진영에 비해 대용량 데이터 처리 솔루션에 뒤늦게 출발한 RDBMS 진영은 SQL 및 트랜잭션 지원면에서 장점을 갖고 있기에 용량의 수평적 확장에 힘을 실은 제품을 제작하였다.

  • Greenplum

오픈소스 RDBMS PostgreSQL을 묶어서 만든 DW용 대용량 DBMS

Name Greenplum NoSQL
System 이미 존재하는 단일 PostgreSQL 수백 대를 묶는 방식 공유 파일시스템 위에 프로세싱 엔진을 얹는 방식
Advantages 데이터를 대량으로 일시에 퍼붓고 분석하는 작업에 최적화  
Disadvantages 데이터 추가 작업이나 OLTP성 요청에 취약  
  • Exadata

RDBMS의 독보적인 존재 오라클이 제작한 Oracle Database 실행에 최적화 된 컴퓨팅 플랫폼

Name Exadata
Characteristic 일종의 공유파일 시스템인 ASM을 개선하고 고성능 하드웨어와 결합해서 수평적 확장성을 강화
Disadvantages 다른 Shared nothing 접근 방식에 비해 수평적 확장성에 한계가 존재

비고

이 학술 저널은 2011년도에 나왔기에 실제로 2020년의 추세를 직접 찾아보았다.

2020 DB-Engines Ranking

NoSQL 분야에서는 확실히 Cassandra 가 10위 안에 들어가 있었다.

물론 NoSQL 분야에서 가장 많이 사용되는 것은 MongoDB가 존재하는 듯 싶다.

또한 “구글의 데이터 처리 기술은 얼마나 대단할까?” 를 읽어보는 것도 꽤 도움이 된 것 같다.

태그: ,

카테고리:

업데이트:

댓글남기기