Я читаю о GAE и его хранилище данных. Я столкнулся с этим вопросом и статьей. Поэтому я задаюсь вопросом, могут ли мои пользователи идентифицироваться, например, по электронной почте, было бы разумно использовать один и тот же родитель для всех пользователей и электронную почту в качестве ключа с целью разрешения конфликтов, когда два разных пользователя пытаются использовать тот же адрес электронной почты, что и их идентификаторы? Теоретически, если число пользователей становится большим (например, 10M), может ли это вызвать какие-либо проблемы? С моей точки зрения, все должно быть просто прекрасно, но кладет те, которые заблокированы. Таким образом, если значительно преобладает puts (которые действительно происходят только в момент создания нового пользователя), я не вижу никаких проблем. Но ....Можно ли использовать один и тот же родительский ключ для всех пользователей в хранилище данных Google App Engine для транзакций?
Key parent = KeyFactory.createKey("parent", "users");
Key user = KeyFactory.createKey(parent, "user", "[email protected]");
When to use entity groups in GAE's Datastore https://developers.google.com/appengine/articles/scaling/contention
также рассмотреть вопрос о применении нижнего корпуса для электронной почты ... если вы не используете [email protected] и [email protected] в разных ключах. (хотя RFC сказал, что пользовательская часть может быть чувствительной к регистру, никто на самом деле не делает этого, так как это путается, чтобы «Джон» и «Джон» были двумя разными учетными записями электронной почты) –
классный. спасибо за понимание. и нижняя шкала - отличная идея. – Schultz9999
Кстати, на данный момент я думал, что перейду по домену электронной почты. Это может быть не идеальным и имеет предвзятость, но по крайней мере устраняет необходимость блокировки пользователей gmail при обработке yahoo или hotmail. – Schultz9999