2012-12-06 2 views
2

mysql이없는 PBS 시스템에서 많은 작업을 실행해야하기 때문에 MySQL 대신 sqlite3을 사용하도록 전환합니다. 물론 내 컴퓨터에는 NFS가 없지만 PBS에는 하나가 있습니다. 많은 시간을 sqlite3로 전환 한 후에 많은 작업을 실행하고 데이터베이스가 손상되었습니다. 물론 sqlite3 FAQ에서 NFS에 관해서 언급되었지만 시작했을 때 생각조차하지 않았습니다.sqlite3이 NFS에서 작동하지 않는 이유는 무엇입니까?

작업 초기에 데이터베이스를 복사 할 수 있지만 병합 악몽이됩니다!

나는이 간단한 이유도없이 내 동료의에 SQLite는 추천하지 않을 것 "(문제가 기계에) sqlite가 작동하지 않습니다"

나는 NFS가 파 그것까지없는에 대해 호언 장담을 읽고 그들의 잘못이다. 몇 가지 해결 방법을 시도했지만 this post이 암시 하듯이 불가능합니다.

성능을 희생시키는 해결 방법이 없습니까?

그럼 어떻게해야합니까? 다른 db 소프트웨어를 사용해보십시오. 어느 것?

+3

많은 TLAs ... –

+0

PBS 란 무엇입니까? 어떤 클라이언트가 데이터베이스에 액세스하고 있습니까? 왜 NFS가 필요합니까? –

+2

글쎄, MySQL 같은 데이터베이스 엔진이나 파일 기반 데이터베이스가 요구하는 잠금 장치를 지원하는 파일 시스템에 대한 액세스 권한이 없다면 운이 좋았다고 말할 수 있습니다. 원자 mkdir 또는 그와 유사한 어떤 것을 기반으로 데이터베이스를 구현하고 싶습니다.) – Neil

답변

3

잘못된 도구를 사용하고 있습니다. 이 경험에 기초한 "나는 결코 sqlite를 추천하지 않을 것"이라고 말하면서, "유리 병을 결코 추천하지 않을 것"이라고 말하는 것은 마치 손톱을 망치로 때려 부수기를 계속 한 후에 말입니다.

더 정확하게 문제를 지정해야합니다. 귀하의 질문 사이의 라인을 읽으려는 시도는 다음과 같습니다.

지정되지 않은 경로를 통해 작업을하고 출력을 생성하는 많은 노드가 있습니다. 데이터베이스를 복사 할 수 있기 때문에 작업이 상호 작용하지 않습니다. 작업이 완료되면 모든 작업의 ​​출력을 병합 할 수 있습니다. 병합 된 출력을 효과적으로 어떻게 생성합니까?

는 각 작업은 각 작업에 고유 한 구조화 된 파일에 출력을 생성 유무 :

질문,이 내 조언을 감안할 때. 작업이 끝나면 각 파일을 구문 분석하여 sqlite3 데이터베이스에 삽입하는 프로그램을 작성하십시오. 이것은 처리 할 수있는 방식으로 NFS를 사용하고 (파일에 순차적으로 단일 프로세스 쓰기) 민감한 방식으로 sqlite3을 사용합니다 (로컬 파일 시스템의 데이터베이스에 단일 프로세스 작성). 이렇게하면 작업을 실행하는 동안 NFS 잠금 문제가 발생하지 않으므로 sqlite3 데이터베이스에 경합이 없으므로 처리량이 향상됩니다.

관련 문제