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

Reply via email to