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. As with all projects, the items mentioned on this page are subject to change or delay. The development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.
Status Authors Coach DRIs Owning Stage Created
proposed -

이 문서는 진행 중인 작업이며, Cells 설계의 매우 초기 상태를 나타냅니다. 중요한 측면들이 문서화되지 않았지만, 우리는 이를 나중에 추가할 것으로 예상합니다. 이는 Cells의 하나의 가능한 아키텍처이며, 우리는 어떤 접근 방식을 실행할지 결정하기 전에 대안과 대조할 것을 의도합니다. 만약 이 접근 방식을 선택하지 않기로 결정하더라도, 이 문서는 구현하지 않기로 결정한 이유를 문서화할 수 있도록 유지될 것입니다.

Cells: Explore

오늘의 GitLab이 하는 방식에서는 Explore가 중요한 역할을 하지 않을 수 있지만, 현재의 GitLab은 고립되어 있지 않습니다. Explore 또는 적절한 대체물이 필요한 것은 이 고립된 점 때문입니다.

기존의 그룹 및 프로젝트 탐색은 초기에는 조직으로 범위가 제한됩니다. 그러나 공개 그룹 및 프로젝트의 발견을 지원하기 위해 여러 조직을 가로지르는 전역 탐색이 필요합니다. 특히 오픈 소스 프로젝트를 발견하는 문맥에서 특히 중요합니다. 사용자 의견은 여기여기를 확인하세요.

1. 정의

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

2. 데이터 흐름

3. 제안

탐색 기능 문제는 셀 간 통신 문제를 해결하는 더 넓은 범주 아래에 들어갑니다. 이 주제는 더 심층적인 연구가 필요합니다.

다음은 추가 조사를 위한 가능한 방향입니다.

3.1. 읽기 전용 테이블 미러

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

단점:

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

3.2. 조직으로 범위가 제한된 탐색

프로젝트 탐색과 그룹 탐색은 조직으로 범위가 제한됩니다.

단점:

  • 그룹 및 프로젝트의 전역 발견성이 없습니다.

4. 평가

기존의 그룹 및 프로젝트 탐색은 초기에는 조직으로 범위가 제한될 것입니다. 현재 탐색 기능의 사용에 따르면, 우리는 이것을 용인 가능하다고 판단합니다. 기존 사용자, 그룹 및 프로젝트가 모두 기본 조직의 일부로 초기에 먼저 이동되기 때문에, 그룹 및 프로젝트는 오늘날과 같이 발견 가능하고 접근 가능할 것입니다. 기존 그룹 및 프로젝트가 기본 조직에서 다른 조직으로 이동될 때에만 이것이 눈에 띌 만한 문제가 될 것입니다. 이를 완화하기 위한 해결책은 이슈 #418228에서 논의되었습니다. 최종적으로, 탐색은 전체적으로 더 나은 검색 경험으로 대체될 수 있습니다.

4.1. 장점

  • 초기에 발견 능력의 부족은 문제가 되지 않을 것입니다.
  • 월간 기준으로 전체 기존 사용자 중 약 1.5%만 탐색 기능을 사용하고 있습니다.

4.2. 단점

  • GitLab 소유의 최상위 그룹은 먼저 자체 조직으로 이동할 것이며, 따라서 기본 조직의 발견 가능성에서 분리될 것입니다.