Couchbase
  • Why NoSQL?
  • Couchbase Server
  • Download
  • Resources
  • Careers
Home | Forums | Membase | Memcached Server 1.0.3

Any plans for a supported .Net Membase client?

6 replies [Last post]
  • Login or register to post comments
Wed, 06/16/2010 - 15:40
slegay
Offline
Joined: 06/11/2010
Groups: None

We are running into lots of problems trying to run a stable Membase cluster using the Enyim .Net library. Problems with multi-gets that seem to be related to consistent hashing, but worst of all, all pools quickly become 'dead' although the Membase console shows the nodes as 'healthy'.

We're considering purchasing premium support from you guys, but not if the answer is 'this client is not supported'. Will you guys ever release a supported smart client for the .Net platform? If not, what's your current level of support for the Enyim one?

Thanks

Top
Wed, 06/16/2010 - 16:53
Perry Krug
Offline
Joined: 06/02/2010
Groups: None

Slegay,
I'm working to pull together an official support statement for the .Net platform for you. I didn't want to leave you hanging, but I will hopefully be able to get back to you tomorrow with more information.

Thanks!

Perry

__________________

Forum support is great for free but sometimes you need a guaranteed response time and dedicated resources for your questions or issues.
Consider purchasing enterprise-level support from Membase: http://www.membase.com/products-and-services/overview
Call or email "sales -at- membase -dot- com" today!

Top
Wed, 06/16/2010 - 17:05
Perry Krug
Offline
Joined: 06/02/2010
Groups: None

While we're working on that, I think we can dig further into your issue. If you have the ability, can you do your "multi-get" test with only one node in the cluster? That will simplify things and then we can build up from there.

-Perry

__________________

Forum support is great for free but sometimes you need a guaranteed response time and dedicated resources for your questions or issues.
Consider purchasing enterprise-level support from Membase: http://www.membase.com/products-and-services/overview
Call or email "sales -at- membase -dot- com" today!

Top
Wed, 06/16/2010 - 18:19
slegay
Offline
Joined: 06/11/2010
Groups: None

Yep, I tested that already. With one node, works fine. Also, if I change the key transformer back to the default one (meaning no transformation), multi-get works fine. My guess is it has something to do with the splitting of the keys for consistent hashing. The strange thing is single key retrieval seems to work OK with TigerHashing enabled.

Regarding the dead pools, I commented out a line of code in the client. In PoolSocket.cs, the Read method was killing the socket (and therefore the pool itself) whenever an IOException was thrown (line 193). That seemed a bit overkill to me since that exception seems to be thrown very often by BasicNetworkStream.Read() on all the different configurations I've tested (usually because of an aborted connection). I trust the NorthScale cluster to identify and clean up dead pools, so that client behavior seemed unnecessary. It seemed to help. I'm not getting as many misses, and traffic to the DB server has been reduced dramatically.

Still, it'd be nice to get a complete supported offering from you guys (server + smart .Net client).

Thanks for your help.

Top
Thu, 06/17/2010 - 13:58
Perry Krug
Offline
Joined: 06/02/2010
Groups: None

Slegay,
- The first issue of multi-get hashing is being worked on as we speak.
- The second issue of the dead pools should be fixed in the latest code already. Can you download the latest source and compile it? [url]http://github.com/enyim/EnyimMemcached/archives/binary[/url]. In reality, the 'ioexception' is being thrown because the webclient's readwritetimeout was not set properly. The client aborts processing after a while when no data is received and the connection is still open which is exactly is what's happening when the configuration does not change.

Also, can you please run the unit tests and see if they fail with your config? [url]http://github.com/enyim/EnyimMemcached/issues#issue/9[/url]

Thanks!

Perry

__________________

Forum support is great for free but sometimes you need a guaranteed response time and dedicated resources for your questions or issues.
Consider purchasing enterprise-level support from Membase: http://www.membase.com/products-and-services/overview
Call or email "sales -at- membase -dot- com" today!

Top
Fri, 06/25/2010 - 13:35
Perry Krug
Offline
Joined: 06/02/2010
Groups: None

Slegay, I'm happy to announce that we are now officially supporting the Enyim .NET client for memcached.

Did upgrading the client make a difference for you?

Thanks!

Perry

__________________

Forum support is great for free but sometimes you need a guaranteed response time and dedicated resources for your questions or issues.
Consider purchasing enterprise-level support from Membase: http://www.membase.com/products-and-services/overview
Call or email "sales -at- membase -dot- com" today!

Top
Thu, 07/15/2010 - 12:07
slegay
Offline
Joined: 06/11/2010
Groups: None

Hi there, sorry for the late response.

I can't give you an update on the TigerHashing problem. I pretty much gave up on that one since we could easily take care of hashing in our client wrapper and use the default transformer. That works well. I know the author's waiting for me to give exact steps to reproduce the problem, but it's a bit tricky at the moment since it depends on the actual keys and server config. I'll try to put something together, but since it's no longer an issue for us, it's pretty low on our priority list.

regarding the IOException, we've been running our tweaked version of the code for a month. I just changed the client to the patched version, we'll deploy it in our next release. I still need to run some tests first, I'll keep you posted.

Today though, a new problem came up. We're using NorthScale / Memcached as a centralized counter provider. We hadn't used the Increment / Decrement operations until now. We wrote some unit tests, and we're getting some weird issues when doing a Get on a Key whose value was incremented. Instead of returning the counter's value, we're getting null. The key is there though - doing an Add on that key returns false (as expected), and Increment / Decrement operations return expected results. But a simple Get seems to always be null.

What's the best way to send unit tests to you guys?

Top
  • Login or register to post comments
  • Login
  • Register

Company

  • About Us
  • Leadership
  • Customers
  • Partners
  • Contact Us

Product

  • Couchbase Server
  • Couchbase SDKs
  • Use Cases
  • Documentation
  • Forums

Open Source

  • Couchbase Project
  • Couchbase vs. CouchDB

Commercial

  • Subscriptions & Support
  • Training & Services

News

  • Blog
  • Newsletter
  • Press Releases
  • Buzz

Follow Us

    
  • Customer Login
  • Terms of Service
  • Privacy Policy
  • Trademark Policy
  • Site Map

© 2013 COUCHBASE All rights reserved.

Sign in to Couchbase Community

close
  • Create new account
  • Request new password
You are logging into the Forums, Wiki and Issue Tracker