DB

    [MySQL] MMM, MHA

    MMM (Multi-Master Replication Manager) MMM은 DB에 장애가 발생했을때 자동으로 Failover 프로세스를 실행해주는 Perl 스크립트 기반의 Auto Failover 오픈소스 입니다. DB서버를 모니터링하는 MMM 모니터가 존재하고, DB서버는 Agent실행 후 MMM모니터와 통신합니다. 따라서 모니터 Agent 통신 방식입니다. MMM 구조 Multi-Master 라는 이름에 맞게 MMM은 Master DB를 두 개를 두고 양방향 복제를 합니다. Master(Active)는 읽기/쓰기가 가능하고, Master(Standby)는 읽기전용 모드 (readonly)로 모니터에서 제어됩니다. 만약 Slave가 추가된다면 Master(Active)로 부터 단방향 복제 Slave..

    [Elastic Stack] Elasticsearch 란?

    엄청나게 대량데이터를 빠르게 검색하는 것이 필요할때, Elasticsearch(ES)를 한번쯤 들어보신적이 있으실 것 같습니다. 오늘은 이 Elasticsearch에 대해 간단하게 소개를 해보려고합니다. Elasticsearch 정의 Elasticsearch는 Elastic사에서 만든 Apache Lucene(아파치 루씬)기반의 java 오픈소스 분산 검색엔진입니다. 검색엔진인 만큼 방대한 양의 데이터를 신속하게, 거의 실시간급으로 으로 저장, 검색, 분석할 수 있습니다. Elasticsearch 구조 클러스터(Cluster) ES는 클러스터(Cluster)로 관리가 됩니다. 따라서 클러스터는 ES에서 가장 큰 시스템 단위를 의미하며, 이 클러스터는 최소 한개이상의 노드로 이루어져있습니다. 서로 다른 클..

    [Redis] Redis Serializer 종류 (대표 3가지)

    이전 글에서 Redis와 Redis의 자료구조에 대해서 다뤄보았습니다. 데이터가 저장되는 여러가지 자료구조가 있었지만 아무래도 검색속도는 key/value 로 저장해서 불러오는게 가장 빠르겠죠? 하지만 우리가 개발을 하다보면 항상 단순한 하나의 value만 저장하지는 않겠죠, 아마 높은확률로 객체를 저장해야하는 순간이 오게될것입니다. 어? 저번에 자료구조중에 Hash로 저장하면 하나의 key 에 여러개 field/value로 저장할 수 있다고했죠? 그걸로 객체를 저장하면 안되나요? 가능은 합니다! 하지만 Hash 구조로 객체 저장시 실질적으로 저장된 데이터를 보면 결국 여러개의 key/value 데이터가 존재한다는 것을 확인하실 수 있습니다. 이 때문에 단순 String 구조보다 상대적으로 많은 메모리를..

    [Redis] Redis란?

    Redis란 인메모리(in-memory) 데이터 구조를 가진 저장소입니다. 네 Redis는 디스크(Disk)가 아니라 메모리(RAM)에 모든 데이터를 저장하고 조회합니다! 일반 RDB말고 인메모리 데이터 구조 저장소를 사용하는 이유는 뭔가요?? 일반적으로 RDB는 데이터를 물리적으로 디스크에 직접 쓰는 형식입니다. 이로인해 데이터가 서버에 문제가 생겨도 데이터가 직접적으로 손상이 되지 않는다는 장점이 있지만, 읽고 쓰는 과정이 메모리에서 불러오는 것에 비해 훨씬 느립니다. 따라서 빠르게 데이터를 읽고 쓰는 캐시 서버로 사용하기 위해 Redis를 사용합니다. 캐시는 한번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결괏값을 받을 수 있도록 도와주는 공간입니다. 같은 요청이 여러 번 들어..