본문 바로가기

Database

(69)
Requirements for Cassandra on AWS 카산드라 리소스 요구사항1. 스토리지 및 IO 요구사항Cassandra에서 대부분의 I/O는 순차적입니다. 하지만 random I/O를 요청하는 케이스도 존재합니다. read 동작을 하는동안 SSTable 읽기 할때의 random I/O가 발생합니다.SSD는 카산드라를 위해 추천되는 스토리지입니다. 왜냐하면 SSD는 병합동작을 위해 충분한 순차적 쓰기 동작을 제공하는 동안 random read 수행하는데 있어서 극도로 낮은 레이턴시 반응 시간을 제공하기 때문입니다.replication과 병합에 의한 스토리지 오버헤드는 스토리지 요구사항을 결정하는 동안 고려되어야 합니다.모든 볼륨을 file system을 xfs로 하는 것을 추천합니다. ex4는 기본설정하여 사용할 수 있습니다. ext3는 느리기 때문에 ..
Key Components for Configuring Cassandra PartitionerPartitioner는 data의 조각의 첫번째 replica를 받을 노드를 결정하는 것과 cluster안에서 어떻게 다른 노드들과 교차로 분산시킬지에 대해 노드를 결정합니다.데이터의 각각의 줄은 primary key에 의해서 유니크하게 존재합니다. partition key가 똑같을 수 있지만 clustering column이 다를 것 입니다.partitioner는 row의 primary key로부터 token을 다루는 hash 함수입니다.Partitioner는 token 값은 클러스터안에서 row의 복제본을 받을 노드를 결정하기 위해 사용합니다.Murmur3Partitioner는 새로운 Cassandra Cluster를 위한 기본 partitioning 계획이고 거의 모든 케이스에서..
Apache Cassandra 란? Apache Cassandra 란?Cassandra는 간단하게 설명하면 분산형 오픈소스 NoSQL Database입니다. Cassandra는 여러 데이터 센터와 클라우드에서 대량의 구조화 된 데이터, 반 구조화 된 데이터 및 비정형 데이터를 관리하는 데 적합합니다.Cassandra는 최대 가용성 및 빠른 응답 시간을 위해 설계된 다이나믹한 데이터 모델과 함께 SPOF가 없는 많은 상용 서버에서 지속적인 가용성, 선형 확장 성 및 운영 단순성을 제공합니다.2016년 11월 27일 기분으로 최신버전은 3.9 version 입니다. Cassandra는 어떻게 동작하는가?Cassandra is a partitioned row store databaseCassandra의 아키텍쳐는 여러 Datacenter에 있는..
ProxySQL : Shunned value modify Shunned?ProxySQL에서 Shunned는 일정 횟수 이내에 접속에 대한 error가 발생했을때 서버를 접속 서버를 제외시키기 위한 수단입니다.Why Shunned Value Modify?Shunned에 대한 parameter는 2개가 존재합니다. mysql-shun_on_failures : 같은 서버에서 1초동안 몇번의 connection 에러가 났을 경우 자동으로 Shunned 상태로 변경 될것인지에 대한 parameter입니다. – default : 5 mysql-shun_recovery_time_sec : 자동적으로 Shunned 상태가 된 서버가 몇 초뒤에 자동으로 online 상태로 변경할 것인지에 대한 parameter입니다. – default : 10(seconds) 이 두개의 pa..
ProxySQL : Too Many Open Files Error ulimit Vlaue(EC2)1234567891011121314151617[root@localhost ~]# ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 245648max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 1024pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (..
ProxySQL 기본설명 목적LVS의 keepalived나 Hardware 적인 Switch 없이 Application에서 들어오는 process들에 대해 load balancing 할 수 있게끔 만들기 위함입니다. ProsySQL이란?ProxySQL은 기본적으로 C++로 짜여져 있는 open source proxy 프로그램입니다.총 4개의 database schema를 가지고 proxy를 컨트롤 및 모니터링이 가능 하게끔 짜여져 있습니다.기본적으로 mysql이 설치되어 있어야 합니다. 만약 server에 mysql이 설치되어 있지 않다면 설치를 해 주셔야 합니다.source 설치를 하려고 하면 CentOS의 경우 CentOS 7이상에서 compile을 해야 source 설치가 가능하며 제가 테스트한 CentOS 6.7에서는 r..
Global Variable : Admin Setting admin-admin_credentials이 변수는 user:password 페어로 colon(:)을 가지고 분산되어져 있습니다. admin 인터페이스에서 read & write를 하기 위한 인증을 받을 수 있습니다.Read only를 위한 계정은 "admin-stats_credentials"를 보시면 Read only를 위한 계정을 볼 수 있습니다.Admin 인터페이스는 ProxySQL main thread로부터 분산된 port를 읽습니다. 이 포트는 "admin-mysql_infaces"를 통해 관리됩니다.default : admin:admin admin에 대한 설정은 기본값으로 할 경우 아무나 들어와서 수정을 할 수 있기 때문에 설치문서에도 있지만 따로 설정을 변경해야 합니다. (정책 필요)admi..
ProxySQL Global Variable ProxySQL Global Variable 이란?ProxySQL의 설정은 2가지로 반영될 수 있습니다.runtime 일때, 관리자 인터페이스에서 설정하는 방법startup 할때, config file에서 설정한 것을 가지고 오는 방법. ProxySQL은 대부분의 설정값들이 daemon의 재시작없이 즉각적으로 runtime에 반영시킴으로서 오랜시간동안 가동되는 것을 지원합니다. 오직 mysql-threads와 mysql-stacksize 2가지 설정에 대해서는 runtime에 바로 반영되지 않습니다.그리고 global variables에는 2가지의 종류가 존재합니다. 이는 ProxySQL을 컨트롤 하는 부분에 종속되어 있습니다.admin variables : 관리자 인터페이스의 행동을 관리합니다. 설정값..