我想知道,每次创建或更改某些记录时,调用用C编写的UDF (用户定义函数)时,会产生什么样的性能影响(假设假设,UDF代码本身不需要时间--我将自己对其进行优化)。
假设我有能够在200 k写/s上运行SSD持久化命名空间的硬件,那么每次运行UDF时,我能期望至少有50k写/s吗?
子问题:什么会限制UDF的性能(上下文切换?)
问这个问题的原因是,国际航空公司正在使用这些UDF,例如用于大型数据类型,但根据工作人员的说法,它们的性能并不高(与KVS-操作相比)。我的用法是使用UDF在Redis集群中保持范围广泛的辅助索引的最新更新,允许更丰富的实时查询(例如,5-10个二级索引的交叉/联合)。
发布于 2015-05-29 07:29:47
最好的办法就是自己做测试。很难预测。但我相信你应该能做50,000 tps。
UDF的性能主要是由于调用UDF之前发生的内存分配而影响的。如果您使用的是诸如int/string/blob这样的简单数据类型,那么您的情况会更好。如果在UDF中使用list/map,它将执行更多的内存分配,这将影响性能。
https://stackoverflow.com/questions/30422564
复制相似问题