tera
tera copied to clipboard
tera client客户端连接问题
想问一下 1、若部署1000个tablenode,client sdk是直连tableserver的么,这个是长连接么? 在这种情况下,如果有上千个client该怎么办呢?
或者说存在大量连接时,得使用tera proxy?
2、client sdk如何发现故障节点,并踢出该节点,如果是通过zk发现,会不会导致时延上的丢数据?
或者说存在大量连接时,得使用tera proxy?
- 是直连,是长链接。
- m 个 client,n 个 tabletserver,极端情况下,每个 tabletserver 维护 m 条链接,每个 client 维护 n 条链接,整体 overhead 不高,m,n 数量级通常不超过 k 级别
- 踢节点不是 sdk 做的,是 master 做的,zk 掉节点是其中一种场景,master 和 ts 之间本身有心跳
- 踢节点影响的是 Availability,会读失败(client 本身有重试机制),但不会丢数据
大概用hadoop3.1.2版本测了耳 3个zookeeper,datanode节点55个,namenode2个,jdk堆栈都分配了3G,最大不超过5G,gc1模式 1、读写设为60ms超时,batch_size为1,最大qps仅有3000-7000左右,写qps同样也不高,不会超过3000 2、当读写同时存在的时候,读写性能下降异常厉害 3、开启persist_cache时,会有bug,load升得太高,大概是因为读写失败。 4、tabletserver节点升高,并不能提高读写qps 我的结论感觉还是hdfs这个存储,严重影响了读写性能