[Etc] Elasticsearch를 통해 검색 시간 단축하기 (1)
·
Data Infra/etc
1. Elasticsearch란?Elasticsearch는 Apache Lucene(아파치 루씬) 기반의 Java 오픈 소스 분산 검색 엔진입니다. Elasticsearch를 통해 루씬 라이브러리(Java에서 개발한 정보 검색용 라이브러리)를 단독으로 사용할 수 있으며, 방대한 양의 데이터를 신속하게(거의 실시간) 저장, 검색, 분석을 수행할 수 있습니다. Elasticsearch는 검색을 위해 단독으로 사용하기도 하며, ELK(Elasticsearch/Logstash/Kibana) 스택으로 사용되기도 합니다. ELK 스택은 다음과 같습니다.Logstash : 다양한 소스(DB, csv 파일 등)의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱 하여 Elasticsearch로 전달Elasticsearc..
[DB] 낙관적 락, 비관적 락, Redis 동시성 이슈 성능 테스트
·
Data Infra/etc
0. 들어가기 전현재 진행 중인 프로젝트에는 SNS 기능이 있으며, 게시물에 조회 수와 좋아요 기능이 포함되어 있습니다. 조회 수는 데이터의 신뢰성이 크게 중요하지 않다고 생각되지만, 좋아요 수는 사용자 경험에 큰 영향을 미칠 수 있어 동시성 문제를 해결하며 성능을 최적화하려고 합니다. 이를 위해 낙관적 락, 비관적 락, 레디스가 떠오르는데, 개인적으로 낙관적 락 직접 확인해 보는 것이 좋을 것 같아 확인해보려 합니다. Jmeter로 성능 테스트를 진행할 예정입니다. 👉 Redis 고려 이유In-Memory DB이다.Redis는 In-Memory DB이기 때문에 IO 작업이 훨씬 빠를 것이라 생각했습니다.Redis 6.0부터는 Network IO가 추가되었다.Redis 6.0에서는 IO만 담당하는 Th..