ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Puebla Garcia <David.Pueblagar...@infor.com>
Subject Integration issue with enyimmecached client
Date Mon, 22 Feb 2016 23:08:09 GMT
Hello,

Following is the description of the issue as I posted it in gitter.

I have run into an integration issue between ignite memcached interface and Enyim client implementation.
https://github.com/enyim/EnyimMemcached
I am basically evaluating the options for ignite to replace memcached in some of our scenarios.
The problem is that strings being SET by the Enyim client are being stored in memcached as
a boolean.
I debugged the code and I believe the issues is caused by the interpretation of the extra
flags in the memcached protocol.
EnyimMemcached uses the memcached extra flags to encode the type of the data being stored.
My understanding is that the memcached protocol indicates that the extra flags should be opaque
to the server and returned as part of the value but ignite uses it to interpret the incoming
data.
See GridTcpRestParser.decodeObj
Has this issue being reported already? If so are there any workarounds/ignite configuration
to change the behavior for how the values are being handled? If needed I can try to provide
more detail on the issue.


Following is a sample console application that uses Enyim memcached client with ignite:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Text;

using System.Threading.Tasks;

using Enyim.Caching;

using Enyim.Caching.Configuration;

using Enyim.Caching.Memcached;


namespace MemcachedTestClientConsoleApp

{

    classProgram

    {


        static void Main(string[] args)

        {

            MemcachedClientConfiguration config = new MemcachedClientConfiguration();


            config.Servers.Add(new IPEndPoint(IPAddress.Loopback, 11211));


            config.Protocol = MemcachedProtocol.Binary;

            config.NodeLocator = typeof(KetamaNodeLocator);



            var mc = new MemcachedClient(config);


            List<String> keysToSave = new List<String>();


            string key = Guid.NewGuid().ToString();

            string value = Guid.NewGuid().ToString();


            mc.Store(StoreMode.Set, key, value);


            string storedValue = mc.Get<string>(key);


            Console.WriteLine(value);

            Console.WriteLine(storedValue);


            Console.ReadLine();

        }

    }

}


I can share the project if required I just did not want to attached it in this email in case
it could get blocked.

I am using Enyim.Caching nugget package version 2.13.0.0


Please let me know if more information is required.


Thank you


David

Mime
View raw message