Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"bkey" and "subkey" 용어 사용 정리 #521

Closed
jhpark816 opened this issue Jul 20, 2022 · 2 comments
Closed

"bkey" and "subkey" 용어 사용 정리 #521

jhpark816 opened this issue Jul 20, 2022 · 2 comments
Assignees

Comments

@jhpark816
Copy link
Collaborator

현재 bkey, subkey 등의 용어가 아래와 같이 혼용되어 사용되고 있습니다.

  public CollectionFuture<Map<Long, Element<Object>>> asyncBopGet(String key,
                                                                  long bkey,
                                                                  ElementFlagFilter eFlagFilter,
                                                                  boolean withDelete,
                                                                  boolean dropIfEmpty);
  public CollectionFuture<Long> asyncBopIncr(String key, long subkey, int by);
  public CollectionFuture<Long> asyncBopIncr(String key, byte[] subkey, int by);

아래와 같이 구분하여 사용하도록 수정하면 좋겠습니다.

  • bop 전용의 method이면, bkey 용어 사용
  • collection 공통 method이면, subkey 용어 사용.

코드와 문서를 함께 수정합시다.

@oliviarla
Copy link
Collaborator

@jhpark816

현황 공유

  • OperationFactory에서 btree 아이템의 incr/decr 연산에서만 사용되는 Operation 생성 시 subkey 용어 사용중입니다.
  /**
   * Increment/Decrement operation for collection items (b+tree items).
   *
   * @param key              b+tree item's key
   * @param subkey           element key
   * @param collectionMutate operation parameters (increment/decrement amount and so on)
   * @param cb               the callback that will contain the incremented/decremented result
   * @return a new CollectionMutateOperation
   */
  CollectionMutateOperation collectionMutate(String key, String subkey,
                                             CollectionMutate collectionMutate,
                                             OperationCallback cb);
  • Btree 연산에만 사용되는 BTreeInsertAndGet / BTreeGetBulkOperation 등 많은 클래스들에서 아직 subkey 용어를 사용중입니다.

해결 방안

  • 단기적으로는 위와 같이 btree에서만 사용되는 메서드/클래스에서는 subkey라는 용어를 bkey로 대체합니다.
  • 장기적으로는 subkey라는 용어 자체의 발생을 막는 것을 제안합니다.
    • subkey라는 용어가 생긴 이유는 list, set, btree 자료구조가 서로 다른 입력 인자와 특성을 갖는 상황에서, 코드의 중복 제거를 위해 하나의 메서드와 클래스를 공유해 insert, update, exist 등의 기능을 구현하고 있습니다.
    • 혼돈을 막기 위해서는 구조 자체를 바꾸어 subkey 용어를 index(list), bkey(btree)와 같이 자세한 표현으로 대체해야 합니다.

@oliviarla
Copy link
Collaborator

  • subkey를 제거할 수 있는 부분은 모두 제거하여 close합니다.
  • subkey 용어가 아직 사용되고 있는데 이는 구조적 문제이므로 코드에서 subkey 용어 제거 #773 에서 해결하도록 하겠습니다.

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

No branches or pull requests

3 participants