2010-05-08 2 views
0

저는 매우 간단한 도전이어야하는 내용으로 동그라미로 돌아 왔지만 처음부터 가장 효율적인 방법으로 수행하고 싶습니다. 그래서 http://www.youtube.com/watch?v=AgaL6NGpkB8 등의 확장형 앱 제작에 관한 Brett Slatkin의 Google IO 비디오 (2008 & 2009)를 보았지만 문서를 읽었지만 n00b로는 여전히 확실하지 않습니다.사용자에게 Java Google App Engine의 고유 항목 목록을 표시합니다.

나는 원래 'hotornot'과 비슷한 GAEJ에서 앱을 만들려고합니다. 여기서 사용자는 자신이 평가 한 항목이 표시됩니다. 그들이 그것을 평가하면, 그들은 전에 보지 못했던 다른 것으로 제시됩니다.
내 질문은 이것입니다; x 항목 (예 : 100)을 가져 와서 목록에 저장 (memcache에 저장)하는 것이 가장 효율적입니까? 아니면 각 등급 후에 새 항목에 대한 쿼리를 만드는 것이 가장 좋습니다.
사용자가 본 항목을 추적하려면 해당 항목의 키를 사용자 엔터티의 목록 속성에 보관할 계획입니다. 그게 합리적이라고 생각하니?

나는 정말로 이것에 대해 혼란스러워하여 어떤 도움을 주시면 감사하겠습니다.

답변

0

개인적으로 뭔가를 할 것이다 :

사용자가 로그인 할 때, 그들이 보지 못한 100 개 임의 ID 목록을 만들 수 있습니다. 그런 다음 사용자가 다음 항목을 클릭하면 데이터 저장소에 대한 쿼리를 수행하고 목록 앞에있는 쿼리를 다시 가져옵니다.

이 작업이 너무 느리게 끝나면 캐시를 시도 할 수 있지만 전체 데이터베이스를 memcache하는 것은 정말 어렵습니다. 그들이 필요로하는 100 명의 사람들을 적재하는 것조차 (사용자의 규모가 확장함에 따라) 어려울 것이다. 1 웹 페이지로드에 대해 1 항목을 뒤로 당기면 속도가 느려지지 않습니다. 각 클릭은 1 개 게시물의 댓글이되고 1 개 항목을 뒤로 가져옵니다. 데이터 스토어의 단순한 MS. 그들이 본 적이없는 100 개의 무작위 ID를 수행하는 것은 느릴 수 있으므로 사전에 수행하고 유지하는 방법에 따라 요청이나 세션에서 유지하는 것이 좋습니다.

+0

감사합니다. 너의 답. 혼자서 일하는 것은 내가 올바른 방향으로 나아가고 있다는 것을 아는 것이 좋다. 좀 더 생각해보십시오 (잠을 자면!) ID 묶음을 한꺼번에 가져올 필요가 없습니다. 나는 그것을 단순하게 유지하고 사용자가 보지 못한 임의의 ID를 붙잡을 것이라고 생각한다. 등급을 제출 한 후 위에 링크 된 Google IO 프레젠테이션에서 설명하는 병합 조인 기술을 사용하여 다른 등급을 잡습니다. 나는 이런 종류의 읽기를 만드는 비용은 무시할 만하며 사용자 수가 증가함에 따라 OK로 확장 될 것이라고 가정하고 있습니다. 감사합니다. . – James