This page contains information related to upcoming products, features, and functionality. It is important to note that the information presented is for informational purposes only. Please do not rely on this information for purchasing or planning purposes. The development, release, and timing of any products, features, or functionality may be subject to change or delay and remain at the sole discretion of GitLab Inc.
Status Authors Coach DRIs Owning Stage Created
proposed -

이 문서는 진행 중인 작업이며 Cells 디자인의 매우 초기 상태를 나타냅니다. 중요한 측면들이 문서화되지 않았지만, 앞으로 추가할 예정입니다. 이는 Cells에 대한 한 가지 가능한 아키텍처이며, 우리는 구현할 접근 방법을 결정하기 전에 대안과 대조할 예정입니다. 이 문서는 우리가 이 접근 방법을 선택하지 않기로 결정할 경우에도 유지될 것이며, 이로 인해 선택하지 않은 이유를 문서화할 수 있습니다.

Cells: 탐색

탐색은 현재 GitLab에서 중요한 역할을 하지 않을 수 있지만, 현재의 GitLab은 격리되어 있지 않습니다. 탐색 또는 대체 가능한 것을 필요로 하는 이유가 여기에 있습니다.

기존의 그룹 및 프로젝트 탐색은 초기에 조직 범위로 설정될 것입니다. 그러나 공개 그룹 및 프로젝트의 발견 가능성을 지원하기 위해 여러 조직을 넘나드는 전역 탐색이 필요합니다, 특히 오픈 소스 프로젝트를 발견하는 맥락에서. 사용자 피드백은 여기여기에서 확인할 수 있습니다.

1. 정의

탐색 기능은 사용자가 그룹과 프로젝트를 발견하는 데 도움을 줍니다. 인증되지 않은 사용자는 공개 그룹 및 프로젝트만 탐색할 수 있고, 인증된 사용자는 접근할 수 있는 모든 그룹과 프로젝트(비공개 및 내부 그룹 및 프로젝트 포함)를 볼 수 있습니다.

2. 데이터 흐름

3. 제안

탐색 기능 문제는 셀 간 통신 문제를 해결하는 보다 폭넓은 개념의 하나입니다. 이 주제는 심층적인 연구가 필요합니다.

추가 조사를 위한 가능한 방향은 아래와 같습니다.

3.1. 읽기 전용 테이블 미러

  • 공유 클러스터 전역 데이터베이스에 shared_projects 테이블을 생성합니다.
  • 이 테이블의 모델은 읽기 전용입니다. 삽입/업데이트/삭제가 허용되지 않습니다.
  • 이 테이블은 프로젝트 셀 로컬 테이블에서의 데이터(또는 데이터 일부)로 채워집니다.
    • 로컬 데이터베이스로 쓰기 모델 프로젝트(셀 로컬)는 로컬 데이터베이스에 쓰기 작업을 합니다. 우리는 주로 셀 로컬에 대한 작업에 이 모델을 사용할 것입니다.
    • 이 데이터는 변화가 있을 때 마다 백그라운드 작업을 통해 shared_projects와 동기화됩니다.
    • shared_projects의 데이터는 정규화되어 있으므로 프로젝트 탐색을 표시하는 데 필요한 모든 정보가 포함되어 있습니다.
  • 프로젝트 탐색은(현재로써) 그룹이나 조직에 네임스페이스되지 않았기 때문에 인스턴스 전역 기능의 일부입니다.
    • 이 부분은 shared_projects의 읽기 모델을 사용하여 데이터를 읽습니다.
  • 사용자가 프로젝트를 클릭하면 해당 프로젝트가 포함된 셀로 리디렉션됩니다.

단점:

  • 인스턴스 전역 데이터에 액세스하는 명시적인 패턴이 필요합니다. 그러나 이는 관리 기능에도 유용할 수 있습니다.
  • 현재의 프로젝트 탐색이 오늘과 같이 다양한 필터링 옵션이나 해당 프로젝트에 대한 역할 등의 기능으로는 적합하지 않을 수 있습니다.
  • CQRS를 관리하는 데 추가 복잡성이 발생합니다.

3.2. 조직 범위의 탐색

프로젝트 탐색과 그룹 탐색은 조직 범위로 설정됩니다.

단점:

  • 조직 및 프로젝트의 전역 발견 가능성이 없습니다.

4. 평가

기존의 그룹 및 프로젝트 탐색은 초기에 조직 범위로 설정될 것입니다. 탐색 기능의 현재 사용을 고려할 때, 우리는 이를 허용 가능하다고 판단합니다. 기존 사용자, 그룹 및 프로젝트가 모두 기본 조직의 일부로 초기에 포함되기 때문에 그룹 및 프로젝트는 현재와 같이 탐색 가능하며 접근 가능할 것입니다. 기존 그룹 및 프로젝트가 기본 조직에서 다른 조직으로 이동될 때만 이것은 주목할 만한 문제가 될 것입니다. 이를 완화하기 위한 솔루션은 이슈 #418228에서 논의되고 있습니다. 궁극적으로, 탐색은 더 나은 검색 경험으로 완전히 대체될 수 있습니다.

4.1. 장점

4.2. 단점

  • GitLab 소유의 최상위 그룹은 자체 조직으로 이동되어 기본 조직의 탐색 가능성과 분리될 것입니다.