DB? 영속적인 데이터 저장에 관한 질문 드립니다.

pizza1977의 이미지

설비 데이터를 수집하여 상위 시스템으로 전송하는
중계기를 개발 중에 있습니다.

요구사항으로 상위 시스템이 통신 불능 상태가 되거나
네트웍 장애가 발생하면 설비 데이터를 중계기에 임시
저장하여 장애 복구 시에 순차적으로 전송해야하는 것이
있습니다.

중계기 내의 메모리에 저장하기에는 위험 요소(중계기에
문제가 발생했을 경우 데이터 유실)가 있어 별도의
저장소를 구축해야할 것 같습니다.

파일 저장 및 DB 도입 등이 얘기 되고 있는데
혹시 이와 관련된 이슈를 접해 보셨으면 조언 부탁드립니다.

김성진의 이미지

제가 이런 부분에 조언을 드릴 줄은 몰랐습니다. ^^

"요구사항으로 상위 시스템이 통신 불능 상태가 되거나
네트웍 장애가 발생하면 설비 데이터를 중계기에 임시
저장하여 장애 복구 시에 순차적으로 전송해야하는 것"

==> 이런 이슈에 대해서 최근 저희가 연구하고 있는 기술분야가 있는데 DDS 입니다.

Data Distribution Service 의 약자인데 분산 네트워크 환경에서 Qos를 기반으로

데이터를 어떻게 전달할 것인지에 대한 표준 스펙이 있습니다. (pseudo 실시간 전송입니다)

위의 예는 QoS policy 중에 Durability-Persistency 라는 것과

History 를 설정해 100% 요구사항과 동일하게 해결하고 있습니다.

이 기술은 이지스 함이나 조기 경보기와 같은 레이다, 대량의 말단 노드에서 발생되는 데이터를

효율적으로 전송하는 것을 목적으로 개발된 기술이고, 노드의 장애를 당연히 고려하고 있으며,

Failover와 HA를 근간으로 가정하고 있습니다.

www.omg.org 에서 DDS로 검색하시면 더 자세한 사항이 있습니다.

국내에서 잘 알려지지 않았으나, 외국에서는 10년 이상의 역사를 가진 기술이라고 합니다. (표준은 최근에..)

좋은 결과 있으시길 빕니다.

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

pizza1977의 이미지

음 고객사에서 어마어마한걸 요구한거였군요 ㅠ.ㅠ
사이트 들어가보니 얼마전에 iiop 때문에 찾았던 사이트 같은데...

지금부터 확인을 해봐야겠네요. 그나마 2달 정도 여유가 있어 다행이네요.
답변 감사드립니다.

포탈이는 불사신

-------------
포탈이는 불사신

아르아의 이미지

닭잡는데 소잡는 칼을 쓸 필요는 없다는 말이 있듯이
너무 어마어마한것을 상상하기 보다는
딱 필요한 정도만 구현하면 되지 않을까요?
그러기위해서는 요구사항을 더 명확히 하는것이 필요할것 같습니다.
우선 말씀하신것만 가지고 보건데
제가 상황파악을 제대로 못한것이 아니라면
그렇게 어려울것 같지는 않습니다.

어짜피 중계기마다 백업서버를 둘 듯 하니,
그 각각의 서버가 데이터를 파일로 저장하고
중앙서버는 그때그때 rsync등으로 데이터들을 취합하도록 하면
충분할것 같습니다.
게다가 rsync는 암호화통신&데이터 무결성 확인도 자동으로 해줍니다.
공간등이 문제라면 도시락통만한 조그만 컴퓨터를 쓰시면 될것 같고요.

DB보다는 파일쪽이 관리,복구,동기화등이 쉽지 않을까 합니다.
DB를 쓰더라도 백업서버->중앙서버로 보낼때는 그때그때 dump떠서
파일로 보내면 되겠네요.

idlock의 이미지

사실 시스템이라는것이 표준화를 맞추면 가장 좋은 방법이지만, 윗분도 말씀하셨듯이
닭잡는데 소잡는 칼을 쓸필요는 없을듯합니다.
file system을 이용하는 방법

1. cvs나 svn같은 툴을 이용해도 될듯합니다.
2. backup tool의 증분 백업을 이용하셔서 하셔도될듯하고요.

DB
1. database 미러링
2. database 동기화

정도 있을듯한데 database쪽도 분산 database를 지원할경우 그냥 손쉽게 설정으로도 가능할듯한데

현재상태를 보면 그냥 파일 시스템이 편할듯하네요.

===============================================================
'고생은 사람을 고상하게도, 비열하게도 만든다'

pizza1977의 이미지

rcync, svn이 있었네요.
전 BerkeleyDB 보고 있었는데...

포탈이는 불사신

-------------
포탈이는 불사신

johan의 이미지

Erlang - erlang.org ?

wish의 이미지

저같으면 어차피 순차적 접근만 하는듯 보이니까 파일 시스템에 일반 텍스트에 로깅하듯이 저장하든지 아니면 RRD나 sqlite를 사용하겠습니다. 제가 너무 간단하게 생각하는건지 ;;

김성진의 이미지

굳이 큰 스펙으로 작업하실 필요는 없겠지요.

중요한 것은 이러한 요구사항이 비단 pizza1977님이 계시는 곳 뿐만 아니라

IT 영역 전반적으로 존재하고, 이에 대한 절묘한 대안이 딱히 없다는 것입니다.

제가 이 영역을 연구하는 이유가 바로 Enterprise 시장의 기회를 포착하게

될 수 있지 않을까 하는 것입니다...결국은 돈인가요..

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.