[ 
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)

Reply via email to