2007년 05월 30일
자바 persistence의 또 다른 대안.
만일 정말 재미로 무언가를 만든다면 그리고 동시성이나 공유된 데이터를 지원해야 한다면 다음과 같은 선택이 생각된다.
* rdbms + object-relation mapping (hibernate, activerecord, ...)
* odbms (commonlisp + allegrocache/elephant, smalltalk + magma ...)
그리고 최근에는 자바진영에는 prevalence가 추가된것 같다.
* http://www.prevayler.org/
odbms와 유사하게 객체 자체를 serialize하여 저장하는 방식인 것 같은데 조금 특이한점(ㅂㅌ적인-_-)이 있다.
* 모든 데이터는 메모리에 위치한다.
* 저장되는 시점은 오직 이후 로딩이나 백업을 위해서 snapshotting...
-_-;;; 필요이상으로 파격적이다.
FAQ문서에서 몇개 발췌해 소개한다.
* Q: 그말은 모든 데이터가 RAM에 있는거고 시스템크래쉬등으로 한번에 날려먹을 수 있다는?
A: 바로 그렇습니다. (-_-;;;)
* Q: 제정신이삼?
A: 데이터손실을 방지하기 위해, 매일밤 이 객체들을 스냅샷을 만들거나 하면 됩니다.
* Q: 이전 스냅샷으로부터의 변경점은 잃어버리지 않을까?
A: 아뇨. 시스템에 전달된 메시지는 모두 직렬화되어 시스템 복구시에 이를 순서대로 실행하여 이를 복구합니다.
* Q: 그러면 모든 Business Object들이 결정적(deterministic)해야한다는 뜻이삼?
A: 네, 모든 객체는 같은 입력에 같은 상태를 갖도록 보장되어야 합니다.
* Q: 트랜잭션은 어떻게 되는거죠?
A: 필요없습니다. 모든 작업은 큐에서 순차적으로 실행됩니다.
...이외에도 많음.
떱... 막상 생각해보니까 좀 극단적이라고 생각할수도 있는데 속도는 당연히 비교도 안되게 엄청 빠르겠고, 복사본 인스턴스를 유지관리하면서 fault-tolerance등도 구현 할 수 있겠고... 대략 어차피 모든 메시지에 대해서 기록만 잘 남기면 이후에 복구하는 것도 훨씬 유리할수도 있고...
아-_- 재밌을거 같기도 한데?
아참. 루비로 구현한 것도 있어요.
* rdbms + object-relation mapping (hibernate, activerecord, ...)
* odbms (commonlisp + allegrocache/elephant, smalltalk + magma ...)
그리고 최근에는 자바진영에는 prevalence가 추가된것 같다.
* http://www.prevayler.org/
odbms와 유사하게 객체 자체를 serialize하여 저장하는 방식인 것 같은데 조금 특이한점(ㅂㅌ적인-_-)이 있다.
* 모든 데이터는 메모리에 위치한다.
* 저장되는 시점은 오직 이후 로딩이나 백업을 위해서 snapshotting...
-_-;;; 필요이상으로 파격적이다.
FAQ문서에서 몇개 발췌해 소개한다.
* Q: 그말은 모든 데이터가 RAM에 있는거고 시스템크래쉬등으로 한번에 날려먹을 수 있다는?
A: 바로 그렇습니다. (-_-;;;)
* Q: 제정신이삼?
A: 데이터손실을 방지하기 위해, 매일밤 이 객체들을 스냅샷을 만들거나 하면 됩니다.
* Q: 이전 스냅샷으로부터의 변경점은 잃어버리지 않을까?
A: 아뇨. 시스템에 전달된 메시지는 모두 직렬화되어 시스템 복구시에 이를 순서대로 실행하여 이를 복구합니다.
* Q: 그러면 모든 Business Object들이 결정적(deterministic)해야한다는 뜻이삼?
A: 네, 모든 객체는 같은 입력에 같은 상태를 갖도록 보장되어야 합니다.
* Q: 트랜잭션은 어떻게 되는거죠?
A: 필요없습니다. 모든 작업은 큐에서 순차적으로 실행됩니다.
...이외에도 많음.
떱... 막상 생각해보니까 좀 극단적이라고 생각할수도 있는데 속도는 당연히 비교도 안되게 엄청 빠르겠고, 복사본 인스턴스를 유지관리하면서 fault-tolerance등도 구현 할 수 있겠고... 대략 어차피 모든 메시지에 대해서 기록만 잘 남기면 이후에 복구하는 것도 훨씬 유리할수도 있고...
아-_- 재밌을거 같기도 한데?
아참. 루비로 구현한 것도 있어요.
# by | 2007/05/30 21:30 | 삽질+돈되는짓 | 트랙백




☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]