본문 바로가기

대용량db

(4)
[대용량DB] Memory vs Disk I/O I/O 효율화 튜닝의 중요성 - 디스크를 경유한 입출력은 메모리를 통한 입출력보다 평균적으로 10,000배 이상 느립니다. - 데이터베이스는 하나의 파일 시스템입니다. SQL을 이용하여 데이터 파일에 데이터를 저장하고 출력시 DB 버퍼 캐쉬에 데이터가 없을 경우 디스크를 통하여 데이터를 버퍼 캐쉬에 저장한 후 결과를 줍니다. - 물리적 디스크 I/O가 필요할 경우 서버 프로세스가 디스크에서 원하는 블록을 가져오고, 같은 데이터를 원할 경우 경합이 발생하여 대기 시간이 길어집니다. - 모든 자료를 메모리에 저장하여 사용하면 좋지만 비용과 기술적 측면에서 한계가 있습니다. 시중에는 메모리 데이터베이스가 사용되지만 극히 빠른 액세스가 제한되는 업무 영업에 국한되어 사용되어지고 있습니다. - 유한한 메모리 자원..
[대용량DB] OLAP 이해하기 OLAP 이해하기 OLAP(Online Analytical Processing)의 종류는 선계산된 값들을 어떻게 저장하느냐에 따라 구분을 짓습니다. 크게는 ROLAP와 MOLAP으로 구분을 지을 수 있으며 DOLAP이라던지 HOLAP라는 것이 존재합니다. OLAP의 종류를 설명하기 전에 OLAP에서 사용되는 대부분의 소스는 릴레이션(테이블)을 기반으로 하고 있습니다. OLTP 시스템의 다양한 원천 데이터에서 데이터 웨어하우스라는 것을 1차적으로 구축하게 됩니다. 데이터웨어하우스는 다양한 원천 데이터에서 필요로 하는 데이터들을 수정, 가공하여 저장해 둔 것입니다. 이렇게 가공된 웨어하우스의 데이터들은 OLAP이나 마이닝 등을 통해 DSS, ERP 등의 분야에서 사용하게 됩니다. 다음은 OLAP 시스템의 기..
[성능튜닝] 대규모 데이터 처리(메모리와 디스크, 웹 애플리케이션의 부하) 대규모 서비스의 데이터 규모 한 서비스의 데이터 규모는 다음과 같습니다. 한 테이블당 레코드 건수가 1,500만이나 5,000만 정도가 됩니다. 데이터 크기로는 entry라는 테이블이 3GB, bookmark라는 테이블이 5.5GB, tag 테이블이 4.8GB, 그리고 HTML 텍스트 데이터도 압축해서 저장하고 있는데, 이것이 200GB를 넘고 있습니다. 전체적으로 기가바이트 단위가 됩니다. Google이나 Yahoo!가 사용하고 있는 규모가 되면 더 나아가 테라바이트, 페타바이트가 되므로 이는 초대규모입니다. 보통 웹 애플리케이션을 만들면서 좀처럼 기가바이트 단위의 DB는 나오지 않으므로 일반적인 웹 애플리케이션이라는 관점에서 보면 큰 규모인 것입니다. 레코드 수 데이터 크기 entry 테이블: 1,5..
[대용량DB] 대규모 웹 서비스란? 대규모 웹 서비스 대규모 웹 서비스란, 거대한 데이터를 처리해야만 하는 웹 서비스를 말합니다. 대규모 서비스의 규모감, 대규모 데이터를 다루는 데 있어 어려운 점, 개발 모습을 인지하는 것은 대규모 서비스 개발자에게 필요되는 지식입니다. 사용자가 이용하고 있는 대규모 서비스에 변경을 가할 때 규모를 고려하지 않고 어중간하게 구현해서 적용하다 보면, 시스템 정지를 초래할 수 있습니다. 대규모 웹서비스에 대해 알아보기전 크게 다음에 대한 개념을 잡고 가는 것이 좋습니다. 대규모 웹 서비스 개발이란?- 대규모 데이터를 다룰 때의 과제, 다루기 위한 기본적인 사고방식과 요령. ex) OS의 캐시(cache) 기능이나 대규모 데이터를 전제로 한 DB 운용 방법- 알고리즘과 데이터 구조 선택의 중요성. 대규모 데이..