728x90
반응형
New Feature
- 서버와 클라이언트에 대한 고유 DB 식별자를 추가함
- 주키퍼 서버에서의 감사를 로깅함
- 주키퍼에 대한 새 기능으로 인증 강화를 제안함
- znode와 그 자식들을 재귀적으로 나열하는 CLI 명령어를 추가함
- OWASP 종속성 보고서를 실행하기 위한 ant 작업을 추가함
- 실시간으로 jute.maxBuffer 사용량 모니터링 기능을 추가함
- CRC 오류가 있는 로그 및 스냅샷 항목을 복구하는 도구를 필요로 함
- Followers의 JMX에 현재 리더의 ID를 노출하도록 함
- Prometheus.io를 통합함
- 주키퍼에에 대한 플러그 가능한 메트릭 시스템을 추가함
- 주키퍼 내부에 내장된 데이터 일관성을 검사함
- 특정 zxid로 로그를 잘라내는 유틸리티를 추가함
- 팔로워가 옵저버를 호스팅할 수 있도록 허용함
- 사용자 지정 SSLContext를 추가함
- 특정 경로 아래에 있는 재귀적 하위 노드의 총 개수를 얻는 API 및 해당 CLI를 추가함
- 세션에 의해 생성된 모든 일시적 노드를 얻는 새로운 getEphemerals api를 추가함
- 로그 크기에 기반한 스냅샷 옵션을 추가함
- 트랜잭션 로그 플러시에 지연을 허용하도록 함
- Netty 연결에 대한 IP 인증을 자동으로 추가하도록 함
- zookeeperTools.md 에 대한 새 문서를 추가함
- zkSnapShotToolkit.sh로 Snapshotformatter를 캡슐화하고 사용법을 문서화함
- 관리 서버를 위해 포트를 통합함
- zooekeeperMonitor.md 문서를 추가함
Improvement
- 테스트 JAR를 게시함
- 클라이언트와 쿼럼에 대한 SASL(Kerberos) 인증과 SSL을 지원함
- zkpython에 SSL 지원을 추가함
- 재초기화된 서버가 리더 선출에 참여하지 않도록 함
- 단일 스레드 C 클라이언트 API에서 동기 호출을 제거함
- 클라이언트 포트의 리슨 소켓 대기열 설정을 가능하도록 함
- 대규모 클라이언트를 위한 대량의 와치(watch) 활성화를 지원함
- 영구적 재귀 watch를 지원함
- 데이터 디렉토리 및 로그 디렉토리 크기를 노출하도록 함
- 주키퍼 클라이언트 쉘에 버전 명령어를 추가함
- 주키퍼 서버에 버전 명령어를 추가함
- 클라이언트 측에서 서버 주체 설정을 가능하도록 함
- 멀티 스레드 NIOServerCnxn를 구현함
- DNS 호스트 이름 → ip 해상도로 재시도하도록 함
- ZooKeeperServer 객체를 인증 플러그인에 통합함
- 압축된 스냅샷 지원을 추가함
- 리더 선출 연결을 위한 TCP keepalive를 활성화함
- 스레드 처리를 개선함
- setAcl의 재귀적 기능을 추가함
- JMX 원격 모니터링을 활성화함
- JDK7을 주키퍼의 최소 요구 사항으로 설정함
- 백업 구성 파일을 지원함
- 혼합 워크로드에 대한 처리량을 대폭 향상함
- SASL 연결 문제의 근본 원인을 로깅하도록 함
- kill -9 대신 kill로 데몬을 중지하도록 함
- 사용되지 않는 리더 선출 구현을 제거함
- 로컬 세션 파라미터를 문서화함
- ZooInspector의 사용자 경험을 개선함
- 초기 메시지를 위한 BufferedOutputStream을 사용함
- 주키퍼 클라이언트의 사용자 정의 HostProviders를 지원함
- ZK 문서의 오타를 수정함
- EventThread와 SendThread의 종료 로그 메시지를 개선함
- 단일 JVM 내에서 다중 주키퍼 클라이언트를 지원함
- NettyServerCnxn 및 NIOServerCnxn 코드를 개선함
- 소켓 연결 설정 시 클라이언트 주소를 로깅하도록 함
- 오류 메시지 명확성을 개선함
- Watcher.java의 오타를 수정함
- 동시 테스트 프로세스와 포트 할당을 개선함
- OutOfMemoryError 발생 시 자동 처리 기능울 추가함
- 이전 Ant 버전 지원을 유지하도록 함
- Datanode.getChildren() 반환값을 변경함
- 학습자 핸들러 루프에서 예상치 못ㅅ한 쿼럼 패킷의 로그 유형을 추가함
- LearnerHandler.packetToString()에 누락된 패킷 유형을 추가함
- LearnerHandler.packetToStriing()을 통한 오류 로그를 개선함
- 옵저버 루프에서 예상치 못한 쿼럼 패킷의 로그 유형을 추가함
- FindBugs 경고를 처리하도록 함
- 메소드 단위 JUnit 테스트 케이스를 지원함
- 주키퍼 서버의 최대 연결 수 제한을 지원함
- 3노드 최소 구성을 명확화함
- MBeanRegistry 오버라이드 가능성을 추가함
- 테스트 코드에서 파일 삭제 코드 중복을 제거함
- 클라이언트 연결 zk 서비스 타임아웃 로그 레벨을 변경함
- 연결된 서버 주소:포트 로깅을 포함함
- 주키퍼 클라이언트의 불필요한 watcher 제거 오류 로그를 최소화함
- 클라이언트 watcher 연결 해제를 개선함
- pom 파일 내 라이선스 섹션 누락을 수정함
- Ivy 최신 버전으로 업그레이드함
- Netty 3.7.1.Final로 업데이트함
- 클라이언트 측 속성을 문서화함
- 'ELECTION TOOK' 로그 메시지에 시간 단위를 추가함
- ZookeeperSaslServer에서 사용자 주체를 허용하도록 함
- 리더 및 팔로워 MXBean에 'electionTimeTaken' 값을 추가함
- Jetty 종속성을 최신 안정 버전으로 업그레이드함
- AvgRequestLatency 지표를 개선함
- txn 로그 동기화 시간에 대한 메트릭을 추가함
- 주키퍼 클라이언트가 우아하게 중지를 처리하도록 함
- ZooKeeperSaslClient의 예외 로깅을 개선함
- Reconfig 실행으로 인한 노드 설정 파일 불일치 문제를 해결함
- stat 명령의 Zxid에 대한 키를 추가함
- 주키퍼 서버 시작 시 dataDir 및 dataLogDir 매개변수 유효성 검사를 추가함
- 느린 fsync를 추적하는 메트릭을 추가함
- 리더 선출 포트 바인딩 실패 시 주키퍼를 종료하도록 함(2888인가 3888로 기억함)
- 리더 활성화 중 선출 참여자 변경으로 인한 가용성 시간 감소를 방지하도록 함
- 스냅샷 압축 추가로 디스크 I/O를 감소하도록 함
- 읽기 집중적인 트래픽 처리량 향상을 위해 응답 캐시를 도입함
- 네트워크 내성(resilience)를 향상시킴
- TLS에서 클라이언트 초기화된 재협상을 비활성화하도록 함
- 투표에 참여하지 않는 팔로워 서버를 추적 및 노출하도록 함
- IPv6 와일드카드 주소를 지원함
- EnsembleAuthProvider를 통한 앙상블 이름을 검증하도록 함
- 서버 측 연결 제한 기능을 추가함
- 서버 측 요청 제한 기능을 추가함
- 주키퍼 파이프라인 및 요청/서버 상태에 대한 유용한 메트릭을 추가함
- 주키퍼의 KeroberosUtil에서 발생하는 불법적인 반사적 접근을 수정하도록 함
- JAVA_HOME 설정 오류 시 개선된 에러 메시지를 제공하도록 함
- 디버그 및 추적 로그 문구를 개선함
- 관리 명령어를 통한 초기 설정 표시 기능을 추가함
- CommitProcessor의 커밋 처리량 개선을 위한 배치 커밋 기능을 추가함
- 리더 표시를 위한 관리 명령어를 추가함
- 투표 뷰 표시를 위한 관리 명령어를 추가함
- 동시에 평문 및 암호화된 연결을 지원하는 클라이언트 포트를 추가함
- 스냅샷 정보 표시를 위한 관리 명령어를 추가함
- 관리 명령어 문서화를 개선함
- multiRead 작업을 추가함
- 로컬 서버에서의 ACL 검사를 통한 쿼럼 처리량을 개선함
- 클라이언트/서버 연결 종료 시 모니터링을 개선함
- MessageTracker 도입으로 리더와 학습자 간 연결 문제 디버깅을 지원함
- 피어의 동기화 상태 표시를 위한 관리 명령어를 추가함
- 리더에 대한 체크 요청을 쓰기 요청으로 처리하도록 함
- TLS 핸드쉐이크 처리량 개선을 위한 동시 제어를 도입함
- 서버 측 연결 제한에 가중치를 추가함
- 리더 선출 과정 관찰을 위한 서버 명령어를 개선함
- 서버 측 대규모 요청을 제한하도록 함
Bug
- 최근 스냅샷이 모두 유효하지 않을 때 데이터 손실이 발생할 수 있는 작업을 정리함
- 로그 디스크가 가득 찼을 때 Split brain이 발생하는 버그가 수정됨
- 대량의 watch가 있을 경우 세션 재설정 실패 가능성을 제거함
- 노드를 읽을 권한이 없을 때에도 ACL을 읽는 버그가 수정됨
- quorum 멤버에 대해 IPv6 리터럴 주소를 지원하지 않는 버그가 수정됨
- zookeeper_close에서 메모리가 누수되는 버그가 수정됨
- 참여자로 새 노드를 재구성할 때 클러스터가 충돌하는 버그가 수정됨
- zk 시작 실패를 적절한 오류 메시지로 처리하도록 수정함
- 연결 시도가 실패할 때 주키퍼 클라이언트가 호스트를 다시 해석하도록 수정함
- 클라이언트 포트를 재구성하면 소켓 누수가 발생하는 버그가 수정됨
- 리더 종료와 리더에게 ACK 전달 사이의 교착 상태가 발생하는 버그가 수정됨
- 윈도우 OS에서 zooInspector가 시작되지 않는 버그가 수정됨
- 리더 서버를 종료하는 동안 교착 상태가 발생하는 버그가 수정됨
- 팔로워가 리더와 동기화하는 동안 외부 연결 요청을 받으면 서버가 교착 상태에 빠질 수 있는 버그가 수정됨
- 잘못된 TTL로 인해 주키퍼가 충돌하는 버그가 수정됨
- 세션 관리의 결함으로 인한 데이터 불일치가 발생하는 버그가 수정됨
- CMake가 잘못된 주키퍼 버전을 선언하는 버그가 수정됨
- 주키퍼 서버가 다시 열렸을 때, 옵저버가 새 리더에게 연결하는 데 걸리는 시간이 너무 길어 세션이 만료되는 버그가 수정됨
- 잘못된 리더 선거 시간을 기록하는 버그가 수정됨
- 시스템 변수를 사용하여 zookeeper.sasl.client.canonicalize.hostname을 설정할 수 없는 버그가 수정됨
Test
- -
Wish
- -
Task
- 선택적으로 클라이언트 환경 로깅을 억제하도록 함
Sub-task
- Atomic Boradcast 프로토콜에 대한 SSL을 지원함
- 동적 재구성 중에 교착 상태가 발생하는 버그가 수정됨
- TTL 임시 노드에 대한 CLI 옵션을 생성함
- 디스크에서 스냅샷/트랜잭션을 로드할 때 데이터 무결성을 확인하도록 함
- 기본 암호 목록에 AES-256 암호를 추가하도록 함
- watch 메트릭을 추가하도록 함
- commit 프로세서 메트릭을 추가하도록 함
- 팔로워 및 옵저버에 대한 메트릭을 추가함
- 리더에 대한 메트릭을 추가함
- TxnSnapLog 메트릭을 추가함
- 최상위 znode에 대한 읽기/쓰기 메트릭을 추가함
- 세션/연결 관련 메트릭을 추가함
- 회복할 수 없는 오류 횟수를 추가함
참고
- 전체 Release note doc
Index of /doc (apache.org) - 특정 버전 Release note doc
ZooKeeper: Because Coordinating Distributed Systems is a Zoo (apache.org)
728x90
반응형
'Data PipeLine > Zookeeper' 카테고리의 다른 글
[Zookeeper] Ver. 3.6.2 Release note 요약 (0) | 2024.10.20 |
---|---|
[Zookeeper] Ver. 3.6.1 Release note 요약 (0) | 2024.10.19 |
[Zookeeper] Ver. 3.5.9 Release note 요약 (0) | 2024.10.17 |
[Zookeeper] Ver. 3.5.8 Release note 요약 (0) | 2024.10.16 |
[Zookeeper] Ver. 3.5.7 Release note 요약 (0) | 2024.10.14 |