일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- dbeaver
- request cache
- 아이온큐
- vavr
- Cache
- aqqle
- api cache
- NORI
- Analyzer
- redis
- Selenium
- 테슬라
- aggs
- Elastic
- JPA
- Aggregation
- Query
- java crawler
- 양자컴퓨터
- IONQ
- API
- Docker
- file download
- KNN
- java
- Elasticsearch
- elasticsearch cache
- ann
- mysql
- TSLA
- Today
- Total
목록분류 전체보기 (169)
아빠는 개발자
검색결과중 일부 메소드에서 처리하는 데이터 들만 캐싱해야하는 상황.. 일단 구현해보자 https://father-lys.tistory.com/42 에서 세팅한 redis 정보를 활용 우선 컨드롤러 생성 CacheService 의 getCaches 를 호출 package com.doo.aqqle.controller; import com.doo.aqqle.model.CommonResult; import com.doo.aqqle.service.CacheService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.Requ..
5일전 아이온큐(https://ionq.com)가 랙 장착형 엔터프라이즈급 양자 컴퓨터인 ‘아이온큐 포르테 엔터프라이즈(IonQ Forte Enterprise)’ 및 ‘아이온큐 템포(IonQ Tempo)’를 공개했다. 이 기사에서 내가 주목하는 문구는 아이온큐는 이들 엔터프라이즈급 시스템이 기업과 정부기관 등 기존에 구축한 인프라에 양자 기능을 접목하고자 하는 고객들을 위해 설계되었으며 아이온큐 포르테 엔터프라이즈는 기존의 현대적인 데이터 센터에 양자 컴퓨팅이 쉽게 접목될 수 있도록 개발되었다. 신제품은 프로세스 최적화, 양자 머신러닝, 상관 관계 분석 및 패턴 인식을 포함한 복잡한 컴퓨팅 문제를 위해 설계됐고, 기존 데이터 센터 인프라 전반에 쉽게 배치될 수 있는 컴팩트한 폼 팩터를 제공한다. #AQ ..
지난시간 elasticsearch 의 file system cache 를 사용해서 성능을 올려보았는데 https://father-lys.tistory.com/40 [java] API - file system cache (request cache) API 를 만들고 응답시간을 측정해서 최적의 성능을 만들어 보자 일단 제물이 될 index 820만건의 location-index 일단 aqqle 의 shop API 를 응용해서 후다닥 만들어 보자. 복붙해서 이름만 바꾸니까 1분 미 father-lys.tistory.com 캐싱하면 redis 니까 함 넣어보잣 우선 redis 설치 https://father-lys.tistory.com/41 그리고 aqqle api 에 redis 설정 1. build.gradl..
1. Redis 도커 이미지 가져오기 일단 Redis 도커 이미지가 필요합니다. docker pull 명령어로 redis 최신 버전을 가져옵니다. docker pull redis 이미지를 잘 가져왔는지 확인하려면 docker images 명령어로 확인합니다. 2. docker-compose.yml 작성 다음과 같이 docker-compose.yml 파일을 작성합니다. # 파일 규격 버전 version: "3.1" # 실행하려는 컨테이너들 정의 services: # 서비스명 redis_container: # 사용할 이미지 image: redis:latest # 컨테이너명 container_name: redis_test # 접근 포트 설정(컨테이너 외부:컨테이너 내부) ports: - 6379:6379 # ..
API 를 만들고 응답시간을 측정해서 최적의 성능을 만들어 보자 일단 제물이 될 index 820만건의 location-index 일단 aqqle 의 shop API 를 응용해서 후다닥 만들어 보자. 복붙해서 이름만 바꾸니까 1분 미만 컷 지금은 bool > filter > term 쿼리로 조회하니 응답속도가 빠르다. 일단 이 상태에서 리소스 사용과 응답속도를 측정해보잣 캐싱이 안되고 있지만 너무 빠르다 일단 지난 캐시 테스트와 같은 구조로 multi_match 쿼리 와 count집계(aggs) 를 두번 추가 전체쿼리 더보기 { "size":100, "query":{ "bool":{ "must":[ { "multi_match":{ "query":"country_code", "fields":[ "CO^1...
검색대상 products index (alias : shop) index 의 prefix 랑 alias 를 맞춰야 겠다. 쿼리의 구조는 아래와 같은데.. 뭔가 복잡하네 query > function_score > query > bool > must , should query > function_score > functions > filter > match_all query > function_score > functions > script_score > script 위의 구조에서 script 의 유사도 비교는 cosineSimilarity 로 별다른 계산로직을 태우지 않고 일단 실행 결과값에 vector 제외 (excludes) API swagger 가 설치되어 있으니 검색 테스트 response 전체 ..
검색 결과 리스팅은 Query Cache에, 검색 결과에 대한 집계 는 Request Cache 에 저장 된다 그렇다면 둘다 확인해서 multi_match + aggs 의 결과가 어디에 캐싱된건지 확인 GET /location-index/_stats/query_cache?human { "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_all": { "primaries": { "query_cache": { "memory_size": "0b", "memory_size_in_bytes": 0, "total_count": 0, "hit_count": 0, "miss_count": 0, "cache_size": 0, "cache_count": 0, "evic..
file system cache 를 이용한.. 꼼수를 부려보자 기존쿼리 + AGGS 를 사용하는데 file system cache 를 이용할 수 가 없다. 왜냐..면 size 가 0이 될 수 없는 상황.. 그래서 AGGS size 0을 먼저 실행하고 그다음 검색쿼리를 실행하면 캐싱을 이용하지 않을까 하는 생각이 있는데 테스트를 해보자 location 정보를 색인할 예정이고 "country_code": { "type": "keyword" }, "city": { "type": "keyword" }, city 를 집계하고 country code 를 쿼리한다. 이게 가능한가? aggs name 으로 캐시가 생성되면 가능할꺼 같기도 한데.. aggs 결과를 쿼리결과와 합치지 않아도 된다면 후 처리 로직이 더 줄어..
파일 시스템 캐시용으로 물리적 RAM의 50% 이상을 남겨둡니다. 메모리가 많을수록 더 많은 부분을 캐시할 수 있으며 특히 클러스터에 I/O 문제가 발생할 경우 유용합니다. 힙 크기가 적절하게 구성되었다고 가정할 때 파일 시스템 캐시에 사용할 수 있는 나머지 물리적 RAM은 검색 성능을 향상하는 데 큰 도움이 됩니다. 예를 들어, 128GB RAM 서버에서 힙 크기로 30GB를 설정하고 나머지 메모리를 파일 시스템 캐시(OS 캐시라고도 함)용으로 설정합니다. 이 방법은 운영 체제가 최근에 액세스한 4KB 블록의 데이터를 캐시하는 방식입니다. 따라서 동일한 파일을 반복해서 읽으면 대부분의 경우 디스크로 이동할 필요 없이 메모리에서 직접 읽기 요청을 처리합니다. Elasticsearch는 파일 시스템 캐시 ..
전역 서수는 집계 성능을 최적화하는 데 사용되는 데이터 구조입니다. 이는 느리게 계산되어 필드 데이터 캐시의 일부로 JVM 힙에 저장됩니다. 버킷팅 집계에 많이 사용되는 필드의 경우 요청을 수신하기 전에 Elasticsearch에 전역 서수를 구성하고 캐시하도록 지시할 수 있습니다. 힙 사용량이 증가하고 새로 고침 시간이 더 오래 걸릴 수 있으므로 이 작업은 신중하게 수행해야 합니다. 이 옵션은 Eager 전역 서수 매핑 매개변수를 설정하여 기존 매핑에서 동적으로 업데이트될 수 있습니다. 맵핑 옵션 PUT index { "mappings": { "properties": { "foo": { "type": "keyword", "eager_global_ordinals": true } } } } 테스트 해보자 ..