commit | 3c4c05d4f28321f571f6f05b013bf7d3507dc4bb | [log] [tgz] |
---|---|---|
author | ajantha-bhat <ajanthabhat@gmail.com> | Fri Jun 26 19:59:59 2020 +0530 |
committer | QiangCai <qiangcai@qq.com> | Thu Jul 23 17:29:17 2020 +0800 |
tree | 7695587b3e631a195de2705328cf933b0f2143c0 | |
parent | 810d98c5a2b5aed70f80add1218ecb5c4c6498f4 [diff] |
[CARBONDATA-3900][CARBONDATA-3882][CARBONDATA-3881] Fix multiple concurrent issues in table status lock and segment lock for SI and maintable Why is this PR needed? [CARBONDATA-3900] Fix maintable load failure in concurrent load and compaction scenario Main table load flow segment lock is released before updating the table status success. So, concurrent operation was considering this segment as stale segment (as segment lock is not present) and cleaning it. Leading to unable to get file status exception. [CARBONDATA-3882] Fix wrong lock and missing Table status lock in some SI flows In updateLoadMetadataWithMergeStatus, we want update SI table status, but lock is acquired on main table triggerCompaction, updateTableStatusForIndexTables -> table status write is happening without lock [CARBONDATA-3881] Fix concurrent main table compaction and SI load issue Consider a scenario, where segmentX has loaded to main table but failed to load to SI table. So, while loading another segmentY, we reload failed SI segmentX. this time if the segmentX is compacted in main table and clean files executed on it. SI load will fail and segment id will not be found in segmentMap of SI and it throws exception. What changes were proposed in this PR? for [CARBONDATA-3900] release segment lock after main table is updated. for [CARBONDATA-3882] In updateLoadMetadataWithMergeStatus, take a lock on SI table triggerCompaction, updateTableStatusForIndexTables -> add a lock for table status write for [CARBONDATA-3881] just before reloading the failed SI segment. check if it is valid segment in main table. Does this PR introduce any user interface change? No Is any new testcase added? No This closes #3810
Apache CarbonData is an indexed columnar data store solution for fast analytics on big data platform, e.g.Apache Hadoop, Apache Spark, etc.
You can find the latest CarbonData document and learn more at: http://carbondata.apache.org
CarbonData file format is a columnar store in HDFS, it has many features that a modern columnar format has, such as splittable, compression schema ,complex data type etc, and CarbonData has following unique features:
CarbonData is built using Apache Maven, to build CarbonData
Some features are marked as experimental because the syntax/implementation might change in the future.
This is an active open source project for everyone, and we are always open to people who want to use this system or contribute to it. This guide document introduce how to contribute to CarbonData.
To get involved in CarbonData:
Apache CarbonData is an open source project of The Apache Software Foundation (ASF).