2010-01-21 5 views
0

최근 우리는 소프트웨어를 일반 PC 서버에서 하드 디스크 드라이브 대신 Disk on module (DOM)을 사용하는 임베디드 시스템으로 마이그레이션하려고합니다.메모리에서 postgresql을 실행하는 것이 좋습니다.

제 동료는 DOM이 약 1 백만회의 쓰기 작업 만 지원할 수 있기 때문에 데이터베이스를 RAM 디스크로 완전히 실행하고 데이터베이스를 DOM에 백업해야한다고 주장했습니다.

이 백업 트리거하는 3 가지 방법 : 일부 추가/업데이트가있을 때/

  1. 사용자 트리거

  2. 30 분마다

  3. 때마다 데이터베이스

  4. 에서 삭제 작업을

우리는 사용자가 y 시스템이 설치 될 때 데이터베이스, 나는 아마도 postgresql이 자주 쓰지 않을 것이라고 생각한다.

하지만 나는이 모든 문제와 가치있는 접근 방법이 더 나은지 판단 할 수 없다.

당신은 어떻게 생각하십니까?

+2

데이터베이스의 '핫 페이지'는 대부분의 시스템에서 거의 전적으로 메모리에서 실행되어야합니다. 그렇지 않은 경우 데이터베이스가 너무 많거나 제대로 설정되지 않은 것입니다. –

+0

"만들기/업데이트/삭제"할 때마다 하드 디스크에 쓰기 작업이 시작되는 것은 아닙니다. – ablmf

+0

@Mitch : 동의 함.하지만 DB (또는 아래의 OS)는 수시로 해당 페이지를 다시 기록합니다 (예 : 디스크가 유휴 상태 일 때). –

답변

1

SSD의 마모 문제는 SSD의 펌웨어에 관계없이 완화 할 수 있습니다. 때로는 이러한 칩셋이 제대로 작동하지 않거나 다른 사람에게 책임을 맡기지 않습니다. 이 경우 자체적으로웨어 레벨링을 수행하도록 설계된 파일 시스템을 사용할 수 있습니다. UBIFS 또는 LogFS은 적절한 파일 시스템입니다.

+0

PostgreSQL은 이러한 "비표준"파일 시스템에서 어떤 성능을 발휘합니까? –

+0

이 파일 시스템은 http://lwn.net/Articles/353411/과 같은 대부분의 SSD와 같은 블록을 펌웨어에 할당합니다. PostgreSQL이 일반적으로 SSD를 얼마나 잘 처리하는지, 또는 어떻게 조정할 수 있는지는 모르지만 이것이 완전히 새로운 것이 아닙니다. – Tobu

1

DOM 쓰기 사이클에 대한 클레임이 참인 경우 (내가 언급 할 수없는 경우)이 코드는 제대로 작동하지 않는다고 가정합니다. PostgreSQL은 원할 때마다 (논리적 인 업데이트가 일어나지 않아도) 원하는 것을 쓸 수 있다고 가정하고, 언급 한 3 가지 트리거와 함께 할 수있는 실제적인 기회가 없다고 가정합니다.

RAM 디스크에서 전체 작업을 수행하고 일부 운영 체제 프로세스에서이 작업을 번으로 영구적으로 저장하려면을 영구 저장해야합니다. 이것은 신중한 파일 시스템과 커널 지원이 필요합니다. 이는 기기가 대부분 켜져있을 때 작동하지만 복구 시간이 귀찮기 때문에 TV처럼 켜고 끄는 것과 같은 일일 경우 잘 작동하지 않을 수 있습니다.

대체로 최근의 솔리드 스테이트 드라이브와 같이 SQLite와 같은 임베디드 RDBMS를 사용하거나 PostgreSQL을 처리 할 수있는 스토리지 시스템을 사용합니다. 일부 SSD는 캐시 설정이 잘못되어 PostgreSQL에 적합하지 않을 수 있습니다.

+0

+1. PostgreSQL은 원활한 온라인 백업을 지원하기 때문에 파일 시스템/커널 지원은 신중하지 않아도됩니다 : http://www.postgresql.org/docs/8.1/static/backup-online.html –

+1

@j_random_hacker하지만 여전히 WAL 세그먼트를 항상 백업 저장소에 기록해야한다는 문제가 있습니다. 이는 항상 거기에 쓰지 않는 아이디어와 모순됩니다. –

+0

나는 WAL 로그를 계속해서 백업 할 필요는 없다고 생각했지만, 더 가까운 독서에서 볼 수있다. 이 경우 주기적으로 SQL 덤프 (gzip 또는 유사한 방법을 통한 파이핑)를 만드는 것이 더 좋고 (더 간단한) 방법이 될 수 있습니다. http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP- DUMP –

관련 문제