2012-10-18 3 views
2

MongoLab과 같이 원격 서버에서 데이터를 호스팅하는 서비스가 몇 가지 있습니다. 데이터베이스로 작업 한 사람은 모든 서버가 내부에 있더라도 어느정도의 네트워크 대기 시간이 있음을 알고 있습니다. MongoLab과 같은 원격 데이터 저장 서비스는 프로덕션 환경에 좋은 아이디어입니까?몽골과 네트워크 지연?

이 질문은 주로 AJAX 기반 웹 응용 프로그램 또는 웹 사이트 전반에 대한 것입니다.

답변

2

나는 MongoLab이 꽤 좋은 것으로 나타났습니다. 분명히 일반적으로 왕복에 관해 생각해보고이를 최적화하면 전반적인 대기 시간을 최소화 할 수 있습니다.

MongoLab과 동일한 데이터 센터에 자신을 두는 것도 의미가 있습니다 (어디에서 선택할 수 있습니다). Azure에는 (베타) 서비스도 있습니다.

나는 높은 대기 시간과 서비스 (브라우저에 대한 세 가지 다른 지리적 지역, 웹 서버와 몽고를 실행 봤는데 내 상호 작용이 "수다"하지 않기 때문에 여전히 내 경우에는 적절하게 수행한다. 아마로

아시다시피 Mongo의 설계 제약 중 하나는 조인이 부족하다는 것입니다. 따라서 내 데이터 구조가 자연스럽게 Q & A 데이터를 가져 오는 데 도움이됩니다. 하나의 컬렉션을 읽지 않고 그 정보를 사용하여 다른 수동 조인) 결과적으로 복잡한 상호 작용에 대기 시간 비용이 추가되지는 않습니다. 최악의 경우는 일반적으로 단일 요청/응답 (또는 일련의 병렬, 단일 요청/응답 쿼리)이므로 차이점은 허용되는 합계는 200ms입니다.

하지만 당연히 웹 서버를 DB에 더 가까이 배치할수록 더 잘 될 것입니다.

아마도 돈을 많이 쓰고 있다면 MongoLab 외 사용자가 로컬 보조를 가질 수있는 사용자 지정 구성을 제공 할 수 있습니다.

+0

답변에 감사드립니다. 궁금한 점, MongoLab을 얼마나 오래 사용해 왔습니까? 조인 부족에 관해서는 각 문서에 해당 개체를 설명하는 데 필요한 모든 데이터가 들어있는 "비정규 화 된"방식을 사용했습니다. 그걸로 어떤 문제가 보이십니까? (나는 그것이 정말로 자신의 별개의 질문이라는 것을 알고 있지만, 당신은 당신의 조인 코멘트 =)로 문을 열었다. – StackOverflowed

+2

AWS에서 약 6 개월, Azure에서 지난 한두 달 정도 (2.2 베타). 귀하의 비정규 화 된 접근법은 Mongo를위한 텍스트 북이며, 전반적인 대기 시간을 줄이는 데 도움이 될 것이라고 생각합니다. 그렇다고해도 쿼리가 서로의 결과에 의존하지 않는 한 다른 쿼리를 사용하여 여러 개의 병렬 쿼리를 수행 할 수 있습니다. 그게 적어도 내가 찾은 것입니다. 예를 들어 일반적인 필터 쿼리는 DACL 일 수 있습니다. 먼저 사용자 컬렉션을 쿼리하지 않을 것입니다. 대신 모든 사용자에게 해당 사용 권한이있는 모든 문서에 태그를 지정하고 사용자를 병렬 필터 키로 사용하십시오. – cirrus