RE: get dinamicsnith info from php
I'm not sure, that selecting node upon DS is a good idea. First of all every node has values about every node, including self. Self DS values are always better than others. For example, 3 nodes RF=2: N1 N2 N3 N1 0.5ms 2ms 2ms N2 2ms 0.5ms 2ms N3 2ms 2ms 0.5ms We have monitored many Cassandra counters, including DS values for every node, and graphs shows that latencies is not about load. So the strategy should be based on use case, node count, RF, replica placement strategy, read repair chance, and more, and more... What do you want to achieve? Best regards / Pagarbiai Viktor Jevdokimov Senior Developer Email: viktor.jevdoki...@adform.commailto:viktor.jevdoki...@adform.com Phone: +370 5 212 3063, Fax +370 5 261 0453 J. Jasinskio 16C, LT-01112 Vilnius, Lithuania Follow us on Twitter: @adforminsiderhttp://twitter.com/#!/adforminsider What is Adform: watch this short videohttp://vimeo.com/adform/display [Adform News] http://www.adform.com Disclaimer: The information contained in this message and attachments is intended solely for the attention and use of the named addressee and may be confidential. If you are not the intended recipient, you are reminded that the information remains the property of the sender. You must not use, disclose, distribute, copy, print or rely on this e-mail. If you have received this message in error, please contact the sender immediately and irrevocably delete this message and any copies. From: ruslan usifov [mailto:ruslan.usi...@gmail.com] Sent: Monday, May 14, 2012 16:58 To: user@cassandra.apache.org Subject: get dinamicsnith info from php Hello I want to route request from php client to minimaly loaded node, so i need dinamicsnitch info and gosip, how can i get this info fro php. Perhaps need some daemon that can communicate with cassandra gosip and translate this info to php (socket for example)??? inline: signature-logo29.png
Re: get dinamicsnith info from php
Sorry for my bad english. I want to solve follow problem. For example we down one node for maintenance reason, for a long time (30 min). Now we use TSocketPool for polling connection to cassandra, but this poll implementation is as i think not so good, it have a custom parameter setRetryInterval, with allow off broken node (now we set i to 10sec), but this mean that every 10sec pool will try to connet down node (i repeat we shutdown node for maintance reason), because it doesn't know node dead or node, but cassandra cluster know this, and this connection attempt is senselessly, also when node make compact it can be heavy loaded, and can't serve client reqest very good (at this moment we can got little increase of avg backend responce time) 2012/5/14 Viktor Jevdokimov viktor.jevdoki...@adform.com I’m not sure, that selecting node upon DS is a good idea. First of all every node has values about every node, including self. Self DS values are always better than others. ** ** For example, 3 nodes RF=2: ** ** N1 N2 N3 N1 0.5ms 2ms 2ms N2 2ms 0.5ms 2ms N3 2ms 2ms 0.5ms ** ** We have monitored many Cassandra counters, including DS values for every node, and graphs shows that latencies is not about load. ** ** So the strategy should be based on use case, node count, RF, replica placement strategy, read repair chance, and more, and more… ** ** What do you want to achieve? ** ** ** ** Best regards / Pagarbiai *Viktor Jevdokimov* Senior Developer Email: viktor.jevdoki...@adform.com Phone: +370 5 212 3063, Fax +370 5 261 0453 J. Jasinskio 16C, LT-01112 Vilnius, Lithuania Follow us on Twitter: @adforminsiderhttp://twitter.com/#%21/adforminsider What is Adform: watch this short video http://vimeo.com/adform/display [image: Adform News] http://www.adform.com Disclaimer: The information contained in this message and attachments is intended solely for the attention and use of the named addressee and may be confidential. If you are not the intended recipient, you are reminded that the information remains the property of the sender. You must not use, disclose, distribute, copy, print or rely on this e-mail. If you have received this message in error, please contact the sender immediately and irrevocably delete this message and any copies. *From:* ruslan usifov [mailto:ruslan.usi...@gmail.com] *Sent:* Monday, May 14, 2012 16:58 *To:* user@cassandra.apache.org *Subject:* get dinamicsnith info from php ** ** Hello I want to route request from php client to minimaly loaded node, so i need dinamicsnitch info and gosip, how can i get this info fro php. Perhaps need some daemon that can communicate with cassandra gosip and translate this info to php (socket for example)??? signature-logo29.png
RE: get dinamicsnith info from php
Let say you have 8 nodes cluster with replication factor 3. If one node is down, for its token range you have only 2 nodes left, not 7, which can process you requests - other nodes will forward requests to the nearest (depends on snitch) or with lower latency (depends on dynamic snitch) of 2 remaining. I have no idea about PHP and its multithreading capabilities, if it's impossible to run background thread to return dead endpoint to the list, instead of checking it on HTTP request thread, you're stacked. For the lower latencies dynamic snitch already do a job for you, selecting a node with lower latencies. If you'd like Cassandra to avoid forwarding requests to appropriate node, but making a direct request to a node where data is, you need smarter client, capable to select node by key and other things to do to achieve this. Best regards / Pagarbiai Viktor Jevdokimov Senior Developer Email: viktor.jevdoki...@adform.commailto:viktor.jevdoki...@adform.com Phone: +370 5 212 3063, Fax +370 5 261 0453 J. Jasinskio 16C, LT-01112 Vilnius, Lithuania Follow us on Twitter: @adforminsiderhttp://twitter.com/#!/adforminsider What is Adform: watch this short videohttp://vimeo.com/adform/display [Adform News] http://www.adform.com Disclaimer: The information contained in this message and attachments is intended solely for the attention and use of the named addressee and may be confidential. If you are not the intended recipient, you are reminded that the information remains the property of the sender. You must not use, disclose, distribute, copy, print or rely on this e-mail. If you have received this message in error, please contact the sender immediately and irrevocably delete this message and any copies. From: ruslan usifov [mailto:ruslan.usi...@gmail.com] Sent: Monday, May 14, 2012 17:41 To: user@cassandra.apache.org Subject: Re: get dinamicsnith info from php Sorry for my bad english. I want to solve follow problem. For example we down one node for maintenance reason, for a long time (30 min). Now we use TSocketPool for polling connection to cassandra, but this poll implementation is as i think not so good, it have a custom parameter setRetryInterval, with allow off broken node (now we set i to 10sec), but this mean that every 10sec pool will try to connet down node (i repeat we shutdown node for maintance reason), because it doesn't know node dead or node, but cassandra cluster know this, and this connection attempt is senselessly, also when node make compact it can be heavy loaded, and can't serve client reqest very good (at this moment we can got little increase of avg backend responce time) 2012/5/14 Viktor Jevdokimov viktor.jevdoki...@adform.commailto:viktor.jevdoki...@adform.com I'm not sure, that selecting node upon DS is a good idea. First of all every node has values about every node, including self. Self DS values are always better than others. For example, 3 nodes RF=2: N1 N2 N3 N1 0.5ms 2ms 2ms N2 2ms 0.5ms 2ms N3 2ms 2ms 0.5ms We have monitored many Cassandra counters, including DS values for every node, and graphs shows that latencies is not about load. So the strategy should be based on use case, node count, RF, replica placement strategy, read repair chance, and more, and more... What do you want to achieve? Best regards / Pagarbiai Viktor Jevdokimov Senior Developer Email: viktor.jevdoki...@adform.commailto:viktor.jevdoki...@adform.com Phone: +370 5 212 3063, Fax +370 5 261 0453 J. Jasinskio 16C, LT-01112 Vilnius, Lithuania Follow us on Twitter: @adforminsiderhttp://twitter.com/#%21/adforminsider What is Adform: watch this short videohttp://vimeo.com/adform/display [Adform News]http://www.adform.com Disclaimer: The information contained in this message and attachments is intended solely for the attention and use of the named addressee and may be confidential. If you are not the intended recipient, you are reminded that the information remains the property of the sender. You must not use, disclose, distribute, copy, print or rely on this e-mail. If you have received this message in error, please contact the sender immediately and irrevocably delete this message and any copies. From: ruslan usifov [mailto:ruslan.usi...@gmail.commailto:ruslan.usi...@gmail.com] Sent: Monday, May 14, 2012 16:58 To: user@cassandra.apache.orgmailto:user@cassandra.apache.org Subject: get dinamicsnith info from php Hello I want to route request from php client to minimaly loaded node, so i need dinamicsnitch info and gosip, how can i get this info fro php. Perhaps need some daemon that can communicate with cassandra gosip and translate this info to php (socket for example)??? inline: image001.pnginline: signature-logo29.png
Re: get dinamicsnith info from php
I struggled with this before and decided to use HAProxy which suits my needs, you can read a little more about it at my personal blog: http://www.robinverlangen.nl/index/view/4fa902c1596cb-44a627/how-to-solve-the-pain-of-stateless-php-with-cassandra.html Good luck with it! 2012/5/14 Viktor Jevdokimov viktor.jevdoki...@adform.com Let say you have 8 nodes cluster with replication factor 3. If one node is down, for its token range you have only 2 nodes left, not 7, which can process you requests – other nodes will forward requests to the nearest (depends on snitch) or with lower latency (depends on dynamic snitch) of 2 remaining. ** ** I have no idea about PHP and its multithreading capabilities, if it’s impossible to run background thread to return dead endpoint to the list, instead of checking it on HTTP request thread, you’re stacked. For the lower latencies dynamic snitch already do a job for you, selecting a node with lower latencies. ** ** If you’d like Cassandra to avoid forwarding requests to appropriate node, but making a direct request to a node where data is, you need smarter client, capable to select node by key and other things to do to achieve this. ** ** ** ** Best regards / Pagarbiai *Viktor Jevdokimov* Senior Developer Email: viktor.jevdoki...@adform.com Phone: +370 5 212 3063, Fax +370 5 261 0453 J. Jasinskio 16C, LT-01112 Vilnius, Lithuania Follow us on Twitter: @adforminsider http://twitter.com/#!/adforminsider What is Adform: watch this short video http://vimeo.com/adform/display [image: Adform News] http://www.adform.com Disclaimer: The information contained in this message and attachments is intended solely for the attention and use of the named addressee and may be confidential. If you are not the intended recipient, you are reminded that the information remains the property of the sender. You must not use, disclose, distribute, copy, print or rely on this e-mail. If you have received this message in error, please contact the sender immediately and irrevocably delete this message and any copies. *From:* ruslan usifov [mailto:ruslan.usi...@gmail.com] *Sent:* Monday, May 14, 2012 17:41 *To:* user@cassandra.apache.org *Subject:* Re: get dinamicsnith info from php ** ** Sorry for my bad english. I want to solve follow problem. For example we down one node for maintenance reason, for a long time (30 min). Now we use TSocketPool for polling connection to cassandra, but this poll implementation is as i think not so good, it have a custom parameter setRetryInterval, with allow off broken node (now we set i to 10sec), but this mean that every 10sec pool will try to connet down node (i repeat we shutdown node for maintance reason), because it doesn't know node dead or node, but cassandra cluster know this, and this connection attempt is senselessly, also when node make compact it can be heavy loaded, and can't serve client reqest very good (at this moment we can got little increase of avg backend responce time) 2012/5/14 Viktor Jevdokimov viktor.jevdoki...@adform.com I’m not sure, that selecting node upon DS is a good idea. First of all every node has values about every node, including self. Self DS values are always better than others. For example, 3 nodes RF=2: N1 N2 N3 N1 0.5ms 2ms 2ms N2 2ms 0.5ms 2ms N3 2ms 2ms 0.5ms We have monitored many Cassandra counters, including DS values for every node, and graphs shows that latencies is not about load. So the strategy should be based on use case, node count, RF, replica placement strategy, read repair chance, and more, and more… What do you want to achieve? ** ** Best regards / Pagarbiai *Viktor Jevdokimov* Senior Developer ** ** Email: viktor.jevdoki...@adform.com Phone: +370 5 212 3063, Fax +370 5 261 0453 J. Jasinskio 16C, LT-01112 Vilnius, Lithuania Follow us on Twitter: @adforminsiderhttp://twitter.com/#%21/adforminsider What is Adform: watch this short video http://vimeo.com/adform/display** ** [image: Adform News] http://www.adform.com Disclaimer: The information contained in this message and attachments is intended solely for the attention and use of the named addressee and may be confidential. If you are not the intended recipient, you are reminded that the information remains the property of the sender. You must not use, disclose, distribute, copy, print or rely on this e-mail. If you have received this message in error, please contact the sender immediately and irrevocably delete this message and any copies. ** ** *From:* ruslan usifov [mailto:ruslan.usi...@gmail.com] *Sent:* Monday, May 14, 2012 16:58 *To:* user@cassandra.apache.org *Subject:* get dinamicsnith info from php