xmemcached 1.3需求收集贴

dennis_zane 2010-04-12

xmemcached 1.2.4-bugfix发布已经有一段时间,相信这是一个稳定靠谱的版本,下一步的发展暂时没有比较明确的计划,如果你有什么意见或者需求,可以在这个帖子里提出,我将及时做出回复,谢谢。

kilik 2010-04-26
1.2.4 支持unix domain socket吗? 从源代码修改记录来看,似乎支持uds,但在用户指南中却并没有相应的说明。
dennis_zane 2010-04-27
我做了个分支,可以支持,但是从测试数据来看,性能并没有优势,因此就没有放出去。
wangzhen29 2010-06-11
尊敬的先生:
你好,首先祝你万事如意,工作顺利。
作为一个刚刚接触数据库编程的菜鸟,初次使用你的产品,在学习中遇到了一些问题。如果偶然能被你看到我的回信,并且能够得到你的指教,则万分欣喜。
1.在大并发下,是否要配poolsize,配成200时,出现过找不到session。不知为什么?
2.没有写序列ID时,储存和取出会出现 ivalid stream head ,不知可有什么好的解决方案。
3.能否给出一个例子来指导这个客户端在服务器端编程的用法。
4.另外客户端与连接,会话之间的关系不清楚。
给你添麻烦了。
敬拜!
dennis_zane 2010-06-11
wangzhen29 写道
尊敬的先生:
你好,首先祝你万事如意,工作顺利。
作为一个刚刚接触数据库编程的菜鸟,初次使用你的产品,在学习中遇到了一些问题。如果偶然能被你看到我的回信,并且能够得到你的指教,则万分欣喜。
1.在大并发下,是否要配poolsize,配成200时,出现过找不到session。不知为什么?
2.没有写序列ID时,储存和取出会出现 ivalid stream head ,不知可有什么好的解决方案。
3.能否给出一个例子来指导这个客户端在服务器端编程的用法。
4.另外客户端与连接,会话之间的关系不清楚。
给你添麻烦了。
敬拜!


你好

1、大部分情况下不要配置poolsize,因为xmc是基于nio的,单连接的性能满足大部分情况。设置连接数的大小,通常也不要太大,200是很夸张了,具体的设置数字看你的测试结果,我的建议是不要超过20个。 如果设置了连接池,那么各个连接建立的时间是不一样的,可能连接建立偏慢,出现操作没有连接的情况,这在刚启动的情况下是完全可能的。

2、什么是序列ID? 你是说serialVersionUID吧? 这是java用于序列化的版本号,如果你的get和set在不同机器上,那么可能由于类的版本不同导致序列化失败,这个的解决办法将是统一版本咯,跟xmc没关系,完全是序列化使用的问题。当然最佳实践肯定是设定serialVersionUID。

3、不理解什么意思,客户端编程跟服务器端编程对xmc的使用不会有什么不同。

4、Session就是连接的抽象,xmc跟会话一点关系也没有,请不要被名字混淆。




mikewang 2010-08-06
希望加入连接池支持

当前版本中提供的MemcachedBuiled并不能很好的满足连接池需求
原因

每次调用builed 都会创新新的memcachedClient 每个新建立的client都会创见新的socket连接

希望提供的功能为

1, 支持预先生成若干client, 每次调用getClient()将得到连接池中的一个可用的client

2, 调用client.close()后, client将放回pool中

总之, 希望和提供 dataSource 的功能。

---------------------------------------

在提供连接池的前提下, 希望加入对JCA 的支持。
dennis_zane 2010-08-06
MemcachedClient应当作为全局单例使用,创建一次即可,而不是每次都build一个。连接池是在MemcachedClient内部,你说的是对Client做池化,那不是xmc需要做的。我还是建议先将用户指南看一遍。
cscpswang 2010-11-01
memcached key-value 中value有1M大小的限制,请问xmc中对这块处理的方法吗?
dennis_zane 2010-11-01
cscpswang 写道
memcached key-value 中value有1M大小的限制,请问xmc中对这块处理的方法吗?


memcached 1.4.2开始已经可以通过-I选项绕过这个限制了吧,对于xmc来说,需要设置下transcoder的最大值限制,不然会报错:
 //设置为10M 
 memcachedClient.setTranscoder(new SerializingTranscoder(10*1024*1024)); 
nada_forever 2010-11-14
Hi,Dennis;
遇到这样的一个问题:xmc是使用ObjectInputStream.readObject来进行反序列化的,由于不能指定ClassLoader,在使用中会遇到一些问题,因为我们的框架是使用自定义的ClassLoader的;
现在小弟是直接通过继承ObjectInputStream来覆写resolveClass方法,指定ClassLoader为当前线程上下文的ClassLoader,然后BaseSerializingTranscoder类中直接使用继承的ObjectInputStream来进行反序列化。不知道这样会不会产生其他的问题?如果可以,能否在未来的版本进行指定ClassLoader的支持?
Global site tag (gtag.js) - Google Analytics