본문 바로가기

전체 글

(1176)
2. elasticsearch indexing Indexing 이란 문서(DOC)들의 내용 중에서 검색하고자 하는 대상들을 쉽고 빠르게 찾을 수 있는 자료구조로 배치하는 것.전통적인 RDBMS 에서는 like 검색을 사용하기 때문에 데이터가 늘어날수록 검색해야 할 대상이 늘어나 시간도 오래 걸리고, row 안의 내용을 모두 읽어야 하기 때문에 기본적으로 속도가 느림.Elasticsearch는 데이터를 저장할 때 역색인(inverted index) 구조를 만들어 저장하여 관리  Elasticsearch에서는 추출된 각 키워드를 텀(term) 이라고 부르며 이렇게 Inverted Index가 있으면 term을 포함하고 있는 Documents의id를 바로 얻어올 수 있다.이러한 특성 떄문에 Elasticsearch에서는 저장이 아닌 색인(Indexing)..
1. Elasticsearch Elasticsearch는 Apache Lucene 기반의 분산형 검색 및 분석 엔진, 확장 가능한 데이터 베이스 사용 가능한 예로그, 메트릭 추적 : 애플리케이션, 시스템 및 서비스의 로그를 수집 저장 및 분석애플리케이션 성능 모니터링 : 애플리케이션의 성능 모니터링 분석사용자 모니터링 : 애플리케이션과 사용자 상호 작용을 모니터링 , 정량화, 분석풀 텍스트 검색 : 역색인, 토큰화, 텍스트 분석을 활용하여 빠르고 관련현 있는 텍스트 검색시멘틱 검색 : 동의어, 벡터 임베딩을 활용한 맥락적 의미 이해지리 공간 검색 2. docker 실행https://www.elastic.co/guide/en/elasticsearch/reference/8.15/run-elasticsearch-locally.html Ru..
Apache Lucene 4 http://opensearchlab.otago.ac.nz/paper_10.pdf 해당 페이퍼는 es를 간단하게 훓는 페이퍼로 대략적인 개요정도만 담겨져 있었다.  Apache Lucene은 색인, 쿼리, 하이라이트, 언어 분석 등과 같은 일반적인 검색 및 검색 관련 작업을 수행하기 위한 애플리케이션 프로그래밍 인터페이스를 제공하는 오픈 소스 Java 기반 검색 라이브러리입니다.Language AnalysisLucene의 분석 기능은 색인할 문서나 검색할 쿼리 형태의 콘텐츠를 가져와 필요에 따라 사용할 수 있는 적절한 내부 표현으로 변환한다.Lucene의 역 인덱스에 삽입되는 토큰을 생성하고, 쿼리 시에는 적절한 쿼리 표현을 형성하는 데 도움이 되는 토큰으로 변환한다.분석 프로세스는 들어오는 콘텐츠에 대..
[25 Computer Papers] 4. Cassandra - A Decentralized Structured Storage System https://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf  1 introductionCassandra는 확장성과 가용성을 달성하기 위해 잘 알려진 기술을 종합적으로 사용합니다. Cassandra는 페이스북의 편지함 검색 기능의 스토리지 요구 사항을 충족하도록 설계되었습니다.-매우 높은 쓰기 처리량, 하루 수십억 건의 쓰기 작업-사용자 수에 따른 확장성  2 Related Work성능, 가용성, 내구성을 위한 데이터 분산은 파일 시스템과 데이터베이스 커뮤니티에서 널리 연구되어 왔습니다. Cassandra에 영향을 준 기존 시스템에 대해 이야기해 보겠습니다.-Ficus와 Coda는 일관성을 희생하는 대신 고가용성을 위해 파일을 복..
레디스 트러블 슈팅 메모리 문제레디스 명령어 중 메모리 사용량을 확인 할수 있는 memory 명령어가 있다. 기존에도 info 명령어로 확인할수 있지만, memroy 명령어를 통해 더 자세히 확인 할수 있다.https://redis.io/docs/latest/commands/memory-usage/https://redis.io/docs/latest/commands/memory-stats/  127.0.0.1:6379> meory help(error) ERR unknown command 'meory', with args beginning with: 'help'127.0.0.1:6379> memory help 1) MEMORY [ [value] [opt] ...]. Subcommands are: 2) DOCTOR 3) ..
백준 플래티넘5 기념샷 요건 골드1 마지막 지점 샷 (플레5까지 -1점 ㅋ)  짜잔! 목표는 한달이였지만 두달 넘게 걸렸다. (꽤나 어려웠다..)사실 골드2문제부터는 거의 못풀다 싶히 했다. 이렇게 어려운걸 사람들은 어떻게 푸는거지???지금도 나의 실력은 골드3~4사이라 생각한다.코테 준비하느라 시작했지만, 새로운 문제를 발견할때마다 재미있긴하다. 못풀어서 그렇지..ㅎㅎ푸는게 중요한게 아닌 재미를 잊지 않았으면 한다.
[25 Computer Papers] 3. Bigtable: A Distributed Storage System for Structured Data https://storage.googleapis.com/gweb-research2023-media/pubtools/4443.pdf   IntroductionBigtable은 대규모(페타바이트 단위) 구조화된 데이터를 관리하기 위한 분산형 스토리지 시스템입니다.웹 인덱싱, Google 어스, Google 파이낸스 등 Google의 많은 프로젝트에서 Bigtable에 데이터를 저장하고 있습니다. Bigtable은 광범위한 적용성, 확장성, 고성능, 고가용성 등 여러 가지 목표를 달성했습니다.여러 면에서 Bigtable은 데이터베이스와 유사하지만 완전한 관계형 데이터 모델을 지원하지는 않습니다. 클라이언트에 데이터 레이아웃과 형식에 대한 동적 제어를 지원하는 간단한 데이터 모델을 제공합니다.빅테이블 스키마 매..
디비 개선 작업 + cluster 사건의 발단.DB CPU가 100%에서 내려오질 않는다. (심지어 락 걸린것도 아님)로그 테이블을 조회하는 쿼리였는데, 요 몇일 사용자가 늘어서 그런지 집계할때에 자원을 계속 소모해서 하루종일 알림이 울렸다.. 일단 쿼리 explain 실행 계획을 데이터를 살펴보았는데 특별히 나쁜 점은 없지만 인덱스를 잘못타고 있었고, 정렬이 필요한 쿼리에서 bitmap scan을 통해 읽은 다음 다시 재정렬하는 과정을 거치고 있었다.(메모리 낭비- work_mem를 잡아먹는 쿼리가 된다.) 일단 급한 CPU사용량은 쿼리 수정과 함께 인덱스를 추가해서 일단락되었지만, 앞으로도 데이터가 계속 쌓이는 로그 테이블이여서 bitmap csan을 seq scan으로 바꾸고 싶었다. -> Nested Loop (cost=22..