[jira] [Updated] (CARBONDATA-3874) segment mismatch between maintable and SI table when load with concurrency

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Updated] (CARBONDATA-3874) segment mismatch between maintable and SI table when load with concurrency

Akash R Nilugal (Jira)

     [ https://issues.apache.org/jira/browse/CARBONDATA-3874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mahesh Raju Somalaraju updated CARBONDATA-3874:
-----------------------------------------------
    Description:
1. In concurrent loads, if one of the load failed for SI table then 'isSITableEnabled' will be disabled(isSITableEnabled = false).
 So in failed SI event listener case we are just checking SI enabled is true(isSITableEnabled == true) then we are not loading current load to SI table. In concurrent scenarios, this might be happening as SI enabled state is true but segment difference may exist.

So instead of checking just SI enabled is true(isSITableEnabled == true) we should also check if any segment difference between maintable and SI table. The final output flag checking will be as follows.
``
 if ( isSITableEnabled == true || mainTblAndSidiff == true ) {
 ---
 }
``

*Defect reproduce steps:*
1) Create main table
2) Create multiple SI tables
3) Load the data multiple times [ Make sure one of load should fail for one of SI table]
4) change the flag (isSITableEnabled == true) for failed segment by alter command.
5) Load data
6) check the segment difference between main table and SI table.

 

  was:
segment mismatch between maintable and SI table when load with concurrency

Added control check for SI enable flag of SI tables in concurrent scenarios.

 


> segment mismatch between maintable and SI table when load with concurrency
> --------------------------------------------------------------------------
>
>                 Key: CARBONDATA-3874
>                 URL: https://issues.apache.org/jira/browse/CARBONDATA-3874
>             Project: CarbonData
>          Issue Type: Bug
>            Reporter: Mahesh Raju Somalaraju
>            Priority: Minor
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> 1. In concurrent loads, if one of the load failed for SI table then 'isSITableEnabled' will be disabled(isSITableEnabled = false).
>  So in failed SI event listener case we are just checking SI enabled is true(isSITableEnabled == true) then we are not loading current load to SI table. In concurrent scenarios, this might be happening as SI enabled state is true but segment difference may exist.
> So instead of checking just SI enabled is true(isSITableEnabled == true) we should also check if any segment difference between maintable and SI table. The final output flag checking will be as follows.
> ``
>  if ( isSITableEnabled == true || mainTblAndSidiff == true ) {
>  ---
>  }
> ``
> *Defect reproduce steps:*
> 1) Create main table
> 2) Create multiple SI tables
> 3) Load the data multiple times [ Make sure one of load should fail for one of SI table]
> 4) change the flag (isSITableEnabled == true) for failed segment by alter command.
> 5) Load data
> 6) check the segment difference between main table and SI table.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)