2010-01-07 2 views
0

나는 우리가 갖고있는 문제에 대한 해결책 아이디어를 얻는 데 관심이 있습니다.다른 소프트웨어에서 잠길 수있는 파일을 실시간으로 업데이트하는 방법에 대한 솔루션 아이디어를 찾고 있습니다.

배경 :

우리는 하드웨어 구성 요소에 노트북과 플래시 데이터에서 실행되는 소프트웨어 도구가 있습니다. 이 소프트웨어는 일련의 데이터 파일을 읽어 하드웨어 프로그래밍을 수행합니다. 이는 제조 환경에 있으며 하루 종일 지속적으로 실행됩니다.

문제 :

는 현재, 그들은 소프트웨어가 데이터 파일을 읽어 연결하는 중앙 저장소입니다. 소프트웨어는 파일을 읽고 깜박이는 전체 과정에서 파일을 잠근 상태로 유지합니다. 이것은 하루 종일 서로 다른 하드웨어 구성 요소에서 실행되기 때문에 이러한 파일이 대부분의 경우 "잠길"수 있습니다.

소프트웨어가 읽는 데이터 파일을 실시간으로 업데이트해야한다는 것을 명시하는 새로운 요구 사항이있어 깜박이는 최종 사용자에게 미치는 영향은 최소화됩니다. 실시간으로 파일을 드롭하는 서비스를 작성합니다.

소프트웨어는 타사에서 개발 한 소프트웨어이므로 우리는 수정할 수 없습니다. 그러나 데이터 파일을 찾을 위치를 기대하기 때문에 깜박이는 시점까지 모든 것이 우리가 자유롭게 변경할 수있는 과정입니다.

질문 : 당신이 솔루션 프로그래밍 관점에서이 문제를 해결하는 데 걸리는 무엇 접근

? 우리는 하루 종일 잠금 장치가있을 경우 파일을 실시간으로 삭제하는 방법을 모릅니다. 우리는 "가능한 한 빨리"해결책이 훨씬 쉬워지면 해결할 것입니다.

+0

깜박이는 과정을 통해 파일을 반쯤 업데이트 한 경우 어떻게됩니까? –

+0

비트 레벨 전송 등을 강제하면 깜박임이 손상됩니다. 깜박이면서 계속 읽습니다. –

+0

글쎄, 그걸로 물건을 간단하게, 당신이 기다리는 중 하나를 완료하기 전에 파일이나 클라이언트가 끝내고 매우 비싼 벽돌로 끝납니다. – Rory

답변

1

유일한 수수께끼는 여분의 파일 저장소의 소개와 함께 이러한 저장소를 동기화 된 상태로 유지하는 서비스와 같은 논리 조각 인 것 같습니다.

즉, 파일 업로드는 리포지토리 중 하나 ("입력 리포지토리")에서 수행되고 깜박이는 프로세스는 다른 리포지토리 ("ouput 리포지토리")를 사용합니다. 동기화 로직은 (파일 타임 스탬프 또는 기타를 기반으로 한) 새 파일에 대한 입력 저장소를 영구적으로 저장하고 이러한 새 파일을 발견하면이를 "출력 디렉토리"에 복사하려고 시도합니다. 그러한 복사는 깜박이는 로직이 출력 디렉토리에서 해당 파일을 잠그지 않았거나 파일이 잠금 해제 될 때까지 즉시 발생합니다.

참고 : 파일 복사 중에 동기화 논리가 파일을 잠그거나 잠 가야하므로 새 업로드로 파일을 덮어 쓰지 못하도록하지만 일시적으로 복사 된 파일의 완전 무결성을 보장하는 것은 매우 일시적입니다. 기존 시스템과의 차이점은 잠금이 훨씬 짧은 시간 동안 유지된다는 것입니다.

이 시스템의 단점은 저장소의 전체 복제이며, 저장소가 매우 큰 경우 문제가 될 수 있습니다. 그러나 우리가 깜박이는 과정을 제어 할 수 없기 때문에 많은 대안이있는 것처럼 보이지 않습니다.

+0

나는이 대답을 받아 들일 것입니다. 이것은 저장소 사이에서 발생해야하는 조정으로 인해 clunky라는 것을 제외하고는 현재 실제로 현재 진행중인 것입니다. 원래의 질문에서 주제를 벗어나지는 않겠지 만이 답변과 관련하여 언급되지 않은 추가 복잡성은 "입력"및 "출력"저장소가 서로 지리적으로 분산되어 있다는 것입니다. 우리가 말하는 파일은 약 15,000 개이며 크기는 ~ 500MB입니다. 그들은 전국 곳곳에서 매일 저장소를 통해 전송됩니다. –

0

"최대한 빨리"유일한 방법입니다. 잠긴 파일을 업데이트 할 수 없습니다. 즉, 잠금의 전체 지점입니다.


편집 : 가 다른 위치에 새 파일을 넣고 그 위치에 파일을 필요로하는 다음 번에 볼 수있는 제 3 자 서비스를 알 수 있을까요?

+0

++를 편집하거나 잠긴 파일을 추적하고 잠금이 제거되면 다른 위치에 보관되는 파일을 복사 하시겠습니까? – gingerbreadboy

관련 문제