Platform/Technique (3) 썸네일형 리스트형 [데이터처리] Sharding & Query Off Loading RDBMS는 크게 request를 바로 처리하는 트랜젝션 처리용의 OLTP(On-Line Transaction Processing)성과, 데이타를 모아서 분석하고 리포팅하는 OLAP(On-Line Analytical Processing) 두가지로 분리된다. 여기서 설명하는 RDBMS는 OLTP성의 데이타 베이스 이다. RDBMS는 2차원 테이블 구조의 데이타를 KEY 값을 중심으로 여러개의 컬럼으로 저장되며, 저장된 각각의 로우(행)은 다른 테이블의 로우와 관계를 가질 수 있다. RDBMS를 이용한 설계를 하는데, 고려할만한 아키텍쳐는 성능 향상을 위한 Query Off Loading과, Sharding이라는 기법이 있다. ▪ Query Off Loading Query Off Loading은 DB의 성능.. [데이터처리] Memory vs Disk I/O ▪ I/O 효율화 튜닝의 중요성 - 디스크를 경유한 입출력은 메모리를 통한 입출력보다 평균적으로 10,000배 이상 느립니다. - 데이터베이스는 하나의 파일 시스템입니다. SQL을 이용하여 데이터 파일에 데이터를 저장하고 출력시 DB 버퍼 캐쉬에 데이터가 없을 경우 디스크를 통하여 데이터를 버퍼 캐쉬에 저장한 후 결과를 줍니다. - 물리적 디스크 I/O가 필요할 경우 서버 프로세스가 디스크에서 원하는 블록을 가져오고, 같은 데이터를 원할 경우 경합이 발생하여 대기 시간이 길어집니다. - 모든 자료를 메모리에 저장하여 사용하면 좋지만 비용과 기술적 측면에서 한계가 있습니다. 시중에는 메모리 데이터베이스가 사용되지만 극히 빠른 액세스가 제한되는 업무 영업에 국한되어 사용되어지고 있습니다. - 유한한 메모리 .. [데이터처리] 대규모 데이터를 다루기 위한 기초지식 ▪ 프로그래머를 위한 대규모 데이터 기초 지금까지 살펴본 바와 같이 대규모 데이터는 메모리에서 처리하기 어렵고 디스크는 느립니다. 또한 분산하기도 곤란하다는 어려움도 있습니다. 그렇지만 힘들다고 해서 숟가락을 내던질 수는 없습니다. 대규모 데이터를 다루는 방법은 두가지 관점에서 바라볼 수 있습니다. [1] 프로그램을 작성할 때의 요령 [2] 프로그램 개발의 근간이 되는 기초라는 점에서 전제로서 알아두었으면 하는 것 ▪ 대규모 데이터를 다루는 세 가지 급소 대규모 시스템을 고민하게 만드는 대규모 데이터를 다루는 포인트는 '어떻게 하면 메모리에서 처리를 마칠 수 있을까?'라는 점입니다. 메모리에서 처리를 마쳐야 하는 이유는 앞서 설명한 대로 디스크 seek 횟수가 확장성, 성능에 크게 영향을 주기 때문입니다.. 이전 1 다음