|
From: Frantisek J. (JIRA) <nh...@gm...> - 2011-06-08 11:21:35
|
[ http://216.121.112.228/browse/NHCH-31?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=21273#action_21273 ]
Frantisek Jandos commented on NHCH-31:
--------------------------------------
I appreciate there is cache provider for AppFavric Cache, but I think that the usage of locks dictionary in VelocityClient is problematic due to following reasons:
(i) The client class is not thread safe (according to ICache comments should be) as distinct Add, Remove, Count may be performed concurrenctly. This could lead to race condions and unexpected dictionary exceptions.
(ii) If we are in cluster, each node would have its own locks dictionary, which could again lead to potential unlock by put.
> NHibernate.Caches.Velocity - update to AppFabric Caching Services 1.0
> ---------------------------------------------------------------------
>
> Key: NHCH-31
> URL: http://216.121.112.228/browse/NHCH-31
> Project: NHibernate.Caches
> Issue Type: Patch
> Components: Velocity
> Affects Versions: 3.0.0.CR
> Reporter: Paul Duran
> Priority: Major
> Attachments: VelocityToAppFabric.patch, VelocityToAppFabric_20101129.patch, VelocityToAppFabricDlls.zip
>
>
> Velocity has been renamed to AppFabric Caching Services. I've taken the suggested updates from this stackoverflow article: http://stackoverflow.com/questions/3233792/appfabric-could-not-contact-the-cache-service and improved them.
> Namely:
> * lock/unlock are fixed.
> * exceptions are still swallowed but are now logged
> * item will now remain locked after a Put() operation if it was locked already - see http://social.msdn.microsoft.com/Forums/en/velocity/thread/2b6df3a7-0bf8-4386-ba2d-884fb1a29e0e for explanation
> Known limitation:
> * if cache cluster is restarted, we will receive an error "ErrorCode<ERRCA0005>:SubStatus<ES0001>:Region referred to does not exist. Use CreateRegion API to fix the error". Open to options on how to resolve that.
> Please note: as part of applying this patch, the following files may be removed from lib\net\3.5:
> * CacheBaseLibrary.dll
> * CacheBaseLibrary.XML
> * CASBase.dll
> * CASClient.dll
> * ClientLibrary.dll
> * ClientLibrary.XML
> * FabricCommon.dll
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|