|
From: admin <ad...@75...> - 2013-10-14 08:02:09
|
Hello, I'm a newbie and tring to evaluate pgxc for a project.
I need to say pgxc is an interesting solution of cluster.
In the evaluation I found some questions, if somebody can answer it I
will be very glad.
Environment:
pgxc 1.1, centos 6 32bit in virtualbox
ServerA:
gtm
coord_01
datanode_01
ServerB:
datanode_02
Question:
a. Is connection secure between coordinator with datanode, or
coordinator with gtm?
I tried if datanode only allow password authentication it will not
accessable from coordinator,
and gtm have no such config like pg_hda.conf
b. What is the warning "Do not have a GTM snapshot available" mean?
c. If gtm_proxy go after gtm, it will direct exit, is it a problem?
Example if I'm going to write a loader, step cannot be
gtm_ctl -Z gtm -D gtm start
gtm_ctl -Z gtm_proxy -D gtm_proxy start
but must be
gtm_ctl -Z gtm -D gtm start
[wait the port use by gtm open]
gtm_ctl -Z gtm_proxy -D gtm_proxy start
d. Check only one node is primary seems have a bug, example:
select * from pgxc_node;
"coord_01";"C";5432;"localhost";f;f;1975432854
"datanode_02";"D";15432;"192.168.8.184";f;f;-1414354208
"datanode_01";"D";15432;"192.168.8.183";t;t;-1746477557
select pgxc_pool_reload();
(success)
alter node datanode_01 with (port=15433);
ERROR: PGXC node datanode_01: two nodes cannot be primary
alter node datanode_01 with (primary=true);
ERROR: PGXC node datanode_01: two nodes cannot be primary
alter node datanode_01 with (primary=false);
(success)
select pgxc_pool_reload();
(success)
select * from pgxc_node;
"coord_01";"C";5432;"localhost";f;f;1975432854
"datanode_02";"D";15432;"192.168.8.184";f;f;-1414354208
"datanode_01";"D";15432;"192.168.8.183";f;t;-1746477557
alter node datanode_01 with (primary=true);
ERROR: PGXC node datanode_01: two nodes cannot be primary
These command all done in the same session open from pgadmin.
e. I cant set primary key to a table if remote node added, is it not
supported yet?
alter table test add primary key (id);
ERROR: Cannot create index whose evaluation cannot be enforced to remote
nodes
f. I cant modify value of sequence, is it not supported yet?
select setval('public.test_01_id_seq', 123, true);
ERROR: GTM error, could not obtain sequence value
g. I found some time field name and its type will exchange,
like "name with type text" some time will trun to "text with type name",
and type "name" is not valid.
I have no reproduction way yet but is it a known bug?
h. I found some time sequence from serial will broken then i can't
insert any data,
select nextval('public.test_01_id_seq');
ERROR:
Status: XX00
I can upload database files if you need.
i. Is there some way to get what nodes are using with the table?
These command can manage nodes with table
alter table tablename add node ...
alter table tablename delete node ...
alter table tablename to node ...
but I dont known what command can list what nodes are using with the table.
j. Is this project ready for production use?
|
|
From: Michael P. <mic...@gm...> - 2013-10-15 01:23:03
|
On Mon, Oct 14, 2013 at 4:05 PM, admin <ad...@75...> wrote:
> Hello, I'm a newbie and tring to evaluate pgxc for a project.
> I need to say pgxc is an interesting solution of cluster.
> In the evaluation I found some questions, if somebody can answer it I
> will be very glad.
>
> Environment:
> pgxc 1.1, centos 6 32bit in virtualbox
> ServerA:
> gtm
> coord_01
> datanode_01
> ServerB:
> datanode_02
>
> Question:
> a. Is connection secure between coordinator with datanode, or
> coordinator with gtm?
> I tried if datanode only allow password authentication it will not
> accessable from coordinator,
> and gtm have no such config like pg_hba.conf
No there is no option to use SSL between those connections due to the
internal connection pooling implementation. This is a TODO item.
> b. What is the warning "Do not have a GTM snapshot available" mean?
This warning means that you got a problem when trying to request a
global snapshot when issuing a query on a node. This was for example
reproducible easily by running a query directly on a Datanode without
going though a Coordinator for example.
> c. If gtm_proxy go after gtm, it will direct exit, is it a problem?
> Example if I'm going to write a loader, step cannot be
> gtm_ctl -Z gtm -D gtm start
> gtm_ctl -Z gtm_proxy -D gtm_proxy start
> but must be
> gtm_ctl -Z gtm -D gtm start
> [wait the port use by gtm open]
> gtm_ctl -Z gtm_proxy -D gtm_proxy start
Do you mean if gtm_proxy is started before gtm? Perhaps others
(Pavan?) will correct me, but isn't the gtm_proxy to not exit directly
and wait for a port open?
> d. Check only one node is primary seems have a bug, example:
> select * from pgxc_node;
> "coord_01";"C";5432;"localhost";f;f;1975432854
> "datanode_02";"D";15432;"192.168.8.184";f;f;-1414354208
> "datanode_01";"D";15432;"192.168.8.183";t;t;-1746477557
>
> select pgxc_pool_reload();
> (success)
> alter node datanode_01 with (port=15433);
> ERROR: PGXC node datanode_01: two nodes cannot be primary
> alter node datanode_01 with (primary=true);
> ERROR: PGXC node datanode_01: two nodes cannot be primary
> alter node datanode_01 with (primary=false);
> (success)
Definitely looks like a bug as you are describing it.
> These command all done in the same session open from pgadmin.
> e. I cant set primary key to a table if remote node added, is it not
> supported yet?
> alter table test add primary key (id);
> ERROR: Cannot create index whose evaluation cannot be enforced to remote
> nodes
You need either to make the table test replicated, or hashed using id
as a key in this case. AFAIK pgadmin does not provide support for the
XC-specific query extensions, but you can always run raw SQLs.
> f. I cant modify value of sequence, is it not supported yet?
> select setval('public.test_01_id_seq', 123, true);
> ERROR: GTM error, could not obtain sequence value
This should be supported.
> g. I found some time field name and its type will exchange,
> like "name with type text" some time will trun to "text with type name",
> and type "name" is not valid.
> I have no reproduction way yet but is it a known bug?
Can you provide a test case here?
> h. I found some time sequence from serial will broken then i can't
> insert any data,
> select nextval('public.test_01_id_seq');
> ERROR:
> Status: XX00
> I can upload database files if you need.
Not sure I am following you here.
> i. Is there some way to get what nodes are using with the table?
> These command can manage nodes with table
> alter table tablename add node ...
> alter table tablename delete node ...
> alter table tablename to node ...
> but I dont known what command can list what nodes are using with the table.
pgxc_class contains a list of node OIDS to know where the table data
is located referring to the nodes in pgxc_node.
> j. Is this project ready for production use?
Some do.
--
Michael
|