전체 글

전체 글

    Spring Data Cassandra save vs insert 동작 차이

    Spring Data Cassandra의 save vs insert 동작 차이에 대해서, 간단히 정리해 본 내용입니다. 1. save vs insert 실행 결과 비교테이블 및 코드 설정테스트 할 sample 테이블과 코드는 다음과 같습니다create table sample( id text primary key , value1 text, value2 text);@Table(value = "sample")data class Sample( @PrimaryKey val id: String, var value1: String?, var value2: String?,)interface SampleRepository : CassandraRepository 1-1. Save 테스..

    Cassandra DB Collection Type 사용시 주의 사항 (v4.0 미만 한정)

    테이블 구조create table `test`( partition_key text, target text, subscriber text, extra map, primary key (partition_key, target, subscriber)); 쿼리select partition_key, target, subscriber, extra from test where partition_key = '1158' and target = '1' and subscriber in ('1', '2');Collection Type이 있는 경우 IN QUERY 시 위와 같은 에러가 발생함.Cassandra DB 4.0 부터 ..

    Cassandra DB LWT 동작 방식 (+동시성 이슈 해결기)

    푸시 쪽 개선을 위해서, 푸시 플랫폼에서 푸시 발송 시 특정 데이터 정보가 필요했습니다.그 특정 데이터는 다른 플랫폼에 있는 데이터로 데이터 특성상 푸시 발송시 해당 플랫폼으로부터 실시간으로 데이터를 조회하는 경우, 너무 많은 요청이 해당 플랫폼으로 가게 되었습니다.이러한 이유로 해당 데이터를 푸시 플랫폼으로 이벤트 파이프라인을 구성해서 사본 데이터를 저장하는 식으로 방향을 정했고, Cassandra DB의 특정 테이블에 저장해 두는 식으로 정하였습니다.별도의 저장소에 사본 데이터를 저장하는 경우, 추가적인 저장소가 필요 & 푸시 발송시 추가적인 랜덤 액세스 형태의 읽기 비용이 필요해서, 발송 속도에 영향을 줄 수 있음 상황 설명 (각색)실제 상황으로 상황을 설명하기 문제가 있을 수 있어, 전혀 다른 내..

    Cassandra DB 성능 개선기 (1) - Read ahead와 Disk I/O

    회사에서 플랫폼을 운영하면서 겪은 장애와 개선한 점들을 공유해보려고 합니다.Cassandra DB를 운영하면서 발생한 이슈이지만, 내용이 Cassandra DB에만 국한되지 않는 내용인 점 먼저 말씀드립니다.장애 발생플랫폼을 운영하던 중, 급격하게 증가하는 데이터로 인해 요청이 밀리는 장애가 발생하였습니다.평소 한자리 ms의 Latency로 API를 제공하던 중, 갑자기 요청을 처리하기 위한 Latency가 100ms 이상으로 밀려버리는 장애가 발생하였습니다.빠르게 데이터를 서빙해야하는 데이터 플랫폼 특성상, 낮은 Latency로 데이터를 제공해야 합니다.장애 원인장애 원인은 Disk I/O 사용량 (Disk Usages이 아닌, Disk I/O Usages입니다) 급증으로 인해서 Disk IO이 병목이..

    [CassandraDB] 무중단 CassandraDB 클러스터 이전 방법 (멀티 데이터센터 구성)

    회사에서 직접 운영하고 있는 Cassandra DB 클러스터 이관 등의 작업을 진행하였는데, 관련 방법들에 대해서 정리한 내용입니다.참고로, 팀 내에서 운영하고 있는 여러 플랫폼의 메인 저장소로 CassandraDB를 운영하고 있으며, CassandraDB의 경우 별도의 DBA가 없어 팀 내에서 직접 운영하고 있습니다.카산드라 클러스터 이관을 위해서 멀티 데이터센터를 구축해서 이전하는 방법으로 클러스터를 이전하였습니다.- 아래 예시들은 기존 데이터 센터를 dc1, 신규 데이터 센터를 dc2로 가정하고 작성되어 있는 점 참고 바랍니다.이관 전 사전 체크 사항Cassandra DB 설정 SnitchSimpleSnitch인 경우 단일 DataCenter를 위한 Snitch로, 멀티 데이터 센터 사용을 위해선 ..