Skip to content

DOC: Update ConnectionFactoryBuilder and Transcoder docs#1050

Open
f1v3-dev wants to merge 1 commit intonaver:developfrom
f1v3-dev:docs/arcus-java-client
Open

DOC: Update ConnectionFactoryBuilder and Transcoder docs#1050
f1v3-dev wants to merge 1 commit intonaver:developfrom
f1v3-dev:docs/arcus-java-client

Conversation

@f1v3-dev
Copy link
Collaborator

🔗 Related Issue

⌨️ What I did

  • ConnectionFactoryBuilder 설정 항목에 대한 문서를 추가 및 개선합니다.
  • 기존에 분산되어 있던 데이터 압축 및 Transcoder 관련 내용을 "데이터 직렬화 및 압축 설정" 으로 통합합니다.
  • arcus-java-client - docs 변경 미리보기 링크

@jhpark816 jhpark816 requested a review from oliviarla February 26, 2026 06:09
@oliviarla
Copy link
Collaborator

@jhpark816
이번에 DOCS 관련 내용 수정하는 김에 @f1v3-dev 님이 ConnectionFactoryBuilder 상세 소개 페이지, Transcoder 소개 페이지 등을 별도로 구성하는 것을 제안 주셨습니다.
확인해보니 괜찮은 것 같아서, 아예 하나의 PR로 수정해도 괜찮을 것 같은데 어떠신가요?

@jhpark816
Copy link
Collaborator

@oliviarla

확인해보니 괜찮은 것 같아서, 아예 하나의 PR로 수정해도 괜찮을 것 같은데 어떠신가요?

현재 PR이 하나의 PR로 수정된 것이고, 이를 한번에 리뷰하여 머지하자는 의견인가요?
맞다면, 한번에 리뷰하는 것으로 일단 진행하시죠.

@f1v3-dev f1v3-dev force-pushed the docs/arcus-java-client branch from a77c1cc to a0f0752 Compare March 4, 2026 06:48
Copy link
Collaborator

@oliviarla oliviarla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리뷰 완료입니다.
새롭게 올렸던 PR 대신 ConnectionFactoryBuilder 이슈 우선 처리를 위해 본 PR을 반영하고자 합니다.

cfb.setFrontCacheExpireTime(5); // 선택, 기본값 5초
```

**_setReadPriority_**
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

setXXX 메서드 표현을 - 에서 **_ 타입으로 바꾸니 726, 731 라인이 다른 내용의 시작으로 보이는 것으로 오해할 수 있어보입니다.
개인적으로는 - 로 표현하는게 좋아보입니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

메서드 표현을 리스트(-)로 나열하면 그 아래에 부가 설명이나 표, 코드 블록이 이어질 때 문서 구조가 어색해 보일 수 있을 것 같습니다.

각 메서드를 #### 헤더로 구분해서 정리하는 방식은 어떤가요?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그러면 헤더를 사용하고, 하위 내용의 볼드체랑 구분되게만 하면 좋을 것 같습니다.

future.get(700,TimeUnit.MILLISECONDS);
```

**_setTimeoutExceptionThreshold, setTimeoutDurationThreshold_**
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

setter 순서가 기존과 달라졌는데 어떤 기준으로 변경하신건가요??

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

표를 통해 정리하면서 순서가 섞인 것 같습니다.

ConnectionFactoryBuilder.java 의 순서대로 변경하도록 하겠습니다.

`setInitialObservers()` 는 노드 연결 상태를 모니터링하기 위한 Observer를 등록하는 메서드이다.

- Front Cache 설정은 별도 [문서](11-front-cache.md#사용법)에 설명되어 있다.
> `setInitialObservers()`는 내부 초기화 전용 메서드로, 연결 상태 모니터링이 필요한 경우 `ArcusClient` 초기화 완료 후 `addObserver()`를 사용한다. No newline at end of file
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ArcusClient/ArcusClientPool 생성 시 위와 같이 동작함을 명시하는 것이 좋겠습니다. (MemcachedClient 생성 시 문제 없음)


Operation Queue 내 연속된 GET 요청을 최대 100개 단위로 조합하여 하나의 요청으로 처리하는 최적화 로직 사용 여부를 설정한다.

> 이 기능은 기존 spymemcached 호환을 위해 존재하며, cancel, replication 등의 시나리오에서 검증이 충분히 이루어지지 않았다.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

참고 사항이 아니라 사용하지 않을 것을 강하게 권장하는 거라서, > 사용하지 않고 일반 텍스트로 두는 게 좋을 것 같습니다.
나머지 비활성화 권장 사항들도 일반 텍스트로 수정해주시면 좋겠습니다.

Comment on lines +726 to +734
**Slave 부재 시 동작**

- `ReadPriority.SLAVE`로 설정된 상태에서 모든 Slave가 다운된 경우, 자동으로 Master로 fallback되어 읽기 요청을 처리한다.
- Slave가 복구되면 즉시 Slave로 읽기가 전환된다.

**Switchover 시 동작**

- Switchover가 발생하면 클라이언트는 ZooKeeper 이벤트를 통해 역할 변경을 감지하고, 새로운 Master/Slave 구성에 맞게 읽기 및 쓰기 요청을 자동으로 재분배한다.
- Switchover 발생 시점에 처리 중이던 Operation은 기존 노드의 Queue(inputQ, writeQ, readQ)에서 새로운 Master 노드의 writeQ로 이전(moveOperations)되어 유실 없이 처리된다.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 내용은 여기서 제거되어도 될 것 같습니다. ReadPriority에 대한 내용이 아닌 복제 개념에 대한 내용이라서, 나중에 복제 관련 문서가 추가되면 그 때 이 내용을 적으면 될 것 같습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영하도록 하겠습니다.

@f1v3-dev f1v3-dev force-pushed the docs/arcus-java-client branch from a0f0752 to 62c3c9e Compare March 5, 2026 01:37
@f1v3-dev f1v3-dev force-pushed the docs/arcus-java-client branch from 62c3c9e to c7a99cc Compare March 5, 2026 01:39
@f1v3-dev
Copy link
Collaborator Author

f1v3-dev commented Mar 5, 2026

@oliviarla 말씀해주신 내용 반영했습니다.

@oliviarla
Copy link
Collaborator

@f1v3-dev
리뷰하는 중인데 기존 메서드의 설명을 단순화하여 내용이 바뀐 부분이 너무 많아서, 한 PR에서 리뷰하고 반영하는게 어려울 것 같습니다.
이슈를 해결하는 PR 을 따로 먼저 보내주시는게 좋을 것 같습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants