DynamoDB для сессий PHP - PullRequest
       5

DynamoDB для сессий PHP

6 голосов
/ 25 января 2012

В настоящее время мы используем NAS для хранения файлов сеансов PHP для массива серверов приложений с автоматическим масштабированием нагрузки.

Мы заинтересованы заменить его на более надежное решение, и DynamoDB от Amazon выглядит интересно.Я вижу здесь одну возможную проблему, задокументированную здесь:

http://thwartedefforts.org/2006/11/11/race-conditions-with-ajax-and-php-sessions/

Я подозреваю, что DynamoDB не поддерживает блокировку объектов.Любые обходные пути, о которых вы можете подумать?

Если у вас есть опыт работы с другими системами NoSQL, используемыми для сессий PHP, также не стесняйтесь переходить, поскольку уроки могут быть похожими.*

Ответы [ 4 ]

8 голосов
/ 15 марта 2012

Используя условные записи DynamoDB, вы можете реализовать схему пессимистической блокировки, аналогичную тому, как работает обработчик сеансов PHP по умолчанию.

Кто-то еще также сделал запрос на обработчик сеансов DynamoDB: https://forums.aws.amazon.com/thread.jspa?messageID=328060.

Обновлено: AWS SDK для PHP теперь включает обработчик сеанса для DynamoDB.См. https://github.com/amazonwebservices/aws-sdk-for-php/blob/master/extensions/dynamodbsessionhandler.class.php и http://docs.amazonwebservices.com/AWSSDKforPHP/latest/#i=DynamoDBSessionHandler

Обновлено: В блоге AWS есть статья об обработчике сеанса DynamoDB: http://aws.typepad.com/aws/2012/04/scalable-session-handling-in-php-using-amazon-dynamodb.html

2 голосов
/ 25 января 2012

Интересная идея (+1) - и действительно сложная статья, просто пока что ее просмотрели;)

Что касается других опций NoSQL для хранения сессий PHP, вы можете проверить MongoSession - AОбработчик сессий PHP MongoDB , который ссылается на условия гонки с сеансами Ajax и PHP , и, кажется, в то же время решает задокументированные проблемы:

Я недавно обновилбиблиотека для поддержки атомарных операций как для записи сеанса, так и для сборки мусора, чтобы помочь предотвратить эти условия гонки.

Подобный подход должен быть возможен с Amazon DynamoDB какхорошо с помощью соответствующей комбинации условных обновлений , атомных счетчиков и согласованных считываний , подробнее см. Работа с элементами в Amazon DynamoDB на эти понятия и / или проверить следующие записи часто задаваемых вопросов:

1 голос
/ 02 мая 2012

Amazon только что выпустил новую функцию DynamoDB Session: http://aws.typepad.com/aws/2012/04/scalable-session-handling-in-php-using-amazon-dynamodb.html

1 голос
/ 08 марта 2012

Ваши серверы на AWS?Почему бы вам не попробовать функцию ElastCache?http://aws.amazon.com/en/elasticache/

Я использую CakePHP, ведьма поддерживает DB и Memcache для хранения сессий.После некоторого времени изучения обоих я выбрал Memcache.На самом деле, я установил PHP для хранения сессий в Memcache и настроил CakePHP для использования конфигурации сессий php.Таким образом, я могу отделить свои экземпляры memcache для сеансов и кэширования.

С уважением.

...