병렬 동적 검색


24

합리적으로 작업 효율을 유지하면서 업데이트를 위해 비슷하거나 끔찍하게 나쁜 속성을 가진 빨강-검은 나무와 자연스럽게 평행 한 아날로그가 있습니까?

보다 일반적으로 업데이트를 통한 병렬 검색에 가장 적합한 방법은 무엇입니까?


"무섭지 않은 상태"를 유지하거나 돌리려는 특성은 무엇입니까? 균형 상태가 여전히 적-검은 나무의 조건 인 것이 얼마나 중요합니까? 동시 건너 뛰기 목록에서와 같이 예상 범위가 허용됩니까?
jbapple 2016 년

나는 기대되는 한계가 좋을 것이라고 생각합니다. 이것은 우리가 업데이트 된 키 값으로 데이터 구조에 매우 자주 충돌하는 상황으로, 피보나치 힙이 정확하고 효율적인 변경 키 작업이 될 수 있습니다. 동시 건너 뛰기 목록에 대한 좋은 참조가 있습니까?
Suresh Venkat

Herlihy & Shavit의 저서 인 The Art of Multiprocessor Programming 또는 "Lock-free linked list and skip list" 또는 java.util.concurrent 또는 Practical lock-freedom . hopscotch 해시 테이블 과 같은 동시 해시 테이블 사용을 고려 했습니까 ?
jbapple

사실은 아니야 나는 슬프게도 동시적인 방법으로 문맹입니다. 심판 주셔서 감사합니다.
Suresh Venkat

답변:


8

내가 알 수 있듯이 전략은 균형 상태를 완화 한 다음 재조정 업데이트를 버스트로 수행하는 것입니다. 다음은 Hanke et al., 1997 [PDF] 의 논문입니다. 필자는 필자가 동시에 수행 할 수 있도록 업데이트 작업을 집계하고 해결하는 기술에 중점을두고 있다고 생각합니다.


5

오카 사키의 책 순수 기능적 데이터 구조 에서 흥미로운 답변을 찾을 수있을 것 같습니다 . 이 책에는 모든 업데이트가 비싸지 않도록 많은 데이터 구조가 표시됩니다 (보통 일정 또는 로그 시간 만 소요).

nn


4
추가 수정없이 순전히 기능적인 검색 트리가 모든 업데이트를 직렬화하므로 쓰기 경합에서 성능이 저하된다고 생각합니다.
jbapple
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.