You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by GitBox <gi...@apache.org> on 2022/10/10 06:30:36 UTC

[GitHub] [shardingsphere] wsm12138 opened a new issue, #20077: The same scene,create view sometimes success,sometimes failed.

wsm12138 opened a new issue, #20077:
URL: https://github.com/apache/shardingsphere/issues/20077

   ## Bug Report
   
   
   ### Which version of ShardingSphere did you use?
   ```
   ShardingSphere-5.1.3-SNAPSHOT
   Commit ID: 9dd0d3990c849d50c17c6dc7c92ec2d4ce0ad7e5
   ```
   ### Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?
   ShardingSphere-Proxy
   ### Expected behavior
   Nomatter drop ds0's table or ds1's table,when proxy execute same sql. the result should be a same one.
   ### Actual behavior
   Drop ds0's table , proxy execute create  view, create success.
   Drop ds1's table , proxy execute create  view, create failed.
   ### Reason analyze (If you can)
   Maybe we need DDL transaction to deal with it.
   ### Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.
   ```
   databaseName: sharding_db
   #
   dataSources:
     ds_0:
       url: jdbc:opengauss://127.0.0.1:15432/demo_ds_0?batchMode=on
       username: gaussdb
       password: Secretpassword@123
       connectionTimeoutMilliseconds: 30000
       idleTimeoutMilliseconds: 60000
       maxLifetimeMilliseconds: 1800000
       maxPoolSize: 50
       minPoolSize: 1
     ds_1:
       url: jdbc:opengauss://127.0.0.1:15432/demo_ds_1?batchMode=on
       username: gaussdb
       password: Secretpassword@123
       connectionTimeoutMilliseconds: 30000
       idleTimeoutMilliseconds: 60000
       maxLifetimeMilliseconds: 1800000
       maxPoolSize: 50
       minPoolSize: 1
   
   rules:
   - !SHARDING
     tables:
       t_order:
         actualDataNodes: ds_${0..1}.t_order_${0..1}
         tableStrategy:
           standard:
             shardingColumn: order_id
             shardingAlgorithmName: t_order_inline
         keyGenerateStrategy:
           column: order_id
           keyGeneratorName: snowflake
       t_order_view:
         actualDataNodes: ds_${0..1}.t_order_view_${0..1}
         tableStrategy:
           standard:
             shardingColumn: order_id
             shardingAlgorithmName: t_order_view_inline
       t_order_view2:
         actualDataNodes: ds_${0..1}.t_order_view2_${0..1}
         tableStrategy:
           standard:
             shardingColumn: order_id
             shardingAlgorithmName: t_order_view2_inline
       t_item:
         actualDataNodes: ds_${0..1}.t_item_${0..1}
         tableStrategy:
           standard:
             shardingColumn: id
             shardingAlgorithmName: t_item_inline
         keyGenerateStrategy:
           column: order_id
           keyGeneratorName: snowflake
     bindingTables:
       - t_order,t_order_view,t_order_view2
     defaultDatabaseStrategy:
       standard:
         shardingColumn: user_id
         shardingAlgorithmName: database_inline
     defaultTableStrategy:
       none:
   
     shardingAlgorithms:
       database_inline:
         type: INLINE
         props:
           algorithm-expression: ds_${user_id % 2}
       t_order_inline:
         type: INLINE
         props:
           algorithm-expression: t_order_${order_id % 2}
       t_order_view_inline:
         type: INLINE
         props:
           algorithm-expression: t_order_view_${order_id % 2}
       t_order_view2_inline:
         type: INLINE
         props:
           algorithm-expression: t_order_view2_${order_id % 2}
       t_item_inline:
         type: INLINE
         props:
           algorithm-expression: t_item_${id % 2}
       
     keyGenerators:
       snowflake:
         type: SNOWFLAKE
   ```
   ```
   mode:
     type: Cluster
     repository:
       type: ZooKeeper
       props:
         namespace: governance_ds
         server-lists: localhost:2181
         retryIntervalMilliseconds: 500
         timeToLiveSeconds: 60
         maxRetries: 3
         operationTimeoutMilliseconds: 500
     overwrite: true
   
   rules:
     - !AUTHORITY
       users:
         - root@%:root
         - sharding@:sharding
       provider:
         type: ALL_PERMITTED
   
   props:
   
   ```
   ##### case 1
   -  proxy create sharding table  
   CREATE TABLE t_order (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
   - connect db
   demo_ds_1=> drop table t_order_1;
   - proxy create view
   - no error,but we found demo_ds_1 's t_order_view_1 don't create sucess
   sharding_db=> CREATE VIEW t_order_view as select order_id, status from t_order where order_id >= 1000;
   CREATE VIEW
   - have error,other view deleted
   sharding_db=> drop view t_order_view;
   ERROR:  view "t_order_view_1" does not exist
   sharding_db=> drop table t_order;
   ERROR:  table "t_order_1" does not exist
   
   ##### case2
   -  proxy create sharding table  
   REFRESH TABLE METADATA;
   CREATE TABLE t_order (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
   - connect db
   demo_ds_0=> drop table t_order_0;
   - proxy create view
   - have error,in fact create view failed
   sharding_db=> CREATE VIEW t_order_view as select order_id, status from t_order where order_id >= 1000;
   ERROR:  relation "t_order_0" does not exist on gaussdb
   LINE 1: ...EW t_order_view as select order_id, status from t_order wher...
   ### Example codes for reproduce this issue (such as a github link).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [shardingsphere] tuichenchuxin commented on issue #20077: The same scene,create view sometimes success,sometimes failed.

Posted by GitBox <gi...@apache.org>.
tuichenchuxin commented on issue #20077:
URL: https://github.com/apache/shardingsphere/issues/20077#issuecomment-1211706164

   This case may be supported if we have gloable DDL transaction.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [shardingsphere] github-actions[bot] closed issue #20077: The same scene,create view sometimes success,sometimes failed.

Posted by GitBox <gi...@apache.org>.
github-actions[bot] closed issue #20077: The same scene,create view sometimes success,sometimes failed.
URL: https://github.com/apache/shardingsphere/issues/20077


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [shardingsphere] github-actions[bot] commented on issue #20077: The same scene,create view sometimes success,sometimes failed.

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on issue #20077:
URL: https://github.com/apache/shardingsphere/issues/20077#issuecomment-1272348917

   Hello , this issue has not received a reply for several days.
   This issue is supposed to be closed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [shardingsphere] tuichenchuxin commented on issue #20077: The same scene,create view sometimes success,sometimes failed.

Posted by GitBox <gi...@apache.org>.
tuichenchuxin commented on issue #20077:
URL: https://github.com/apache/shardingsphere/issues/20077#issuecomment-1211704404

   I investigate this issue.
   We execute with parallel threads. When drop ds_0's table. Then actual create view is two threads. ds_0 is main thread. ds_1 is executed by asynchronous thread.
   So if the main thread execution fast, then ds1's connection will be recycled, ds_1 won't execute successfully. But if main thread execute slow, Then ds_1 will be executed.
   So in this case, whether or not ds_1 executes successfully is uncertain.
   
   When we drop ds_1's table. Then main thread can always executed correctly.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org