[jboss-jira] [JBoss JIRA] (JGRP-1906) jdbc_ping doesn't delete crashed node

Mikhail Krestyaninov (JIRA) issues at jboss.org
Wed May 18 04:51:00 EDT 2016


    [ https://issues.jboss.org/browse/JGRP-1906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13239186#comment-13239186 ] 

Mikhail Krestyaninov commented on JGRP-1906:
--------------------------------------------

Thank you!

> jdbc_ping doesn't delete crashed node
> -------------------------------------
>
>                 Key: JGRP-1906
>                 URL: https://issues.jboss.org/browse/JGRP-1906
>             Project: JGroups
>          Issue Type: Bug
>    Affects Versions: 3.6.1
>         Environment: n/a
>            Reporter: rama rama
>            Assignee: Bela Ban
>            Priority: Critical
>
> Hi,
> i am having trouble with jgroups. If a node crash, it doesn't get removed from jdbc table.
> After 10 hours of work, the table contains 100 rows (that is not a problem) but, when the server start_up, GMS take _AGES_ to try to connect to all this dead node.
> Since i am only a 'user' speaking about jgroup and i have no idea on how internally does it work, it this normal?
> I don't think so, master of the cluster, or a governor or something like that, should be able to detect if a node is present or not (via FD,VERIFY_SUSPECT) and delete it from JDBC table to avoid issue on startup for the next time, correct me if i am wrong.
> Here a copy/paste of my current config, configured in applicative way.
> ------------------------------------------------------------------------------------
>         int min_cores = 1;
>         int max_cores = 50;
>         InetAddress bind_addr = org.jgroups.util.Util.getAddressByPatternMatch("match-address:" + Config.get("Cluster.bind_addr"));
>         stack
>                 .addProtocol(new UDP()
>                                 .setValue("bind_addr", bind_addr)
>                                 .setValue("loopback", true)
>                                 .setValue("thread_naming_pattern", "cl")
>                                 .setValue("timer_type", "new3")
>                                 .setValue("timer_min_threads", min_cores)
>                                 .setValue("timer_max_threads", max_cores)
>                                 .setValue("timer_keep_alive_time", Util.MIN * 10)
>                                 .setValue("timer_queue_max_size", 500)
>                                 .setValue("mcast_port", Config.get("Cluster.mcast_port", Constant.INT_NULL))
>                                 .setValue("thread_pool_keep_alive_time", Util.MIN * 10)
>                                 .setValue("thread_pool_min_threads", min_cores)
>                                 .setValue("thread_pool_max_threads", max_cores)
>                                 .setValue("thread_pool_queue_enabled", false)
>                                 .setValue("thread_pool_queue_max_size", 500)
>                                 .setValue("oob_thread_pool_keep_alive_time", Util.MIN * 10)
>                                 .setValue("oob_thread_pool_min_threads", min_cores)
>                                 .setValue("oob_thread_pool_max_threads", max_cores)
>                                 .setValue("oob_thread_pool_queue_enabled", false)
>                                 .setValue("oob_thread_pool_queue_max_size", 500)
>                                 .setValue("internal_thread_pool_keep_alive_time", Util.MIN * 10)
>                                 .setValue("internal_thread_pool_min_threads", min_cores)
>                                 .setValue("internal_thread_pool_max_threads", max_cores)
>                                 .setValue("internal_thread_pool_queue_enabled", false)
>                                 .setValue("internal_thread_pool_queue_max_size", 600000)
>                                 .setValue("ucast_recv_buf_size", org.jgroups.util.Util.readBytesInteger("5M"))
>                                 .setValue("ucast_send_buf_size", org.jgroups.util.Util.readBytesInteger("640K"))
>                                 .setValue("mcast_recv_buf_size", org.jgroups.util.Util.readBytesInteger("5M"))
>                                 .setValue("mcast_send_buf_size", org.jgroups.util.Util.readBytesInteger("640K"))
>                 )
>                 .addProtocol(new JDBC_PING()
>                                 .setValue("connection_url", Config.get("DB.dbdriver") + ':' + Config.get("DB.dburl") + '/' + Config.get("DB.dbname"))
>                                 .setValue("connection_username", Config.get("DB.dbuser"))
>                                 .setValue("connection_password", Config.get("DB.dbpwd"))
>                                 .setValue("connection_driver", "org.postgresql.Driver")
>                                 .setValue("initialize_sql", "CREATE TABLE IF NOT EXISTS JGROUPSPING ( own_addr varchar(200) NOT NULL, cluster_name varchar(200) NOT NULL, ping_data bytea DEFAULT NULL, PRIMARY KEY (own_addr, cluster_name) )")
>                 )
>                 .addProtocol(new MERGE3()
>                                 .setValue("max_interval", 10000)
>                                 .setValue("min_interval", 1000)
>                 )
>                 .addProtocol(new FD_SOCK()
>                                 .setValue("bind_addr", bind_addr)
>                 )
>                 .addProtocol(new FD_ALL()
>                 )
>                 .addProtocol(new VERIFY_SUSPECT()
>                                 .setValue("timeout", 1000)
>                                 .setValue("bind_addr", bind_addr)
>                 )
>                 .addProtocol(new NAKACK2()
>                                 .setValue("xmit_interval", 500)
>                                 .setValue("xmit_table_num_rows", 100)
>                                 .setValue("xmit_table_msgs_per_row", 2000)
>                                 .setValue("xmit_table_max_compaction_time", 30000)
>                                 .setValue("max_msg_batch_size", 500)
>                                 .setValue("use_mcast_xmit", false)
>                                 .setValue("discard_delivered_msgs", true)
>                 )
>                 .addProtocol(new UNICAST3()
>                                 .setValue("xmit_table_num_rows", 100)
>                                 .setValue("xmit_table_msgs_per_row", 1000)
>                                 .setValue("xmit_table_max_compaction_time", 30000)
>                                 .setValue("max_msg_batch_size", 500)
>                 )
>                 .addProtocol(new STABLE()
>                                 .setValue("stability_delay", 2000)
>                                 .setValue("desired_avg_gossip", 60000)
>                                 .setValue("max_bytes", org.jgroups.util.Util.readBytesInteger("4M"))
>                                 .setValue("cap", 0.1)
>                 )
>                 .addProtocol(new GMS()
>                                 .setValue("join_timeout", 3000)
>                                 .setValue("view_bundling", false)
>                                 .setValue("print_local_addr", false)
>                                 .setValue("print_physical_addrs", false)
>                 )
>                 .addProtocol(new UFC()
>                                 .setValue("max_credits", org.jgroups.util.Util.readBytesInteger("4M"))
>                                 .setValue("min_threshold", 0.4)
>                 )
>                 .addProtocol(new MFC()
>                                 .setValue("max_credits", org.jgroups.util.Util.readBytesInteger("4M"))
>                                 .setValue("min_threshold", 0.4)
>                 )
>                 .addProtocol(new FRAG2()
>                                 .setValue("frag_size", org.jgroups.util.Util.readBytesInteger("60K"))
>                 )
>                 .addProtocol(new RSVP()
>                                 .setValue("resend_interval", 2000)
>                                 .setValue("timeout", 10000)
>                 )
>         ;
>         stack.init();
> ----------------------------



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list