我想使用悲观锁定将map reduce功能添加到我的Grails应用程序中。我开始使用标准的Grails插件将我的应用程序移植到MongoDB,并失望地看到以下错误:
java.lang.UnsupportedOperationException:Datastore[org.grails.Datastore.mapping.mongo.MongoCodecSession]不支持锁定。
我已经研究了其他MongoDB插件,DynamoDB插件和CouchDB插件,但我没有看到任何信息明确表明是否支持悲观锁定。如有任何建议,我们将不胜感激。
谢谢!
更新:原来Cassandra支持Map Reduce(我不知道)。根据Cassandra Grails插件文档,该插件支持"会话管理事务"。我相信这将支持悲观锁定。我将用我的调查结果更新这个问题。
我决定使用Redis分布式锁插件添加我自己的悲观锁层,以实现我自己的并发数据结构。这有点痛苦,但它提供了改进的性能,并允许我使用我选择的任何后端Gorm插件。
希望这对某些人的设计决策有所帮助。