2010-04-15 3 views
2

Coherence를 Sitributed Cache로 사용하려는 특정 시나리오가 있습니다. 내가 여기서 설명 할거야.Oracle 일관성을위한 클라이언트 및 캐시 구성

  1. 데이터를 캐시에 지속적으로 저장하려는 독립형 프로세스가 20 개 이상 있습니다. 그 모두의 주파수는 다르지만 상관하지 않습니다.
  2. 그리고 그 캐시에서 데이터를 읽는 2 프로세서가 있습니다.
  3. 일관성이 제공하는 방식을 제외하고는 기본 db가 필요하지 않습니다. 데이터는 캐시에 쓰여지고 캐시에서 읽 t집니다.
  4. 내가 처분 할 수있는 4 개의 노드 클러스터 (비용 제약 조건)와 일관성 클러스터가 다른 상자 (인프라 제약 조건)에있을 것이며 캐시의 채우기 부분과 읽기 부분이 모두 다른 nmachines에 있습니다.
  5. 캐시의 최대 메모리 크기는 매일 6GB (최대 2GB)입니다. 캐시에는 일별 데이터 만 저장되며, 보관 처리를 별도로 수행하여 보관 처리도 간소화합니다. 핵심은 현재 캐시 크기가이 크기 만 가질 것이라는 점입니다. 내가 열쇠 방정식으로부터 데이트를 지킬 것이라고 말하게한다.
  6. 비록 4 노드에 더 저장할 수 있을지 탐구하고 싶습니다. 지금은 간단한 직렬화를 통해 다른 nbinary 형식을 탐색 할 수 있습니다. 또는 나는이 캐시의 크기를 definitly해야합니까?
  7. 내 읽기 및 쓰기 작업이 상당히 퍼져 있습니다. 읽는 것과 쓰는 것을 의미하는 것은 그 2 명의 독서 고객과 20 명의 쓰기 고객이 계속해서 일어날 것입니다. 그것들 중 하나가 아니라 더 많은 것이 그것입니다. 이후의 연속 푸시보다 캐시에 더 많은 것을 밀어 넣는 백그라운드 프로세스의 모든 시작 프로세스가 있지만. 그러나 지속적인 푸시는 상당한 양의 데이터를 밀어냅니다. 이제

그 위의 점에 대한 내 질문에 (때문에 일부 혼란)

  1. 는 가장 큰 하나는 누군가가 내가 우리가 구입 한 노드에 따라 연결의 제한된 수 있다고 얘기한다. 그래서 그는 4의 경우, 당신은 이상적으로 최대 4 개의 연결만을 가져야한다고 말했습니다. 따라서 게이트 키퍼 애플리케이션을 개발하고 그렇지 않은 애플리케이션을 개발하십시오. 우리가 TCP 확장을 사용하더라도. 지금까지 나의 독서에서, 나는 그렇게 생각하지 않는다. 그렇지? 요점은 그게 정말로 제약이 아니라면 그 길을 가고 싶지 않습니다.

다른 말로하면 클러스터의 노드에서 프록시 서비스를 통해 연결에 제한이 있습니까?

  1. 위와 관련된 내용입니다. 바로 그 순간에 성능 향상에 약간의 불이익을 당길 것입니다. 연장 방법을 선택해야만 캐시로 이동할 수 있습니다.

  2. 파티셔닝 된 캐시/니어 캐시. 대부분의 업데이트 캐시뿐만 아니라 읽기 시간도 매우 중요합니다. (내가 가진 가장 엉뚱한 질문).

  3. 실제로 POF로가는 대신 직렬화/외부화/protobuf라는 이점을보고 싶습니다. 일관성이 protobuf를 상자 밖으로 지원할 수 있습니까?

답변

1

일반적인 네트워크 및 하드웨어 자원 제한 사항을 제외하고 Coherence Extend 프록시가 지원할 수있는 연결 수에 기술적 인 제한은 없습니다.라이센스 제한이있는 경우 오라클 영업 담당자에게 문의해야합니다.

네트워크 홉 (클러스터에 클라이언트 대 프록시)을 추가하기 때문에 프록시 사용으로 성능에 약간의 영향이 있습니다. POF 직렬화를 사용하는 경우 프록시는 값을 직렬화/비 직렬화 할 필요가 없습니다. 객체를 직렬화 된 형식으로 전달할 수 있습니다. 대부분의 애플리케이션에서 Coherence는 네트워크 속도에 최적화되어 있기 때문에 프록시 사용의 성능 영향은 미미합니다. 클라이언트가 .NET 또는 C++가 아니면 프록시를 사용할 필요는 없지만 클라이언트 성능이 캐시에 영향을주지 못하도록하는 장점이 있습니다.

캐시 가깝게 캐시되면 클라이언트에서 자주 검색되는 항목이 여러 개 (즉, 프로세스 중에 있음) 검색되는 경우 검색 성능이 크게 향상됩니다.

POF는 더 빠른 직렬화/직렬화 해제 및보다 컴팩트 한 저장을 기반으로 성능을 향상시킵니다. 실제 생산 데이터를 기반으로 한 테스트 데이터로 시도하고 차이점을 직접 측정하는 것이 가장 좋습니다. Coherence는 protobuf를 지원하지 않습니다.

+0

안녕하세요 David - "클라이언트가 .NET 또는 C++이 아니면 프록시를 사용할 필요가 없습니다."라고 말합니다. Near Cache가있는 .NET의 경우에도 마찬가지입니다 (즉, Near Cache를 사용하는 경우에도 .NET에 필요한 프록시/네트워크 홉임). –

+0

안녕하세요. Dave, 프록시 및 네트워크 홉은 분산 캐시에만 필요합니다. Near Cache를 사용하면 일반적으로 원격 (분산) 캐시로 백업되기 때문에 홉입니다. Near Cache가있는 C++ 및 .NET의 경우 백업 원격 캐시가 원격 액세스를 수행하므로 프록시가 필요하지 않습니다. –

+0

David - 제발 알려주세요 :) ... 가까운 캐시를 사용하는 .NET 앱이 있다면 * TCP/IP 프록시/리스너 확장을 실행할 필요가 없습니까? –

관련 문제