arcus-java-client
arcus-java-client copied to clipboard
INTERNAL: Add classes that implements BTreeSortMergeGetOperation.Callback.
BTreeSortMergeGetOperation.Callback의 로직과 MultiOperationCallback의 로직이 맞는지 테스트 코드를 추가하기 위해 콜백을 class로 만들었습니다. class로 만들어진 콜백을 통해 테스트 코드를 작성하려고 합니다.
변경 사항은 다음과 같습니다.
- 새로운 class들
- 기존에 new Callback()으로 구현하던 sort merge 로직을 클래스로 만들었습니다.
- GlobalParams라는 내부 클래스를 사용해 매개변수를 받아오는데, 이 클래스는 두 가지 목적을 위해 만들어졌습니다.
- 한 번의 연산이 한 번의 merged result를 만들어야 하므로, 노드 별로 분산되는 opreation과 callback이 하나의 merged result를 만들도록 하기 위해
- 10개 초과의 매개변수를 갖도록 만들면 코드 스타일에서 컴파일 에러를 발생시키는 점을 방지하기 위해
- GlobalParams 클래스 생성자의 List<AtomicBoolean> atomicBooleans라는 매개변수도 이러한 의도로 만들어졌습니다. Old smget의 경우 11개의 매개변수가 필요한데, 이를 10개로 줄이고자 List에 담도록 했습니다.
- ArcusClient
- 기존에 new Callback()으로 구현하던 sort merge 로직을 제거하고 클래스로 만든 콜백 객체를 사용하도록 했습니다.
- GlobalParams 객체를 smget 메소드에서 하나를 만들고 callback 객체들이 공유하여 사용하도록 했습니다.
리뷰 반영했습니다.
@uhm0311 @jhpark816 리뷰 완료하였습니다.