2010-03-02 2 views
8

누군가 Sharing의 의미와 함께 Sql Azure에서 Hibernate를 사용하는 것에 대한 좋은 정보원을 가지고 있습니까? (10GB 캡 때문에)? 나는 인터넷에 NH에 대한 샤딩 프로젝트를 언급하는 게시물이 있다는 것을 알고 있지만, 그들은 09 년 3 분기에 나온 것이며 구글에서 더 관련성이없는 것을 발견하지 못했습니다.Sql Azure와 Sharding을 가진 Hibernate

샤딩 프로젝트를 아직 사용할 수없는 경우 수동으로 샤딩을 구현하는 방법에 대한 정보가있는 사람이 있습니까? 각 샤드마다 세션 팩토리를 만들고 공장 콜렉션을 유지하는 것만 큼 간단할까요? 그게 문제가 될 것 같아 각 공장을 통해 ISession 호출을 재현하는 것 같아요 그러나 나는 그것이 각 공장에서 ISession에 대한 호출 Funcs로 작업을 전달하여 얻을 수 있지만 더 이상 잘못된 경로를 내려가 보이는 것 같아요.

+0

샤딩에 대한 질문에 답변을 얻었지만 2010 년 6 월 SQL Azure의 저장 용량은 50GB입니다. 이것은 잠재적으로 샤딩의 필요성을 없애거나 줄일 수 있습니다. http://blogs.msdn.com/sqlazure/archive/2010/03/19/9981936.aspx –

+0

을 참조하십시오. @David가이 게시물에 대해 감사 드리며, 이는 실제로 50GB db가 상당히 풍부하고 비교적 쉽게 작업 할 수 있기 때문에 좋은 소식입니다. 당신은 역사적인 데이터를 보관하는 경우 10 기가 바이트 어떤 기업 플랫폼에 대한 신속하게 짧은 작업을 할 수 있습니다. –

답변

4

SQLAzure/Sharding에서 NHibernate를 사용하여 약 한 달 전에 개념 증명을 작성했습니다. 당신이 지적했듯이, 그것에 대해 옳지 않은 부분이 있습니다. NH 지원이 진화 할 때까지 몇 가지 시도를 해 자신에게 가장 적합한 것이 무엇인지 찾아야 할 수도 있습니다. 나는 그것이 우리에게 어떻게 작용했는지에 대한 일반적인 흐름을 말할 수 있습니다.

우리는 우리의 필요에 따라 어느 샤드를 배치할지 결정하는 전략을 제공하는 간단한 샤딩 전략 공장을 구현했습니다. 요구 사항은 여기에 따라 다를 수 있습니다. 핵심은 쿼리 결과를 처리, 병합 및 정렬하는 전략을 만드는 것입니다. 거기에서 세션 생성 및 사용은 다른 세션 사용과 모두 동일하므로 매우 바람직합니다.

편집 : this post by Ayende은 몇 개월 된 것으로 알고 있지만 정확하게 구현 한 방법입니다. 소문은 nHibernate에서 더 나은 지원이 올 것입니다.

+0

그 게시물을 보았을 때 정말 유용하다는 것을 처음 보았습니다. –

+0

나는이 질문에 더 많은 정보를 얻기를 정말로 바랐다. 나는이 질문에 대해 지금까지 해본 적이있는 가장 큰 현상금을 설정했으나 귀하의 게시물은 내가 가진 더 많은 정보를 주었고 어떤 도움을 제공하는 사람이었다. 그래서 대신 만료시켜주고 당신에게 절반을 준다. –

+0

고마워, 크리스. 나는 더 많은 사람들이 더 나은 해결책을 가지고 있는지 궁금해서 더 많은 사람들이 뛰어 들기를 희망했다. :-) – Kilhoffer

관련 문제