프라이머리 샤드는 인덱스 생성 후 불변하다 프라이머리 샤드는 클러스터링 된 노드에 분산 생성된다.(예: 전체 노드의 수가 3개 이고 Number_of_shards : 3 이면 각 노드별로 1개의 프라이머리 샤드가 생성) 레플리카 샤드는 클러스티링 된 노드에 각각 생성된다. (예: 전체 노드의 수가 3개 이고 Number_of_replicas : 3 이면 각 노드별로 3개의 레플리카 샤드가생성) 각 노드의 레플리카 샤드는 현재 노드에 생성되어있는 프라이머리 노드가 아닌 다른 노드의 프라이머리 노드를 복사한다 클러스터링 된 노드의 다수가 다운되면 해당 클러스터는 정상 동작할 수 없다
패킷 사이즈 제한때문에 100만 Document를 insert하는 BulkInsert를 100개의 Document씩 잘개쪼개면 Elasticsearch write 풀의 대기큐 공간만 많이 잡아먹게된다. 그렇다고 또 큰데이터를 한번에 다 보낸다고 해서 무조건 한칸의 대기 큐 공간을 차지하는 것도 아니다. 너무 크면 elasticsearch내부에서 알아서 대용량 Bulk를 쪼개서 대기 큐에 적재하는 것 같다. 그러니 너무 커서 패킷 사이즈를 초과하지 않고, 너무 작아서 write 대기큐의 공간을 많이 잡아먹지 않도록 쪼개는게 중요하다.
무상태(stateless)로 설계해야 한다! 특정 클라이언트에 의존적인 필드가 있으면 안된다. 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다. 가급적 읽기만 가능해야 한다. 필드 대신에 자바에서 공유되지 않는, 지역변수, 파라미터, ThreadLocal 등을 사용해야한다. 왜? 싱글톤 객체는 단일 객체다(유일함) 이 객체가 내부에 변수를 가지고있고 쓰기를 허용한다면, 여기저기서 이 값을 막 바꾸게 된다. 내가 원하는 시점에 싱글톤 객체를 사용했는데 이 타이밍에 다른 녀석들이 똑같이 싱글톤 객체를 사용한다면 원하는 값이 나오지 않을 가능성이 높아진다.
java 프로세스 메모리가 계속 증가한다..! 메모리 누수일까? CentOS7에 java 프로세스를 가동시키고 해당 java service가 제공하는 api를 계속 호출했더니 메모리가 야금야금 증가해서 증가한 메모리를 유지하는 현상을 발견했습니다 과연 이게 메모리 누수인지 아니면 다른 이유인지 확인해 보겠습니다. Java Service 실행 환경 api version : 2.3.1 os : CentOS Linux release 7.7.1908 (Core) jdk : openjdk "14.0.1" java options : -server -Xms2g -Xmx2g -Xss256k -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Dfile.encoding=UTF-8Ja..
- Total
- Today
- Yesterday
- coordinate system
- 람다
- c++11
- bug
- Lambda
- 람다함수
- UE5
- rotator
- LambdaFunction
- C
- UE4
- Trouble shooting
- unrealengine
- double free
- c++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |