Hey, Additionally, I see no example usage of the memcached_server_by_key API to get the server where a key is stored. When I try to print out the value contained in it in my c code, I get dereferencing error: memcached_return_t rc2; memcached_instance_st* r_server; r_server = memcached_server_by_key(cache, key, (size_t) strlen(key), &rc2); printf("%s \n", r_server->hostname());
This is the error: testsasl.c:67:28: error: dereferencing pointer to incomplete type ‘memcached_instance_st {aka struct memcached_instance_st}’ printf("%s \n", r_server->hostname()); ^ Also, I observe that the common.h file does not get added in the usual compilation path under /usr/include/lib/ Any help with this will be highly appreciated. Would I need to change libmemcached code to view this? Thanks and Regards, Om Kale On Thu, Aug 2, 2018 at 7:15 PM, Om Kale <omkal...@gmail.com> wrote: > Also, one more problem with the script approach, I would have to maintain > a separate connection to all memcached servers in the list. > How would I query them individually all the time when server list changes? > > > Thanks and Regards, > Om Kale > > > On Thu, Aug 2, 2018 at 5:21 PM, Om Kale <omkal...@gmail.com> wrote: > >> Yes. I do. >> Oh..ok. You are saying to do it the other way around, instead of passing >> a key and checking which server it belongs to, query every server in the >> list for a given key? I could that..not very optimal..but a workaround. >> Why I needed a way to get a server list where a particular key belongs >> to, it will be easy to check the state as well during run time. So >> whenever, some value fetch would give me an error, I could quickly use the >> key to get the servers its stored on and go on from there. >> >> Thanks and Regards, >> Om Kale >> >> On Thu, Aug 2, 2018 at 4:43 PM, dormando <dorma...@rydia.net> wrote: >> >>> You have the list of all servers right? Just query them individually? if >>> it's just for debugging it should take you a few minutes to code >>> soemthing >>> yup; you could even use a bash script. >>> >>> On Thu, 2 Aug 2018, Om Kale wrote: >>> >>> > The reason I am trying to do this is for better debugging. In case >>> something goes wrong in the system and I am unable to get the value stored >>> for a >>> > particular key, I can go ahead and use this functionality to >>> understand on which server that particular key is stored. >>> > Also, the second question about why the printing doesn't work. Is >>> there any other way to check on which server a key is stored. >>> > Additionally, when you say brute force, how would I be able to do it >>> on memcached server as I will not know on which server instance the key is >>> stored. >>> > Could you please elaborate on this? >>> > >>> > Thanks and Regards,Om Kale >>> > >>> > On Thu, Aug 2, 2018 at 4:27 PM, dormando <dorma...@rydia.net> wrote: >>> > Why are you trying to do this? That's generally a bad sign, the >>> > replication is for redundancy. if you're just trying to confirm >>> it works, >>> > you can do a brute force search for the key >>> > >>> > On Thu, 2 Aug 2018, Om Kale wrote: >>> > >>> > > Hi All,I have enabled replication (using --NUMBER_OF_REPLICAS) >>> and ketama hashing. >>> > > This means, I will have replicas of keys stored on different >>> servers memntioned in my server list. >>> > > >>> > > My question is, is there any way of retrieving the list of >>> servers where replicas of a particular key lie, in libmemcached? >>> > > Example: If I give a key, I need all the servers where >>> replicas of that key are stored. >>> > > >>> > > For getting one server where key is stored, I use this: >>> > > const struct memcached_instance_st *server;server = const >>> memcached_instance_st * memcached_server_by_key(memcached_st *ptr, const >>> > > char *key, size_t key_length, memcached_return_t *error); >>> > > >>> > > >>> > > However, I am unable to print the hostname from the returned >>> structure using server->hostname >>> > > >>> > > in a .c file. Can this info not be printed? >>> > > >>> > > Thanks and Regards, >>> > > >>> > > Om Kale >>> > > >>> > > >>> > > >>> > > -- >>> > > >>> > > --- >>> > > You received this message because you are subscribed to the Google >>> Groups "memcached" group. >>> > > To unsubscribe from this group and stop receiving emails from it, >>> send an email to memcached+unsubscr...@googlegroups.com. >>> > > For more options, visit https://groups.google.com/d/optout. >>> > > >>> > > >>> > >>> > -- >>> > >>> > --- >>> > You received this message because you are subscribed to the Google >>> Groups "memcached" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> an email to memcached+unsubscr...@googlegroups.com. >>> > For more options, visit https://groups.google.com/d/optout. >>> > >>> > >>> > -- >>> > >>> > --- >>> > You received this message because you are subscribed to the Google >>> Groups "memcached" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> an email to memcached+unsubscr...@googlegroups.com. >>> > For more options, visit https://groups.google.com/d/optout. >>> > >>> > >>> >>> -- >>> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "memcached" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to memcached+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- --- You received this message because you are subscribed to the Google Groups "memcached" group. To unsubscribe from this group and stop receiving emails from it, send an email to memcached+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.