the-other-tim-brown commented on code in PR #12982:
URL: https://github.com/apache/hudi/pull/12982#discussion_r2028845948
##########
hudi-common/src/main/java/org/apache/hudi/common/table/view/AbstractTableFileSystemView.java:
##########
@@ -177,31 +178,39 @@ public List<HoodieFileGroup>
addFilesToView(List<StoragePathInfo> statuses) {
* Adds the provided statuses into the file system view for a single
partition, and also caches it inside this object.
*/
public List<HoodieFileGroup> addFilesToView(String partitionPath,
List<StoragePathInfo> statuses) {
- HoodieTimer timer = HoodieTimer.start();
- List<HoodieFileGroup> fileGroups = buildFileGroups(partitionPath,
statuses, visibleCommitsAndCompactionTimeline, true);
- long fgBuildTimeTakenMs = timer.endTimer();
- timer.startTimer();
- // Group by partition for efficient updates for both InMemory and
DiskBased structures.
-
fileGroups.stream().collect(Collectors.groupingBy(HoodieFileGroup::getPartitionPath))
- .forEach((partition, value) -> {
- if (!isPartitionAvailableInStore(partition)) {
- if (bootstrapIndex.useIndex()) {
- try (BootstrapIndex.IndexReader reader =
bootstrapIndex.createReader()) {
- LOG.info("Bootstrap Index available for partition {}",
partition);
- List<BootstrapFileMapping> sourceFileMappings =
- reader.getSourceFileMappingForPartition(partition);
- addBootstrapBaseFileMapping(sourceFileMappings.stream()
- .map(s -> new BootstrapBaseFileMapping(new
HoodieFileGroupId(s.getPartitionPath(),
- s.getFileId()), s.getBootstrapFileStatus())));
+ try {
+ writeLock.lock();
Review Comment:
@danny0405 the remote timeline service only works for a single write client
today. I have tried using it for multiple and found that the timeline hash will
never match causing thrashing if you have two clients which renders it
unusable. So, we can assume that this scenario is not one supported today and
that the subsequent requests are all sent with the same timeline hash and
therefore want the same view of the table.
Also, like I mentioned before the diagram does not make sense because
`rl-start` is before `wl-end`. This is just not possible unless you are
implying the java library is broken.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]