CREATE NETWORK INTERFACE vs CREATE NETWORK ADDRESS
Both CREATE NETWORK INTERFACE
and CREATE NETWORK ADDRESS
seem to create a row in the network_addresses
table. I wonder if there is really any difference between these commands.
In our product, we are trying to switch customer deployments from "Classic Load Balancing" to "Load Balanceing Policies". To configure classic load balancing, we created a NETWORK INTERFACE, and told the node to export on that network interface. For load Balancing policies, we create a NETWORK ADDRESS and add the address to a LOAD BALANCE GROUP.
In converting a Classic Load Balancing deployment to one using Load Balancing Policy, is there a need to delete the drop the NETWORK INTERFACE and create a NETWORK ADDRESS instead? They seem to be the same thing, and both look identical in the network_addresses
table once created. So I can't even tell how it was created. In fact, if I create a NETWORK INTERFACE, I can drop it with DROP NETWORK ADDRESS, and vice versa.
This is in Vertica 23.4, though the original NETWORK INTERFACE may have been created in Vertica 10.1 or Vertica 11.1.
Answers
they should create rows in network_interfaces and network_adddresses tables respectively. if there is already existing interface and network addresses you can use them to set up load balancing. please create a support case and share the reproducer.
I don't think so. The
v_monitor.network_interfaces
table appears to reflect the operating system network interfaces. RunningCREATE NETWORK INTERFACE
doesn't affect that table. However, it does create a row in thev_catalog.network_addresses
table (as doesCREATE NETWORK ADDRESS
).@JoshLitt yes. you are right. I am able to reproduce it. I have created a JIRA for the same.
test=> select interface from network_interfaces;
interface
lo
ens192
docker0
br-2f776fe24f78
lo
ens192
docker0
br-2f776fe24f78
lo
ens192
lo
ens192
lo
ens192
lo
ens192
(16 rows)
test=> CREATE NETWORK INTERFACE mynetwork ON v_test_node0001 WITH '127.0.0.1';
CREATE NETWORK INTERFACE
test=> select interface from network_interfaces;
interface
lo
ens192
docker0
br-2f776fe24f78
lo
ens192
docker0
br-2f776fe24f78
lo
ens192
lo
ens192
lo
ens192
lo
ens192
(16 rows)
test=> select * from network_addresses;
name | node | address | port | address_family | is_enabled | is_auto_detected
-----------+-----------------+-----------+------+----------------+------------+------------------
mynetwork | v_test_node0001 | 127.0.0.1 | 5433 | ipv4 | t | f
(1 row)
Thanks for confirming.
I'd be happy if the documentation clarified this. From my perspective, CREATE NETWORK INTERFACE and CREATE NETWORK ADDRESS currently seem indistinguishable, but since the doc for CREATE NETWORK INTERFACE says the following, I'm left scratching my head about the difference, or how to tell which was used:
true. there is definitely an issue that needs to be corrected. hence I created a JIRA with engineering