Home

Search results

"category:/DBTech"

1 2 3 Next >>

Title and summary Date/time
1
Vitess
YouTube의 거대한 동영상 시청 데이터 및 메타 데이터를 관리하고 있는 MySQL의 스케일 기능을 담당하는 Vitess를 오픈 소스로 공개했다. 1. 아키텍처 2. Vitess의 주요 특징 - SCALABILITY MySQL의 커넥션에 걸리는 메모리 오버 헤드 제거. 어플리케이션의 샤드 로직 추가없이 데이터 베이스 확장. 샤딩 기능 내장. 읽기 다운 타임 최소화가 가능하고 라이브 리샤딩 기능 지원. - PERFORMANCE 데이터베이스 ...
Mar 23, 2015
11:17:55 PM
2
MySQL에서 대용량 테이블의 경우 성능 개선을 위한 10 가지 방안
대용량 테이블을 운용하는 경우 도움이 될만한 아티클 "Ten ways to improve the performance of large tables in MySQL"이 있어, 이 블로그에 정리해 봅니다. 아래 가지 10가지 방법을 잘 고민해 보면 좋은 도움을 받을 수 있을 것 같습니다. 오늘은 성능 문제를 일으키는 원인이 되는 대용량 테이블의 성능을 개선하는 방법을 살펴본다. 여기의 조언들은 일부는 많은 테이블을 가진 큰 데이터베이스에 적용할 수 있지만 ...
Dec 7, 2013
4:05:14 PM
3
메모리 overcommit
Linux의 메모리 관리에서는 메모리 오버커밋이라는 메커니즘이 적용되어 있어 실제 메모리 이상의 공간을 확보할 수 있다. 이는 어떤 문제를 야기시킬 수 있는가 하면 Linux 가상 메모리 시스템은 프로세스가 메모리를 확보할 때는 많게 보이게 하고 실제로 프로세스가 메모리에 접근을 하게되면 실제 메모리를 할당하는데 이때 실제 메모리가 부족하게 되면 OS내부적으로 프로세스를 마음대로 kill을 해버린다. 이른바 OOM-killer(out of ...
May 10, 2013
4:43:03 PM
4
MySQL에서 무중단으로 스키마 변경하기(Alter)
중단없이 온라인상에서 MySQL의 테이블 스키마 변경 작업에 대해서 알아본다. 무중단으로 스키마를 변경할 수 있는 방법으로는 현재, openark kit의 "oak-online-alter-ta...
Jan 1, 2013
1:12:16 PM
5
트랜잭션이 중요한 비즈니스에서의 MySQL에 대한 고민들
MySQL에서 데이터 정합성이 중요한 비즈니스에서 데이터 불일치에 대한 고민을 적어 본다. 보통 MySQL은 Replication 방식으로 부하 분산을 대응하고, 여기에 성능의 이유로 sync-binlog=0으로, 비동기 방식(준동기보다)으로 운영을 많이 하는데, 여기서 문제가 발생한다. 장애시의 데이터 불일치, 평상시의 데이터 동기화(마스터에서 슬래이브까지) 지연 등의 현상이 발생하고 나중에 오래 운영하다보면 Master-Slave간의 데이터 불일치도 ...
Dec 10, 2012
7:21:38 PM
6
[Redis 소스 분석] 서버 구동 및 커맨드 처리 흐름
서비스 아키텍처상에 데이터 스토어 분야중 RDB에서 많이 쓰고 있는 MySQL과 캐시 분야에서 많이 쓰이고 있는 Redis의 소스를 살펴보고 있는 중입니다. 후에는 스키마리스 모델인 MongoDB도 살펴볼 예정입니다. 소스 분석의 목적은 내부 로직이 어떻게 돌아가는 지 앎으로 인해서 설정 튜닝이나 운영 이슈 등에 대응하기 위한 감을 높이는 작업으로 봐도 무방할 것입니다. 그리고 Redis는 소스코드의 양이 그다지 많이 않은편에 속해 분석하는데 ...
Sep 28, 2012
3:08:50 PM
7
MySQL의 max_connections과 thread_cache에 대해
앞의 MySQL Connection Manager와 Thread Manager의 소스분석에서 살펴보았듯이 연결 설정자, 스레드 설정자에 대해서 알면 도움이 될 거 같아서 몇자 정리해 봅니다. BMT 도구 마련 BMT의 도구로는 super-smack을 사용해 보기로 한다. 주요한 특징은 아래와 같다. MySQL과 PostgreSQL에서 동작함. C++로 만들어져 추가 라이브러리(드라이버 등)가 필요없고 수정이나 확장이 용이함 시나리오 ...
Aug 3, 2012
2:05:55 PM
8
MySQL 내부 프로세스 - Connection/Thread Manager
먼저 커넥션 메니저와 쓰레드 메니저는 튜닝 포인트도 되고 해서 MySQL의 내부 소스 흐름을 한번 분석해 보았습니다.소스는 doxygen으로 보고 있습니다. ^^ 주로 튜닝 포인트는 max_connections, thread_cache 두 매개변수로 대변되는 설정값입니다. 튜닝 포인트 설명은 다음 포스트로 하고 본 포스트는 내부 흐름에 대해서 먼저 살펴보도록 하겠습니다. 틀린 부분이 있으면 댓글을 통해 주시면 검토해 반영토록 하겠습니다. ...
Jul 25, 2012
8:28:20 PM
9
FriendFeed에서는 어떻게 MySQL에 Schema-Less 데이터를 저장하는가?
해당 포스트는 "How FriendFeed uses MySQL to store schema-less data" 포스트를 보고 해당 기술의 이해도를 높이고자 발번역 수준으로 번역을 해 보았습니다. 오역이 있으시면 대 놓고 욕하지 마시고 살포시 댓글을 통해 의견을 개진해 주시면 후딱 고치겠습니다. ^^ 배경 FriendFeed는 모든 데이터를 MySQL에 저장하고 있다. 이용자의 증가에 따라 FriendFeed의 데이터베이스도 확대해 왔다. 현재 2억 ...
Jul 9, 2012
4:39:19 PM
10
SQL JOIN을 이보다 더 쉽게 설명한 건 없다.
SQL JOIN에 대해 쉽게 설명한 자료 공유합니다. 아래 문서는 "SQL 테이블 조인"을 참고해서 만들었습니다. 참 재밌게 표현했습니다.
Jun 28, 2012
11:22:20 PM
11
Redis pub/sub를 활용한 푸시 기능 구현
Redis의 pub/sub 기능을 가지고 푸시를 구현해 보면 어떨까? 하는 호기심에서 구현 가능성을 검토해 봤습니다. 푸시 아키텍처 형상 Tomcat 위에서 돌아가는 Noti 발생 기능은 Spring MVC기반에 Jredis를 활용하여 회원을 가입/정보변경/삭제를 하는 기능을 통해 Redis로 회원 가입/정보변경/해지 노티기능이 추가되어 해당 액션이 호출되면서 이벤트 내용이 Redis로 publish 된다. Tomcat에서 발생한 노티를 ...
Jun 14, 2012
5:54:27 AM
12
SQL과 NoSQL의 장점을 결합한 NewSQL에 대해
기존 SQL기반의 RDB의 장점을 포용하고, 이젠 많은 서비스에서 활용되고 있고 기술적으로도 어느 정도 성숙 단계에 든 NoSQL의 장점들을 가미한 NewSQL이란 새로운 용어에 대해 살펴볼까 한다. 이젠 NewSQL도 많은 솔루션들이 나와 있어 현재 시점에서 그 가치를 알아볼 좋은 기회인것 같다. RDB 진영에서 일어나고 있는 일들 MySQL의 차기 버전인 MySQL 5.6에 탑재 예정인 Memcached API. 응용 프로그램에서 Memcached ...
Jun 6, 2012
12:52:25 AM
13
MySQL++과 OpenMP를 활용한 MySQL Benchmark 검토
OpenMP를 활용해서 병렬 기능이 추가된 Benchmark 샘플과 별렬 기능 없이 멀티 커넥션만으로 작성한 샘플의 성능 비교를 통해 OpenMP의 가능성을 진단해 보고자 한다. 그리고 OpenMP의 활용처를 찾아보는데 의의가 있다고 볼 수도 있다. 그 외에 File I/O가 많이 일어나는 분산파일 시스템(C/C++ 기반)에도 적용한다면 좋은 효과를 볼 수 있을 거 같다. 잘만 생각해보면 요긴하게 쓰일 놈이다. 참고로 MySQL++은 MySQL의 C ...
Jun 1, 2012
7:32:51 PM
14
MySQL innodb_flush_method 튜닝 포인트
MySQL InnoDB 스토리지 엔진을 사용하면 매개 변수 innodb_flush_method가 있는데 이 설정 값의 의미와 테스트를 통해 튜닝 포인트를 검토해 보고자 한다. innodb_flush_method 매개 변수는? MySQL InnoDB innodb_flush_method 매개 변수는 Unix/Linux에서 데이터 파일, 로그 파일을 읽고 쓰는 방법을 지정하는 것으로 "13.6.3. InnoDB Startup Options and ...
May 25, 2012
6:38:04 PM
15
Cacti로 MySQL 모니터링 및 튜닝 포인트
모니터링 도구로 Nagios, Zabbix, Ganglia 등 많지만, 저는 Cacti를 사용해 왔고(많이 사용한 건 아니지만) 최근 들어 많은 기능이 고도화(알림, 템플릿, 다루기 쉬움)되어서 나름 괜찮다고 생각해 Cacti를 가지고 MySQL을 모니터링하고 일부 튜닝 포인트도 잡을 수 있는 내용으로 기술해 봅니다. 모니터링하기 위해 Cacti를 설치하고, Plugin을 등록하자. 기존에 Cacti 설치 매뉴얼은 여기를 참조하면 설치가 가능하다. ...
May 16, 2012
4:49:05 PM
16
디스크 IO 성능 - I/O 스케줄러
I/O 스케줄러는 디스크 I/O 를 효율화하기 위한 기능이다. Kernel 2.6.10에서 deadline, noop, cfq, anticipatory 4 종류가 있으며, 기본은 cfq. OS 내에 있는 I/O scheduler 디자인을 결정하는 핵심 요소가 'throughput vs. latency(response time)'이다. 그리고 우리가 운영하는 서비스에서 특히 File I/O가 맞은 아키텍처에서는 튜닝 포인트 중에 하나라는 것도 알아두어야 ...
May 12, 2012
12:23:52 PM
17
Don't use MongoDB 에 대한 잡생각
늦엇지만, Don't use MongoDB 아티클을 보고 제가 생각하는 부분을 오버랩해서 좀 더 MongoDB에 대해서 깊이 생각하는 기회를 가지기 위해 포스팅해 봅니다. 물론 틀리게, 다르게 생각되는 부분들도 있을 수 있으니 코멘트를 통해서 잘못된 부분의 의견을 제시해 주시면 고맙겠습니다. 1. 좋은 벤치마크 결과를 가지기 위해서 디폴트 옵션으로 unsafe 방식으로 사용한다. 멀티 커넥션상에서 한 커넥션이 쓰기를 했고 그 내용을 다른 커넥션이 ...
Mar 10, 2012
3:32:43 PM
18
WhySQL? - Evernote의 사례
이제는 NoSQL과 SQL간의 논쟁과 SQL의 NoSQL 전략 구사 등 다양한 이슈들이 존재하고 있는 와중에 Evernote에서 작성한 WhySQL?을 통해 그들이 추구했던 내용과 문제점 등에 대해서 적어본다. 기본적인 내용에 들어가기에 앞서 RDB에서 Scale Out에 관련된 시도들에 대한 용어를 알고 넘어간다면 더욱 이해가 쉬울 것 같다. MySQL(RDB)을 NoSQL 관점에서 Scale Out 시키는 방법에는 크게 Query-off ...
Mar 2, 2012
1:59:24 PM
19
Xmemcached + Spring 기반의 Memcached 사용하기
Xmemcached가 memcached 자바 nio 기반, 커넥션 풀 지원, binary protocol 지원 등의 클라이언트의 높은 성능을 가지고 있다고 해서 Memcached Client로 테스트 해 보면서 필요한 기능들을 간략하게 공유합니다. 1. Xmemcached 특징 - 고성능 - Nio 커넥션 풀 지원. - 버전 1.2의 전체 텍스트 프로토콜, 바이너리 프로토콜 구현에 대한 memcached 지원. - JMX에 대한 지원, MBean ...
Apr 15, 2011
8:23:30 PM
20
Memcached 사용하기
캐싱은 서비스의 성능 향상에 매우 큰 도움이 되며, 소프트웨어적인 방법을 통한 최적화에 최고의 도구가 Memcached입니다. Memcached는 LiveJournal을 운영하는 Danga Interactive사에서 개발된 고성능의 분산 메모리 캐싱 시스템입니다. 주로 트래픽이 많은 동적 웹 어플리케이션에서 디비의 부하를 줄이기 위한 용도로 많이 활용됩니다 그리고 Memcached 사용하는 사이트는 facebook, Vox, LiveJournal, ...
Apr 9, 2011
5:41:04 PM

1 2 3 Next >>