diff options
-rw-r--r-- | src/main/java/com/amazon/carbonado/repo/indexed/ManagedIndex.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/com/amazon/carbonado/repo/indexed/ManagedIndex.java b/src/main/java/com/amazon/carbonado/repo/indexed/ManagedIndex.java index dbc7c06..1da57aa 100644 --- a/src/main/java/com/amazon/carbonado/repo/indexed/ManagedIndex.java +++ b/src/main/java/com/amazon/carbonado/repo/indexed/ManagedIndex.java @@ -294,6 +294,22 @@ class ManagedIndex<S extends Storable> implements IndexEntryAccessor<S> { .orderBy(naturalOrdering(mMasterStorage.getStorableType()));
}
+ // Quick check to see if any records exist in master.
+ {
+ Transaction txn = mRepository.enterTopTransaction(IsolationLevel.READ_COMMITTED);
+ try {
+ if (!masterQuery.exists()) {
+ if (mIndexEntryStorage.query().exists()) {
+ txn.exit();
+ mIndexEntryStorage.truncate();
+ }
+ return;
+ }
+ } finally {
+ txn.exit();
+ }
+ }
+
// Enter top transaction with isolation level of none to make sure
// preload operation does not run in a long nested transaction.
Transaction txn = mRepository.enterTopTransaction(IsolationLevel.NONE);
|