분산 시스템의 주요 미해결 문제?


23

질문 에서 영감을 받아 (이론적) 분산 시스템 도메인에서 개선이 필요한 주요 문제와 기존 솔루션은 무엇입니까?

멤버쉽 프로토콜, 데이터 일관성 같은 것?

답변:



14

수많은 그래프 문제분산 시간 복잡성 은 여전히 ​​미해결 문제입니다.

일반적으로, 분산 그래프 알고리즘은 그래프 문제의 분산 시간 복잡성에 대해 상한과 하한 을 (적어도 점증 적으로) 일치 시킬 것으로 예상되는 영역입니다 . 예를 들어, 많은 최적화 문제의 경우 엄격한 한계가 알려져 있습니다. 그러나 여전히 잘 이해되지 못한 고전적인 대칭 파괴 문제가 많이 있습니다.

우리는 예를 들어, 얼마나 많은 통신 라운드 그것이 찾을 걸립니까, 모르는 최대한의 독립적 인 설정 하는 최대 매칭 , 적절한 착색 정점 으로 색, 또는 적절한 착색 가장자리2 Δ - 1 개 색상을 그래프로를 최대 차수 Δ . 이러한 모든 문제는 탐욕스러운 중앙 집중식 알고리즘으로 쉽게 해결할 수 있으며 이러한 각 문제에 대해 효율적인 분산 알고리즘이 있지만 현재 알고리즘 중 어떤 것이 최적인지는 알 수 없습니다.Δ+12Δ1Δ

예를 들어, 이러한 모든 문제에 대해 실행 시간이 인 LOCAL 모델에 대한 결정 론적 분산 알고리즘이 있습니다. 여기서 n 은 노드 수입니다. 되는 공지 이러한 문제는 시간이 해결 될 수 없다고 O ( Δ ) + O를 ( 로그 * N ) 발사하지만 그들이 시간에 해결할 수있는 경우가 알려져 있지 O ( Δ ) + O ( 로그 * N )영형(Δ+로그)영형(Δ)+영형(로그)영형(Δ)+영형(로그)반올림. 일반적으로 우리는 실행 시간이 최대 정도에 어떻게 의존 하는지 이해하지 못합니다. 이것이 바로 현지 조정 문제 입니다.

무작위 의 역할 은 또 다른 주요 문제입니다. 예를 들어, 위에서 언급 한 많은 문제는 무작위 알고리즘으로 폴리 로그 시간에서 해결 될 수 있습니다 (즉, 시간은 Δ 값에 대해 폴리 로그입니다 ). 예를 들어 최대 독립 세트에 대한 폴리 로그 시간 결정 알고리즘은 알려져 있지 않습니다. . 이 문제와 다른 많은 미해결 문제는 Barenboim과 Elkin최근 저서 11 장에서 자세히 설명 합니다.Δ


위에서 분산 컴퓨팅과 관련된 질문에 중점을 두었습니다. 분산 그래프 알고리즘에는 이론적 인 컴퓨터 과학의 일반적인 문제를 열기 위해 사소한 연결을하는 미해결 질문도 있습니다. 예를 들어, 혼잡 한 도당 모델에 대한 불변의 하한 은 분산 컴퓨팅에서 큰 문제입니다. 최근 에 그러한 하한은 ACC에 대한 새로운 하한을 의미한다는 것이 발견되었다 .


7

"최소 스패닝 트리 (MST)에 대한 분산 알고리즘" 에 대한 공개 문제 : ([1]에 나열 됨)

  1. 에 관한 시간 복잡성을,

    거의 시간 동안 최적 알고리즘 및 하한은 [2]에 나타나 있으며 여기에서 참조됩니다. 최적의 시간 복잡도는 여전히 미해결 문제입니다.

  2. 에 관한 메시지 복잡성을,

    영형(+로그)

  3. 동기식 모델 관련 :

    영형(로그로그)

영형(로그)


[1] 2008 년 "알고리즘 백과 사전"에서 Sergio Rajsbaum의 최소 스패닝 트리대한 분산 알고리즘 .

[2] Lotker 등의 일정한 직경 그래프대한 분산 MST . 배포. 컴퓨팅, 2006.

영형(로그로그)

[4] Khan 등의 최소 스패닝 트리대한 빠른 분산 근사 알고리즘 . DISC 2006.


3
영형(로그로그로그)

4

협력 컴퓨팅 연구소를 이끌고있는 노트르담 연구원 Douglas Douglasn의 2012 년부터 "분산 컴퓨팅의 미해결 컴퓨터 과학 문제" 슬라이드 쇼 (더 최근에)를 참조하십시오 . 그것은 적용되는 경사가 더 많지만 열거 된 주요 질문은 필연적으로 이론적 인 영역으로 이어진다.

  • 킬로 스케일 문제 : 동시성이 충분한 워크 플로우는 시스템 관리자의 도움없이 처음으로 1K 코어에서 올바르게 실행될 수 있어야합니다.

  • 중단 문제 : 1,000 개의 노드에서 실행되는 워크 플로가 있으면 모든 관련 상태를 중지하고 완전히 확실하게 정리하십시오.

  • 종속성 문제 :

    (1) 프로그램이 주어지면 실제로 다른 컴퓨터에서 실행하는 데 필요한 모든 것을 알아냅니다.

    (2) 프로세스가 주어지면 실제로 실행하는 동안 사용되는 (분산 된) 리소스를 파악하십시오.

    (3) 1과 2를 전체 워크 플로로 확장하십시오.

  • 적절한 규모의 문제 : (구조화 된) 응용 프로그램과 지정된 클러스터, 클라우드 또는 그리드가 주어지면 수용 가능한 비용으로 우수한 성능을 달성 할 수있는 리소스 할당을 선택하십시오.

  • 문제 해결 문제 : 100 계층 소프트웨어 스택 중간에 오류가 발생하면 언제 어떻게 오류를보고 / 재시도 / 무시 / 억제합니까?

  • 설계 문제 : 분산 컴퓨팅에 적합하도록 응용 프로그램을 어떻게 설계해야합니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.