Apache Ignite 客户端无法计算字符串键的哈希码
Posted
技术标签:
【中文标题】Apache Ignite 客户端无法计算字符串键的哈希码【英文标题】:Apache Ignite client is not able to compute hash code for string key 【发布时间】:2021-06-04 15:48:51 【问题描述】:我正在使用 Apache Ignite 瘦客户端 (Apache.Ignite.dll 2.8.1) 使用字符串键创建缓存。当我尝试在缓存中插入记录时,我收到一个异常:
无法在 Apache.Ignite.Core.Impl.Binary.BinaryHashCodeUtils.GetComplexTypeHashCode[T](T val, Marshaller) 计算对象“dataservice:getdata:egd:viewmeta:positionfinancingdetail:653489822” 的哈希码Apache.Ignite.Core.Impl.Client.ClientFailoverSocket.GetPartition[TKey](TKey key, Int32 partitionCount, IDictionary2 keyConfiguration) at Apache.Ignite.Core.Impl.Client.ClientFailoverSocket.GetAffinitySocket[TKey](Int32 cacheId, TKey key) at Apache.Ignite.Core.Impl.Client.ClientFailoverSocket.DoOutInOpAffinity[T,TKey](ClientOp opId, Action
1 writeAction, Func2 readFunc, Int32 cacheId, TKey key, Func
3 errorFunc) 的沼泽,IDictionary2 affinityKeyFieldIds) at Apache.Ignite.Core.Impl.Binary.BinaryHashCodeUtils.GetHashCode[T](T val, Marshaller marsh, IDictionary
2 affinityKeyFieldIds)。 Ignite.Core.Impl.Client.Cache.CacheClient2.DoOutInOpAffinity[T](ClientOp opId, TK key, TV val, Func
2 readFunc) 在 Apache.Ignite.Core.Impl.Client.Cache.CacheClient2.Put(TK key, TV val) at HazelTree.DataService.Core.Caching.IgniteCacheTableClient.RegisterCache(String cacheName, Boolean isEmpty) in D:\projects\DataService\Core\Caching\IgniteCacheTableClient.cs:line 53 at HazelTree.DataService.Core.Caching.IgniteDataCache.DynamicCacheClient.<PutAllAsync>d__13.MoveNext() in D:\projects\DataService\Core\Caching\IgniteDataCache.cs:line 198 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at HazelTree.DataService.Core.Caching.IgniteDataCache.<GetOrAddAsync>d__9.MoveNext() in D:\projects\DataService\Core\Caching\IgniteDataCache.cs:line 70 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter
1.GetResult() 在 HazelTree.DataService.Core.CacheDataNode.d__4。 D:\projects\DataService\Core\Nodes\CacheDataNode.cs:line 37 中的 MoveNext()
*
如果我重新启动 ignite 服务器问题可能会不时消失,但它可能会在以后的重新启动过程中出现。不幸的是,我没有在 Apache.Ignite.Examples 中重现该问题。
这个问题有什么简单的根本原因吗? ignite 中的字符串键有什么限制吗? 也许这个问题在以后的版本中得到解决?
【问题讨论】:
【参考方案1】:这是一个错误,这里是票:https://issues.apache.org/jira/browse/IGNITE-14826
将尽快修复并包含在upcoming 2.11 release中
【讨论】:
以上是关于Apache Ignite 客户端无法计算字符串键的哈希码的主要内容,如果未能解决你的问题,请参考以下文章