2011-11-21 1 views
4

나는 Spring Recipes라는 책을 읽었습니다. 테라코타 (terracota)에 관해 말한 것들을 이해할 수는 없습니다.테라코타의 맥락에서 "델타 메모리"는 무엇을 의미합니까?

다음은 눈에 보이는 API가 없기 때문에

테라코타는 오늘날 대부분의 클러스터 캐시와 다른 책에서 단락이며, 때문에 훨씬 더 효율적인 클러스터에서 노드로 변경된 상태를 전달에서의 . 대부분의 시스템은 일부 Java 직렬화 또는 브로드 캐스트 메커니즘을 사용합니다. 각 노드에는 새로운 상태를 인식해야하는지 여부에 관계없이 객체의 전체 객체 또는 객체 그래프가 제공됩니다. 테라코타는 다르게 수행합니다 : 개체 그래프의 메모리를 자체적으로 델타하고 개체 상태의 일관된보기가 필요하므로 클러스터의 다른 노드를 동기화합니다.. 간단히 말해서, 객체에있는 하나의 업데이트 된 변수를 전송하는 것과 마찬가지로 전체 객체가 아닌 무언가를 할 수 있습니다.

내가 클러스터에서 객체를 전송하기 위해 직렬화처럼 아무것도 사용하지 않는 것을 이해할 수 있지만, "이 메모리을 델타"무엇을 의미합니까?

+0

희망이 도움이 : http://www.youtube.com/watch?v=aAZnsofBV-I – Sid

+0

나는 그 비디오를 보았습니다. 그것은 내 질문에 대답하지 않습니다. – vinoth

+3

http://en.wikipedia.org/wiki/Delta_encoding – axtavt

답변

2

axtavt가 주석 처리 한대로 Delta은 본질적으로 객체의 두 인스턴스 사이의 차이입니다.

는 ... 그것은 객체 인스턴스 간의 차이를 결정

객체 그래프 메모리 ...

같은 간단한 용어로 재 작성 될 수 ... 델타 단락이 본질적으로 무슨 말을

...

다른 캐싱 프레임 워크/기술은 변경되지 않은 데이터까지도 각 인스턴스에 대한 모든 정보를 포함하는 노드간에 메시지를 보내 클러스터의 여러 노드에서 개체 상태를 동기화합니다. 테라코타는 객체를 동기화하기 위해 변경된 정보 만 전송함으로써이 작업을보다 효율적으로 처리합니다.

이것을 SVN 커밋이라고 생각하십시오. SVN 저장소에 파일을 커밋 할 때 컴퓨터가 전체 파일을 서버로 보내지 않으면 파일의 저장소 버전을 로컬 복사본과 동기화하기 위해 diff (또는 delta) 만 보냅니다.

희망이 도움이됩니다.

2

이 책은 더 이상 사용되지 않으며 요즘 대부분의 사람들이 테라코타를 사용하는 방식이 아닙니다. 사람들은 "사용자 유형"에 대한 직렬화 기반의 표현 모드를 사용합니다.

어쨌든 당신의 질문에 대답하려고 노력합니다 : 테라코타는 클래스를 계측하여 필드 변이와 잠금에 필요한 모든 후크가 있기 때문에 적절한 잠금 상태에서 변경 사항이 L2, 일명 테라코타 서버); 둘째,이 필드를 읽으려는 노드로.

답변 (매우 빠르고 간단)으로 질문에 약간 답변 해 주시기 바랍니다.

관련 문제