아키텍쳐 143

MySQL의 Auto Sharding 및 Data Replication Architecture

Auto-Sharding이번 MySQL의 Enhancement 중 재미있는 기능중의 하나가 Auto Sharding이라는 기능이다. Sharding에 대한 개념은 http://bcho.tistory.com/670 를 참고하면 되고.보통 Sharding이라 하면 Application 에서 작성해서 컨트롤해야 하기 때문에, 데이타 저장 용량을 늘릴 수 있을지 몰라도, 전체적으로 Application의 구현 복잡도를 올리는 문제가 있었다.이번 MySQL에서는 Auto-Sharding이라는 기능을 제공하는데, 요는 MySQL이 알아서 데이타를 여러 데이타 노드에 분산 저장함으로써 전체 저장 용량을 늘리고, 데이타를 분산 배치 함으로써, 처리 능력을 향상 시킬 수 있다. 위의 그림은 Auto-Sharding 아키..

MySQL Clustering 버전의 새로운 기능들

※ 본 문서는 MySQL Cluster 버전을 기준으로 한다. MySQL 배포 구조 MySQL 배포 구조는 다음과 같다. 크게 3가지 종류의 노드를 갖는다. ① MySQL Data Node : Data Node는 실제로 데이타를 저장하고, Query 등을 수행하는 역할을 한다. ② MySQL Application Node : 일종의 라우터 역할로, MySQL 클라이언트에 의해서 들어오는 request를 적절한 Data Node로 라우팅 한다. ③ MySQL Management Node : 전체 클러스터에 대한 관리 기능을 수행한다. 위의 그림과 같이 Application Node와 Data Node는 다수가 존재할 수 있다. Application Node는 실제로 데이타를 저장하지 않고 라우팅 하는 역할..

데이타 분석 계층 아키텍쳐

Data Analysis Layer Architecture 데이타 분석 계층에 대한 아키텍쳐를 공부하면서 간단하게 정리해서 올리기는 했습니다만, 이쪽 분야에서는 전문성이 상대적으로 떨어져서 아래 글에 잘못된 설명이 다소 있을겁니다. 특히 OLAP이나 BI 전문가 분들이 보시면 아주 초보적인 수준일텐데.. 혹시 잘못된 부분이 있다면 피드백 주시면 매우 감사하겠습니다.일반적인 시스템들은 application server들을 중심으로 하여 클라이언트가 요청한 request에 대한 처리를 위한 구조이고, 지금 부터 설명하는 Analysis Layer는 트렌젝션 처리에 의한 결과와 로그를 분석하는 Layer이다. Anlysis Layer 또는 BSS(Business Support System) 그리고 은행에서는 ..

아키텍쳐 /BI 2012.10.14

대용량 시스템을 위한 데이타베이스 아키텍쳐-Sharding & Query Off Loading

대용량 시스템을 위한 데이타베이스 아키텍쳐 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이라는 ..

아키텍트의 종류와 역할

아키텍트의 종류와 역할 아키텍쳐를 설계 하는 사람은 아키텍트(Architect)라고 한다. 이 아키텍트는 아키텍쳐 설계 프로세스에서 정의한 각 아키텍쳐에 대해서 아키텍쳐를 설계하는 역할들이 정의된다. 계층 구조를 제외하면 아키텍쳐는 5가지로 분리된다.(http://bcho.tistory.com/667 참조) Business Architecture, Application Architecture, Solution Architecture, Data Architecture로 분리되며, 아키텍트 역시 이 5개 분야에 걸쳐서 총 5개의 역할로 정의된다. Enterprise Architect (EA) Business Architecture를 포함한 전체 아키텍쳐 설계에 대한 책임을 진다. 비지니스 이해를 바탕으로 전..

아키텍쳐 2012.09.06

아키텍쳐 설계 프로세스

아키텍쳐 아키텍쳐란 무엇일까? 소프트웨어 시스템에 대해서 이야기 하다보면, “아키텍쳐가 어떻다”. “최신 아키텍쳐를 적용했다.” 등 아키텍쳐에 대한 언급이 많다. 그렇다면, 소프트웨어 아키텍쳐에 대한 정의는 무엇일까? http://www.sei.cmu.edu/architecture/start/glossary/community.cfm 를 보면, 수많은 아키텍쳐에 대한 정의가 있다. 지금부터 설명하고자 하는 아키텍쳐에 대한 정의는 다음과 같다. “아키텍쳐는 비지니스 요구 사항을 만족하는 시스템을 구축하기 위해서 전체 시스템에 대한 구조를 정의한 문서로, 시스템을 구성하는 컴포넌트와, 그 컴포넌트간의 관계, 그리고, 컴포넌트가 다루는 정보(데이타)를 정의한다.” 또한 소프트웨어 아키텍쳐는 현재의 요구사항뿐 아..

아키텍쳐 2012.09.04

HTML 5의 큰 변화점

기존 단순 UI 플랫폼에서 발전하여Storage 지원으로 인하여, 네트워크 연결이 없이도, 어느정도의 기능을 하는 애플리케이션 제작이 가능함. (Key Value 기반의 localStorage, RDB 성격의 clientDB)WebSocket을 통하여, AJAX등을 이용한 long polling에서 바로 서버와 클라이언트간 메세지를 받을 수 있기 때문에 더 빠른 응답시간과 사용자 경험을 제공할 수 있는 UI가 가능하다. (아직 완성되지는 않았음)별도의 플러그인 없이 Video와 Audio를 사용할 수 있다. 단순 링크된 문서 뷰어에서 단독 저장공간과 서버로의 역방향 연결성 제공 멀티미디어 기능 강화를 통해서 리치 클라이언트 플랫폼으로 업그레이됨

소셜 시스템의 필수기술들..

소셜 시스템이라고 이름은 지었는데, 정의는 Google,FaceBook,Twitter들과 같이 B2C 서비스를 지향하면서 대용량 서비스를 제공하는 웹서비스 시스템을 정의한다. 이 시스템들은 기존의 J2EE나 APM (Apache PHP MySQL) 다음 세대의 기술셋을 사용하는데 특징적으로 - 오픈 소스를 많이 이용한다. - NoSQL을 이용한 대용량 데이타 저장 구조 - 분산 처리 아키텍쳐 등등이다. J2EE 시대에 Servlet/JSP + EJB + JDBC가 필수 기술이었고 J2EE 다음 시대인 오픈 소스 과도기에는 Spring + IBatis (or Hibernate) + Struts 가 필수 기술이었다면 다음은 무엇일까? 나름 여러 문건이나 트랜드들을 조사해본 결과 1. NoSQL - 대용량 데..