Я разрабатываю приложение Facebook, которое использует SimpleDB для хранения своих данных, но я понял, что Amazon не предоставляет способ резервного копирования этих данных (по крайней мере, я знаю)
И SimpleDB работает медленно. Вы можете получить около 4 списков в секунду, каждый список из 100 записей. Не хороший способ сделать резервную копию тонны записей.
Я нашел в сети некоторые службы, которые предлагают сделать резервную копию за вас, но мне неудобно предоставлять им свои учетные данные AWS.
Так что я думаю об использовании потоков. Проблема в том, что если вы делаете выбор для всех ключей в домене, вам нужно дождаться значения next_token первой страницы, чтобы обработать вторую страницу и так далее.
Решением, о котором я думал, было создание нового атрибута, основанного на последних 2 цифрах идентификатора Facebook. Поэтому я бы начал поток с выбором для «00», другим для «01» и т. Д., Потенциально имея возможность запустить 100 потоков и делать резервные копии намного быстрее (по крайней мере, в теории). Соответствующим решением было бы разделить этот домен на 100 доменов (чтобы я мог создавать резервные копии каждого из них по отдельности), но это сломало бы некоторые варианты выбора, которые мне нужно сделать. Другое решение, возможно, более дружественное к PHP, - использовать задание cron для резервного копирования, скажем, 10000 записей и сохранить «next_token», затем следующее задание начинается с next_token и т. Д.
У кого-нибудь есть лучшее решение для этого? Если бы это было решение PHP, это было бы замечательно, но если оно включает в себя что-то другое, то его приветствуется в любом случае.
PS: до того как вы упомянули об этом, насколько я знаю, PHP все еще не безопасен для потоков. И я знаю, что если я не остановлю записи во время резервного копирования, будут проблемы с согласованностью, но я не слишком беспокоюсь об этом в данном конкретном случае.