From 48643795b809ba748d4439ec602f38d6e77675c5 Mon Sep 17 00:00:00 2001 From: Jian Xu Date: Tue, 20 Mar 2018 12:06:15 -0700 Subject: [PATCH] Checking storage level before persisting preppedRecords --- .../src/main/java/com/uber/hoodie/HoodieWriteClient.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hoodie-client/src/main/java/com/uber/hoodie/HoodieWriteClient.java b/hoodie-client/src/main/java/com/uber/hoodie/HoodieWriteClient.java index bf81a1faa..bb5613f2a 100644 --- a/hoodie-client/src/main/java/com/uber/hoodie/HoodieWriteClient.java +++ b/hoodie-client/src/main/java/com/uber/hoodie/HoodieWriteClient.java @@ -421,7 +421,12 @@ public class HoodieWriteClient implements Seriali final boolean isUpsert) { // Cache the tagged records, so we don't end up computing both - preppedRecords.persist(StorageLevel.MEMORY_AND_DISK_SER()); + // TODO: Consistent contract in HoodieWriteClient regarding preppedRecord storage level handling + if (preppedRecords.getStorageLevel() == StorageLevel.NONE()) { + preppedRecords.persist(StorageLevel.MEMORY_AND_DISK_SER()); + } else { + logger.info("RDD PreppedRecords was persisted at: " + preppedRecords.getStorageLevel()); + } WorkloadProfile profile = null; if (hoodieTable.isWorkloadProfileNeeded()) {