개발하면서/타인글보면서
-
Kafka purgatory (1)개발하면서/타인글보면서 2020. 6. 29. 00:18
4. 그래서 Kafka에서는 어떻게 사용되고 있냐? DelayedOperation으로 검색하면 다양한 곳에서 사용하는데(Group Coordinator, Replica Manager, ZkAdminManager 등...) 여기서는 Replica Manager 기준으로 알아본다. broker가 가동되면 Replica manager가 한 개씩 생성되고 Replica Manager에는 역할 별 Purgatory가 존재한다. 이때 Partition을 생성하면 ReplicaManager의 Purgatory를 주입해서 아래 그림의 왼쪽은 파티션을 생성할 때 replicaManager의 Purgatory를 delayedOperations로 만들어 주입하는 코드고 오른쪽은 도식화 한것이다. 아래 그림은 xxxPurga..
-
Kafka purgatory개발하면서/타인글보면서 2020. 6. 20. 19:31
업무 중에 request를 보내면 X초 이후에 실행되는 scheduling repository를 살펴보다가 Kafka purgatory는 어떻게 구현했을지 호기심이 생겨 알아보았다. Confluent 블로그와 hierarchical timing wheels 논문을 쉽게 소개한 블로그, 두 개를 보며 나름대로 정리했다. https://www.confluent.io/blog/apache-kafka-purgatory-hierarchical-timing-wheels/ 1. Purgatory란 무엇이고 Kafka 어디에 사용되나? 네이버 사전에 Purgatory를 검색하면 연옥이라고 나오고 의미는 아래와 같다. 가톨릭 교리에서 연옥은 천국으로 가기에는 자격이 부족하지만 지옥으로 갈 정도의 큰 죄를 짓지 않은 죽은..
-
Kafka의 Sticky Partitioner 살펴보기개발하면서/타인글보면서 2020. 1. 18. 13:55
Kafka Broker(server)에 메시지를 주고받는 client 역할을 하는 Kafka Producer / Consumer 중 Producer의 성능 개선 기능이 있어 살펴보려고 한다. ref url: KIP-480, Apache Kafka Producer improvements Sticky Partitioner[Confluent Blog] Kafka Producer의 메시지 전송 방법 두 부분으로 나뉘어 있다. 사용자 코드에서 send()를 실행하면 토픽, 파티션별 record를 모아 놓는(record batch) Accumulator Accumulator에 쌓인 record batch를 가져와서 Kafka Broker에 전송하는 작업을 쉼 없이 하는 Network thread [2.4 코드를 보..
-
Elasticsearch shard 할당 방식을 정리해보자개발하면서/타인글보면서 2019. 11. 27. 21:13
최근 사내에서 사용하고 있는 Elasticsearch를 별다른 설정 없이 쓰다 보니 종종 인덱스/샤드 관련 문제가 생겨서 shard allocation 관련 학습 필요성이 생겼다. Elasticsearch Shard allocation 공식 문서와 AWS의 shard allocation 문서를 읽고 나름 직역했다. https://www.elastic.co/guide/en/elasticsearch/reference/7.2/modules-cluster.html master 노드의 주 역할은 인덱스의 샤드를 데이터 노드에 (고르게) 분배하고 균형을 위해 샤드를 재분배하는것입니다. 샤드 할당하는 4가지 방법과 꿀팁을 소개합니다. 여기서 소개하는 설정 값은 cluster update settings에 나온 방법으..
-
ES hot-warm, Rollout, Shrink 알아보기개발하면서/타인글보면서 2019. 10. 27. 00:52
회사에서 ES도 다루고 있는데 초반에는 별다른 관리 없이도 문제가 없었는데 인입되는 양이 점점 많아지면서 인덱스 관리가 필요했고, 그때 알아본 키워드가 hot-warm architecture, rollover, shrink 였습니다. 급한 불을 끈 후 위 링크는 에버노트 깊은 곳에 저장하고 있다가... 올해 더 많은 데이터 인입이 계획 되어있어서, 아... 학습 좀 하고 적용해야겠다는 생각에 리서치를 시작했습니다. ES 공식 블로그 문서를 읽고 직역 비스므리한 정리를 하였습니다. ES 공식 블로그 - Hot Warm Architecture https://www.elastic.co/kr/blog/hot-warm-architecture-in-elasticsearch-5-x?fbclid=IwAR0gajLECY..
-
Improving key expiration in Redis를 읽고개발하면서/타인글보면서 2019. 4. 21. 14:04
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/improving-key-expiration-in-redis.html Improving Key Expiration in Redis After updating to a new Redis version the Cache team saw a regression. This goes over the investigation and our conclusions. blog.twitter.com 얼마 전 Twitter 블로그에 Redis expire 기능을 개선했다는 글이 올라와 주말 동안 읽고 정리하고자 합니다. 블로그 요약(?)만 하려고 했는데 3.2 activeExpireCycle 함수에 ..