.thunderbird의 메일함 파일은 데이터베이스 파일(반복 임의 쓰기)로 처리됩니까? 일반 BTRFS 파티션에 .thunderbird를 남겨두면 조각화가 얼마나 심각합니까? 사람들이 이 문제에 대한 경험을 공유하기를 바랍니다.
답변1
몇 가지 생각:
- Thunderbird가 기본적으로 사용하는 메일함 형식은 (여전히) 순차적입니다. 새 메시지는 끝에 추가됩니다. 따라서 임의 쓰기 액세스가 전혀 없습니다!
- 메시지 메타데이터(각 메시지는 편지함 파일에서 어디에서 시작됩니까? 삭제되었습니까? 레이블이 있습니까?)는 소위 MORK 데이터베이스 파일(.msf)에 저장됩니다. 이것은 잘못된 데이터베이스 형식입니다(모두가 동의하는 것 같습니다). 그 안에 있는 내용을 변경하려면 대부분의 파일을 다시 작성해야 합니다(반순차적). 따라서 임의의 정시 쓰기 액세스도 없습니다.
- 당신이 얼마나 많은 이메일을 받는지는 모르겠지만, 상황이 좋지 않은 날에도 나는 1분에 2분도 안 되는 이메일을 받습니다. "자주"가 아닙니다. 예를 들어 브라우저 기록이 자주 기록됩니다. (이제는 실제로 데이터베이스 파일입니다. 예를 들어 Firefox를 사용하는 경우 SQLite)
- 실제 무작위 액세스 수정 시에도 COW는 COW를 수행하지 않는 것만큼 효과적일 수 있습니다. 저장 매체는 실제로 한 번에 한 바이트씩 변경할 수 없습니다. 순방향 오류 수정 중복성 계산을 포함하여 수정된 블록을 물리적으로 다시 작성해야 합니다.
- 따라서 플래시 기반 스토리지(SSD)의 경우 파일 조각화에 탐색 시간이 포함되지 않기 때문에 스토리지 장치 크기의 블록 COW 동작에 대한 단점이 없습니다. (사실 SSD는언제나COW는 마모 평준화를 위해 블록에서 내부적으로 수행됩니다. )
- 물론 검색 시간(HDD)이 있는 장치의 경우 조각난 파일은 파일을 순차적으로 읽을 때 액세스 시간에 영향을 미칠 수 있습니다. 이것이 당신에게 중요하다면, 당신은 아마도 많은 이메일을 가지고 있을 것입니다(저처럼 마지막으로 계산해 보니 Thunderbirds에서 50,000개 이상의 이메일을 받았습니다). Thunderbird에 대한 대안을 고려할 수도 있습니다(저는 종종 그렇게 합니다. 나는 로컬에서 전체 텍스트 검색을 위해 Thunderbird를 사용하고 있습니다. 내 가상 서버의 CPU, RAM 및 스토리지 성능은 내 워크스테이션보다 훨씬 낮습니다. 서버측 검색을 위한 전체 텍스트 인덱스를 유지하며 훨씬 더 빠릅니다. 썬더버드 그래서 나는(당황스럽게도) 사용하다"서버에서 검색" 기능을 사용하면 Thunderbird가 로컬에서 검색하는 대신 IMAP 서버에서 이메일을 검색할 수 있습니다.
요점: 데스크톱 이메일 클라이언트를 사용하여 몇 가지 이메일 외에 다른 것에 대해 걱정하지 마세요! 최신 파일 시스템은 이를 매우 잘 수행합니다.
(추악한 사실은 Mozilla가 메시지와 메시지 정보를 저장하는 비효율적인 방법을 대체하기 위해 지난 10년 동안 노력해 왔다는 것입니다. 그들이 현재 선택하고 있지만 생산 준비가 완료되는 데 시간이 걸리는 것처럼 보이는 일부 방법은 훌륭합니다. 현재 Mork에 적합한 데이터베이스 파일을 사용하세요. 다른 것들은 덜 좋습니다. 예를 들어 Maildir 형식을 사용하는 것은 이메일 간 작업을 수행해야 하는 경우 그다지 효율적이지 않습니다. 실제로 Thunderbird는 "Normal" 파일을 사용한다고 생각합니다. 이러한 문제를 해결하기에는 형식이 복잡하고 이것이 근본적인 단점이라고 생각하며 현재 Thunderbird의 채팅 메신저에는 네 가지 단점이 있으며 그 중 일부는 아직 존재하는 채팅 네트워크에서도 작동하지 않습니다. 이메일 클라이언트에는 이메일을 저장하는 강력하고 합리적으로 효율적인 방법이 없습니다.