문제

SSD(Solid State Disk)의 가격이 하락하고 있으며 곧 시스템 드라이브로 널리 보급될 것이며 액세스 속도가 회전 자기 미디어보다 훨씬 높다는 점을 고려하면 로컬 드라이브에 SSD를 사용하면 어떤 표준 알고리즘의 성능이 향상됩니까? 저장?예를 들어, SSD의 높은 무작위 읽기 속도는 디스크 기반 해시테이블과 같은 것을 대규모 해시테이블에 대한 실행 가능성으로 만듭니다.4GB의 디스크 공간을 쉽게 사용할 수 있으므로 32비트 정수의 전체 범위에 대한 해싱이 가능합니다(그러나 채우기보다 조회에 더 많은 시간이 소요되지만 여전히 시간이 오래 걸립니다).이 크기의 해시테이블은 액세스 속도로 인해 회전식 미디어로 작업하기에는 불가능하지만 SSD에서는 그다지 문제가 되지 않습니다.

SSD로의 전환이 임박하면 알고리즘 성능이 향상될 수 있는 다른 영역이 있습니까?나는 의견보다는 한 가지 일이 어떻게 작동할지에 대한 추론을 보고 싶습니다.나는 이것이 논쟁거리가 되는 것을 원하지 않습니다.

도움이 되었습니까?

해결책

Hashtables의 예는 실제로 혜택을 줄 주요 데이터베이스 구조입니다. 값을 조사하기 위해 전체 4GB 이상의 파일을 메모리에로드하는 대신 SSD를 직접 조사 할 수 있습니다. SSD는 여전히 RAM보다 느리게 느려지지만 디스크에 50GB 해시 테이블을 갖는 것은 상당히 합리적이지만 Big Iron에게 큰 돈을 지불하지 않는 한 RAM은 아닙니다.

예를 들어 체스 포지션 데이터베이스가 있습니다. 50GB 이상의 해시 위치가 있습니다. 해시에서 서로 가까운 관련 위치를 그룹화하려는 복잡한 코드가 있으므로 한 번에 10MB의 테이블을 페이지에 페이지를 방문 할 수 있으며 여러 유사한 위치 쿼리에 대해 일부를 재사용 할 수 있기를 바랍니다. 이를 효율적으로 만들기위한 수많은 코드와 복잡성이 있습니다.

SSD로 대체 된 클러스터링의 모든 복잡성을 떨어 뜨릴 수 있었고 실제로 멍청한 무작위 해시를 사용할 수있었습니다. 또한 큰 10MB 청크가 아닌 디스크에서 필요한 데이터 만 가져 오기 때문에 성능이 증가했습니다. 대기 시간은 실제로 더 크지 만 순 속도 업이 중요합니다. 그리고 슈퍼 클리어 코드 (800+가 아닌 20 줄)는 아마도 더 좋을 것입니다.

다른 팁

SSD는 임의의 액세스를 위해서만 훨씬 빠릅니다. 디스크에 대한 순차적 액세스 주류 회전 드라이브보다 두 배만 수행됩니다. 많은 SSD는 많은 시나리오에서 성능이 저하되어 설명했듯이 성능이 악화됩니다. 여기.

SSD는 바늘을 상당히 움직이고 있지만 여전히 CPU 작업 및 물리적 메모리보다 훨씬 느립니다. 4GB 해시 테이블 예제의 경우 무작위 해시 테이블 버킷에 액세스하기 위해 SSD에서 250mb/s를 유지할 수 있습니다. 회전 드라이브의 경우 단일 자릿수 MB/S를 깨뜨리는 것이 운이 좋을 것입니다. 이 4GB 해시 테이블을 메모리에 보관할 수 있다면, 매우 신속한 SSD보다 훨씬 빠르게 기가 바이트의 순서대로 액세스 할 수 있습니다.

참조 기사에는 SSD에서 실행할 때 Windows 7에 대해 MS가 만든 몇 가지 변경 사항이 나와있어 고려할 수있는 변경 사항에 대한 아이디어를 제공 할 수 있습니다. 먼저, 디스크의 데이터를 프리 페치하기위한 SuperFetch는 비활성화되어 있습니다. SSD에 의해 완화되는 디스크의 랜덤 액세스 시간이 느리게 진행되도록 설계되었습니다. 디스크에 파일이 흩어져 있으면 SSDS의 성능이 적용되지 않기 때문에 DEFRAG가 비활성화되었습니다.

IPSO 사실, 당신이 생각할 수있는 모든 알고리즘은 많은 임의의 디스크 I/O가 필요합니다 (무작위는 핵심 단어이므로 조류에 지역의 원리를 던지는 데 도움이되므로 진행되는 많은 캐싱의 유용성을 제거합니다). .

그래도 특정 데이터베이스 시스템이 이로부터 얻는 것을 볼 수있었습니다. MySQL, 예를 들어 MyISAM 저장 엔진을 사용하는 것과 같은 MySQL (데이터 레코드는 기본적으로 영광스러운 CSV). 그러나, 나는 매우 큰 해시블이 좋은 예를위한 최선의 방법이 될 것이라고 생각합니다.

SSD는 무작위 판독의 경우 훨씬 더 빠르며 순차적 판독 값은 비트이며 쓰기 (무작위 여부)의 경우 적절하게 느려집니다.

따라서 디스크 기반 해시 테이블이 올바르게 있습니다 ~ 아니다 SSD에 유용합니다. 이제 업데이트하는 데 시간이 많이 걸리지 만 디스크를 검색하는 것은 (일반 HDD와 비교) 매우 저렴 해집니다.

농담하지 마세요.SSD는 여전히 시스템 메모리보다 훨씬 느립니다.하드 디스크를 통해 시스템 메모리를 사용하도록 선택한 알고리즘은 여전히 ​​훨씬 더 빠르며 다른 모든 사항은 동일합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top