복붙노트

[REDIS] 모방 MASTER / MASTER를 레디 스? 또는 다른 것?

REDIS

모방 MASTER / MASTER를 레디 스? 또는 다른 것?

나는에 여기에 글을 많이 읽고 웹 서핑을하지만, 어쩌면 내가 올바른 질문을하고 있지 않다되었다. 내가 클러스터를 사용할 수있을 때까지 레디 스 현재 마스터 / 슬레이브는 것을 알고있다. 그러나, 나는 누군가가 말해 줄 수 있다면 내 요구를 충족하기 위해 물류 레디 스를 구성 할 것 궁금 (또는하지 않을 권리 도구 경우)했다.

대본:

우리는 미국의 양단에이 개 사이트가있다. 우리는 클라이언트가 높은 음량으로 각 사이트에서 쓸 수 있어야합니다. 우리는 각 클라이언트가 자신의 사이트에서뿐만 아니라를 읽어 수행 할 수 있어야합니다. 우리가 원하는 그러나 데이터는 <50ms의의 자매 사이트에서 쓰기에서 사용할 수 있습니다. 우리는 충분한 대역폭을 감안할 때. 우리의 요구를 충족하기 위해 구성 레디 스하는 방법은 무엇입니까? 우리의 쓰기 최대 크기는 일반적으로 훨씬 적은 5K의 순서에있을 것입니다. 요점은 내가 그것을 기본적으로 지원되지 않는 경우에도 서로 동기화되어 주인을 have2 수있는 방법입니다.

해결법

  1. ==============================

    1.톰의 대답에 잡기는 당신이, 당신은 단지 두 개의 서버를 작성하는 클러스터의 모든 종류를 실행하지 않는 것입니다. 당신이 그들 사이의 일관성을 유지하려는 경우 문제가된다. 클라이언트가 원격 서버에 쓰기를 실패 할 때 발생하는 것이 좋습니다. 당신은 지역에 쓰기를 취소합니까? 원격 서버에 쓸 수 없습니다하면 어떻게 적용됩니까? 로컬에서 읽을 수없는 경우 어떻게됩니까?

    톰의 대답에 잡기는 당신이, 당신은 단지 두 개의 서버를 작성하는 클러스터의 모든 종류를 실행하지 않는 것입니다. 당신이 그들 사이의 일관성을 유지하려는 경우 문제가된다. 클라이언트가 원격 서버에 쓰기를 실패 할 때 발생하는 것이 좋습니다. 당신은 지역에 쓰기를 취소합니까? 원격 서버에 쓸 수 없습니다하면 어떻게 적용됩니까? 로컬에서 읽을 수없는 경우 어떻게됩니까?

    두 번째 캐치 여호수아가 제기 기초 물리학 문제입니다. 왕복의 경우는 12ms의 (세 가지 시스템)의 양쪽 끝은 이론적 인 최대 처리 시간을두고 38ms의 이론적 최소 말하고있다. 나는 기대가 너무 조금이고 대역폭이 경우 대기 시간과 아무 상관이 없다고 말할 것입니다. 당신은 10GB의 파이프를 가질 수 그 타이밍은 여전히 ​​남아 있습니다. 그뿐만 아니라 많은 요구하고있다 12ms에서 대륙을 가로 질러 5K를 전송했다. 당신은 확실히 당신은 혼자가 (12)을하자, 50ms의 데이터의 5K를 전송하는 연결 능력을 가지고 있습니까? 나는 대륙에 걸쳐 민간 노 활용 회로 및 50ms가 넘는 볼 핑 번 봤는데 - 핑의 데이터 5K를 전송하지 않습니다.

    어떻게에서 동기화 두 관련이없는 서버를 유지할 것인가? 당신이 진정으로 필요로 하위 50ms의 대륙에 걸쳐 위의 이론적 인 최상의 경우 수단을 대기 시간 경우에 당신은 동기화 알고리즘을 실행하는 12ms 있습니다. 심지어 하나의 쿼리를 사용하면 50ms의 창 외부에있는 다른 서버 수단의 데이터를 확인합니다. 데이터가 동기화되지 않으면, 당신은 그것을 어떻게 해결할 것인가? 위의 타이밍을 감안할 때, 나는 50ms의 아래에 동기화 할 수 표시되지 않습니다.

    나는 기본 설계 요구 사항을 다시 방문 추천 할 것입니다. 특히, 왜이 요구 사항? 대륙에 걸쳐 50ms의 왕복 대기 시간 요구 사항은 일반적으로 마케팅의 부호 또는 세부 사항에 관심의 부족. 난 당신이 요구 사항을 분석하는 경우이 50ms의 창은 과도하고 불필요한 것을 찾을 수 있다고 내기를 것입니다. 그것은하지 않고, 사람이 쓰기 동기 코드에 상당한 추가적인 노력이 50ms의 창 내에서 유지하는 것도 가능 가치 나 있는지 확인해야합니다보다 데이터 동기화, (가능성이) 사실은 중요합니다. 크로스 대륙 하위 50ms의 지연 시간 데이터 동기화는 간단한 문제가되지 않습니다.

    당신은 동기화를위한 필요가 없습니다, 왜 단순히 하나 개의 서버를 실행? 당신은 복구 전용 목적 대륙의 반대편에 노예를 사용할 수 있습니다. 물론, 당신은 12ms가 가장 좋은 경우의 그 여전히 수단이 다시를 통해 데이터를 얻을 수 있습니다. 나는 믿을 않을 것이다 대륙에 걸쳐 왕복 작업 + 대기 시간 + 5K / 10K 데이터 전송을 50MS.

  2. ==============================

    2.그것은 미국을 통과하는 빛의 속도 19ms에 관하여이다. <50ms로는 달성하기 어려울 것입니다.

    그것은 미국을 통과하는 빛의 속도 19ms에 관하여이다. <50ms로는 달성하기 어려울 것입니다.

    http://www.wolframalpha.com/input/?i=new+york+to+los+angeles

  3. ==============================

    3.이것은 아마도 가장 클라이언트의 일부로 처리됩니다 - 단 두 노드에 대한 클라이언트 쓰기가 있습니다. 쓰기는 일반적으로 그래서 당신은 로컬 노드를 가진에서 얻는 성능에 영향을 미치지 않습니다 여분의 명령을 전송, 동기화 할 필요가 없습니다.

    이것은 아마도 가장 클라이언트의 일부로 처리됩니다 - 단 두 노드에 대한 클라이언트 쓰기가 있습니다. 쓰기는 일반적으로 그래서 당신은 로컬 노드를 가진에서 얻는 성능에 영향을 미치지 않습니다 여분의 명령을 전송, 동기화 할 필요가 없습니다.

  4. from https://stackoverflow.com/questions/7519971/redis-mimic-master-master-or-something-else by cc-by-sa and MIT license