Phoenix优化——关于影响查询并发量的因素

本文探讨了在实际项目中影响Phoenix并发量的两个关键因素:一是CURRENT_TIME函数导致的服务端资源竞争,通过在客户端设置常量解决;二是盐表在点查和范围查询中的性能下降,通过改用预分区和键值反转提高定位效率,从而提升了查询并发能力。
摘要由CSDN通过智能技术生成

概述

        本文针对一个实际的项目中影响 Phoenix并发量2个因素进行介绍,希望能对大家有所帮助。

背景

       刚上线时phoenix并发量和响应时间一直不理想,表现出两个问题,一是极其简单的点查(where in条件、走索引)单客户端并发量只有几十,二是多个客户端同时压测时tps反而会下降。尝试调了诸如threadPoolSize 等参数都没有明显提升。

踩坑CURRENT_TIME

       多客户端同时压测,tps相比单客户端压测反而更低,因此推断服务端存在瓶颈。修改源码打印日志后发现,所有使用current_time()这个函数的SQL都很慢,于是推测此函数会去服务端获取时间, 使得服务端资源竞争,从而导致了多客户端并发tps反而下降的问题。最终在包裹SQL的java程序中用常量代替了函数,解决了此问题。

撒盐带来了性能下降

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值