Details
-
Task
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Done
Description
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
- https://mariadb.com/kb/en/spider-table-system-variables/
- https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.
I believe that the following attributes are enough:
engine-defined attribute | corresponding DNS parameter |
---|---|
REMOTE_SERVER | srv |
REMOTE_DATABASE | database |
REMOTE_TABLE | tbl |
Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should encourage the use of the CREATE SERVER statement, and not introduce attributes such as REMOTE_USER and REMOTE_PASSWORD.
SSL-related parameters might be essential but I believe that they should be covered by CREATE SERVER statement rather than per-table or per-partition attributes.
If, for example, both COMMENT='table "t1"' and REMOTE_TABLE="t2" are specified for a single table or a single partition, the Spider returns an error.
Example:
CREATE TABLE `users` ( |
`id` INT, |
`name` VARCHAR(255) |
) ENGINE=SPIDER REMOTE_TABLE="users" |
PARTITION BY HASH(id) |
(
|
PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", |
PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", |
PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" |
);
|
TODO:
Introduce engine-defined attributes described above;
Make Spider to use the attributes;
Write comprehensive test cases;
Refactor entire patch.
Attachments
Issue Links
- causes
-
MDEV-27521 SIGSEGV in spider_parse_connect_info in MDEV-27106 branch
-
- Closed
-
-
MDEV-27676 Assertion `str.alloced_length() >= str.length() + data_len' failed in spider_string::q_append
-
- Closed
-
- is part of
-
MDEV-27373 Q1 2022 release merge
-
- Closed
-
- relates to
-
MDEV-27169 Change default values of Spider plugin variables to default values of table variables
-
- Closed
-
-
MDEV-27211 Spider: deprecate table option specification by COMMENT
-
- Closed
-
-
MDEV-28856 Spider: Implement more engine-defined options
-
- Closed
-
-
MDEV-28861 Spider: Deprecate table options by COMMENT
-
- Closed
-
-
MDEV-5271 Support engine-defined attributes per partition
-
- Closed
-
-
MDEV-22541 CREATE SERVER does not treat SOCKET as mutually exclusive from HOST and PORT
-
- Open
-
-
MDEV-27400 Spider attempts localhost TCP/IP connection, even when none is specified.
-
- Confirmed
-
-
MDEV-27564 Clearly specify/indicate in the partitioning manual which per-partition options are available
-
- Confirmed
-
-
MDEV-31146 Spider: Remove table options by COMMENT
-
- Open
-
-
MDEV-33925 Add TLS-related options for CREATE SERVER
-
- Open
-
Activity
Link | This issue relates to MDEV-22541 [ MDEV-22541 ] |
Link | This issue relates to MENT-796 [ MENT-796 ] |
Link | This issue relates to MENT-797 [ MENT-797 ] |
Fix Version/s | 10.4 [ 23604 ] | |
Fix Version/s | 10.3 [ 23605 ] | |
Fix Version/s | 10.5 [ 23608 ] |
Link | This issue relates to MENT-799 [ MENT-799 ] |
Fix Version/s | N/A [ 23617 ] | |
Fix Version/s | 10.4 [ 23604 ] | |
Fix Version/s | 10.3 [ 23605 ] | |
Fix Version/s | 10.5 [ 23608 ] |
Link | This issue relates to MENT-805 [ MENT-805 ] |
Link | This issue relates to MENT-812 [ MENT-812 ] |
Link | This issue relates to CLX-300 [ CLX-300 ] |
Link | This issue is duplicated by MENT-813 [ MENT-813 ] |
Link | This issue includes MENT-813 [ MENT-813 ] |
Fix Version/s | 10.6 [ 24027 ] | |
Fix Version/s | N/A [ 23617 ] |
Assignee | Ralf Gebhardt [ ralf.gebhardt@mariadb.com ] | Kentoku Shiba [ kentoku ] |
Fix Version/s | 10.6 [ 24027 ] |
Fix Version/s | 10.7 [ 25034 ] |
Link | This issue is duplicated by MENT-813 [ MENT-813 ] |
Fix Version/s | 10.7 [ 25034 ] |
Assignee | Kentoku Shiba [ kentoku ] | Nayuta Yanagisawa [ JIRAUSER47117 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Fix Version/s | 10.8 [ 26501 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Affects Version/s | 10.8 [ 26501 ] | |
Affects Version/s | 10.4 [ 23604 ] | |
Affects Version/s | 10.3 [ 23605 ] | |
Affects Version/s | 10.5 [ 23608 ] |
Component/s | Storage Engine - Spider [ 10132 ] | |
Component/s | Storage Engine - Spider [ 14994 ] | |
Fix Version/s | 10.8 [ 26121 ] | |
Fix Version/s | 10.8 [ 26501 ] | |
Key |
|
|
Affects Version/s | 10.8 [ 26501 ] | |
Project | MariaDB Enterprise [ 11500 ] | MariaDB Server [ 10000 ] |
Summary | Implement proper table options for SPIDER | Spider: specify connection to data node by engine-defined attributes |
Description |
With Spider, you currently have to set its options in the {{COMMENT}} field for the Spider table. For example:
{code:sql} CREATE TABLE spider_hq_sales.invoices ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, customer_id INT, branch_id INT, invoice_date DATETIME(6), invoice_total DECIMAL(13, 2), payment_method ENUM('NONE', 'CASH', 'WIRE_TRANSFER', 'CREDIT_CARD', 'GIFT_CARD') ) ENGINE=Spider COMMENT='server "hq_server", table "invoices"'; {code} However, I think that it would be more user-friendly if Spider supported proper table options. For example, the above statement could be transformed into something like this: {code:sql} CREATE TABLE spider_hq_sales.invoices ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, customer_id INT, branch_id INT, invoice_date DATETIME(6), invoice_total DECIMAL(13, 2), payment_method ENUM('NONE', 'CASH', 'WIRE_TRANSFER', 'CREDIT_CARD', 'GIFT_CARD') ) ENGINE=Spider REMOTE_SERVER="hq_server" REMOTE_TABLE="invoices"; {code} It would at least be nice to transform the most common options into table options, such as: * server - This is the server name defined in the CREATE SERVER statement. * table - The remote table to query. * ssl_ca - The path to the TLS certificate authority chain. * ssl_capath - The path to the TLS certificate authority chain. * ssl_cert - The path to the TLS client certificate. * ssl_key - The path to the TLS private key. * ssl_cipher - The path to the TLS certificate authority chain. * wrapper - The foreign data wrapper should be mariadb or mysql. * host - The hostname or IP address to use when connecting to the remote server. This option is mututally exclusive with socket. * port - The port to use when connecting to the remote server. This option is mututally exclusive with socket. * socket - The path to the Unix socket file to use when connecting to the remote server. This option is mututally exclusive with user and port. * user - The username to use when connecting to the remote server. * password - The password to use when connecting to the remote server. * database - The database to select when connecting to the remote server. In addition to these common ones, Spider also has a lot of less common ones. It may be a good idea to transform some others into proper table options as well. You can view the full list in the source code here: https://github.com/MariaDB/server/blob/mariadb-10.4.13/storage/spider/spd_table.cc#L2211 |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine attribute || DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| |REMOTE_WRAPPER|wrapper| SSL-related parameters might be essential but I believe that it should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine attribute || DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| |REMOTE_WRAPPER|wrapper| SSL-related parameters might be essential but I believe that it should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| |REMOTE_WRAPPER|wrapper| SSL-related parameters might be essential but I believe that it should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| |REMOTE_WRAPPER|wrapper| SSL-related parameters might be essential but I believe that it should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| |REMOTE_WRAPPER|wrapper| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| |REMOTE_WRAPPER|wrapper| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
Link | This issue includes MENT-813 [ MENT-813 ] |
Link | This issue relates to MENT-813 [ MENT-813 ] |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes (see MENT-762). Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes (see MENT-762). Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/ We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| |REMOTE_HOST|host| |REMOTE_PORT|port| |REMOTE_USER|user| |REMMOTE_PASSWORD|password| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |REMOTE_SERVER| srv| |REMOTE_DATABASE| database| |REMOTE_TABLE|tbl| |REMOTE_HOST|host| |REMOTE_PORT|port| |REMOTE_USER|user| |REMMOTE_PASSWORD|password| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE|}}tbl| |{{REMOTE_HOST}}|host| |{{REMOTE_PORT}}|port| |{{REMOTE_USER}}|user| |{{REMMOTE_PASSWORD}}|password| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE|}}tbl| |{{REMOTE_HOST}}|host| |{{REMOTE_PORT}}|port| |{{REMOTE_USER}}|user| |{{REMMOTE_PASSWORD}}|password| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| |{{REMOTE_HOST}}|host| |{{REMOTE_PORT}}|port| |{{REMOTE_USER}}|user| |{{REMMOTE_PASSWORD}}|password| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| |{{REMOTE_HOST}}|host| |{{REMOTE_PORT}}|port| |{{REMOTE_USER}}|user| |{{REMMOTE_PASSWORD}}|password| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| |{{REMOTE_HOST}}|host| |{{REMOTE_PORT}}|port| |{{REMOTE_USER}}|user| |{{REMOTE_PASSWORD}}|password| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| |{{REMOTE_HOST}}|host| |{{REMOTE_PORT}}|port| |{{REMOTE_USER}}|user| |{{REMOTE_PASSWORD}}|password| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TBD: * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified. TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} If, for example, both {COMMENT='"table" TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} If, for example, both {COMMENT='"table" TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing DNS parameters|https://mariadb.com/kb/en/spider-server-system-variables/] because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing DNS parameters|https://mariadb.com/kb/en/spider-server-system-variables/] because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing DSN parameters|https://mariadb.com/kb/en/spider-server-system-variables/] because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.
We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing DSN parameters|https://mariadb.com/kb/en/spider-server-system-variables/] because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (x) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. The corresponding options cannot be specified by COMMENT and engine-defined options at the same time. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. The corresponding options cannot be specified by COMMENT and engine-defined options at the same time. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, COMMENT takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, COMMENT takes precedence. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (x) Make Spider to use the attributes; |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (/) Make Spider to use the attributes; * (x) Write comprehensive test cases; * (x) Refactor entire patch. |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (/) Make Spider to use the attributes; * (x) Write comprehensive test cases; * (x) Refactor entire patch. |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (/) Make Spider to use the attributes; * (/) Write comprehensive test cases; * (/) Refactor entire patch. |
Assignee | Nayuta Yanagisawa [ JIRAUSER47117 ] | Alexey Botchkov [ holyfoot ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (/) Make Spider to use the attributes; * (/) Write comprehensive test cases; * (/) Refactor entire patch. |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should encourage the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (/) Make Spider to use the attributes; * (/) Write comprehensive test cases; * (/) Refactor entire patch. |
Link |
This issue relates to |
Workflow | MariaDB v3 [ 108594 ] | MariaDB v4 [ 131777 ] |
Link |
This issue relates to |
Assignee | Alexey Botchkov [ holyfoot ] | Nayuta Yanagisawa [ JIRAUSER47117 ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Status | Stalled [ 10000 ] | In Progress [ 3 ] |
Assignee | Nayuta Yanagisawa [ JIRAUSER47117 ] | Alexey Botchkov [ holyfoot ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Assignee | Alexey Botchkov [ holyfoot ] | Nayuta Yanagisawa [ JIRAUSER47117 ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Status | Stalled [ 10000 ] | In Testing [ 10301 ] |
Assignee | Nayuta Yanagisawa [ JIRAUSER47117 ] |
Assignee | Roel Van de Paar [ roel ] |
Description |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should encourage the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (/) Make Spider to use the attributes; * (/) Write comprehensive test cases; * (/) Refactor entire patch. |
The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.
* https://mariadb.com/kb/en/spider-table-system-variables/ * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter) We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later. I believe that the following attributes are enough: || engine-defined attribute || corresponding DNS parameter || |{{REMOTE_SERVER}}| srv| |{{REMOTE_DATABASE}}| database| |{{REMOTE_TABLE}}|tbl| Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should encourage the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified for a single table or a single partition, the Spider returns an error. Example: {code:sql} CREATE TABLE `users` ( `id` INT, `name` VARCHAR(255) ) ENGINE=SPIDER REMOTE_TABLE="users" PARTITION BY HASH(id) ( PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1", PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2", PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1" ); {code} TODO: * (/) Introduce engine-defined attributes described above; * (/) Make Spider to use the attributes; * (/) Write comprehensive test cases; * (/) Refactor entire patch. |
Link | This issue is blocked by MDEV-27400 [ MDEV-27400 ] |
Link | This issue relates to MDEV-27400 [ MDEV-27400 ] |
Link | This issue is blocked by MDEV-27400 [ MDEV-27400 ] |
Link |
This issue causes |
Link | This issue relates to MDEV-27564 [ MDEV-27564 ] |
Link |
This issue is part of |
Assignee | Roel Van de Paar [ roel ] | Sergei Golubchik [ serg ] |
Status | In Testing [ 10301 ] | Stalled [ 10000 ] |
Link |
This issue causes |
Assignee | Sergei Golubchik [ serg ] | Nayuta Yanagisawa [ JIRAUSER47117 ] |
Priority | Critical [ 2 ] | Blocker [ 1 ] |
Fix Version/s | 10.8.1 [ 26815 ] | |
Fix Version/s | 10.8 [ 26121 ] | |
Resolution | Done [ 10200 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue relates to |
Labels | Preview_10.8 |
Link |
This issue relates to |
Link | This issue relates to MDEV-31146 [ MDEV-31146 ] |