Update framework from jetpack.
Changes included:
*7535e73: Populate the flags for IcingSearchEngineOptions.
Bug: 193919210
Test: presubmit
Change-Id: Iee220d2d4c10c7da230b19c605aa5cf5817f0ac8
diff --git a/service/java/com/android/server/appsearch/FrameworkIcingOptionsConfig.java b/service/java/com/android/server/appsearch/FrameworkIcingOptionsConfig.java
index 5ea9a04..fec5688 100644
--- a/service/java/com/android/server/appsearch/FrameworkIcingOptionsConfig.java
+++ b/service/java/com/android/server/appsearch/FrameworkIcingOptionsConfig.java
@@ -35,6 +35,9 @@
"icing_optimize_rebuild_index_threshold";
static final String KEY_ICING_COMPRESSION_LEVEL = "icing_compression_level";
static final String KEY_ICING_USE_READ_ONLY_SEARCH = "icing_use_read_only_search";
+ static final String KEY_ICING_USE_PRE_MAPPING_WITH_FILE_BACKED_VECTOR =
+ "icing_use_pre_mapping_with_file_backed_vector";
+ static final String KEY_ICING_USE_PERSISTENT_HASHMAP = "icing_use_persistent_hashmap";
@Override
public int getMaxTokenLength() {
@@ -79,4 +82,17 @@
return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_APPSEARCH,
KEY_ICING_USE_READ_ONLY_SEARCH, true);
}
+
+ @Override
+ public boolean getUsePreMappingWithFileBackedVector() {
+ return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_APPSEARCH,
+ KEY_ICING_USE_PRE_MAPPING_WITH_FILE_BACKED_VECTOR,
+ DEFAULT_USE_PREMAPPING_WITH_FILE_BACKED_VECTOR);
+ }
+
+ @Override
+ public boolean getUsePersistentHashMap() {
+ return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_APPSEARCH,
+ KEY_ICING_USE_PERSISTENT_HASHMAP, DEFAULT_USE_PERSISTENT_HASH_MAP);
+ }
}
diff --git a/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java b/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java
index d05fc01..8a792dd 100644
--- a/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java
+++ b/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java
@@ -318,6 +318,9 @@
.setCompressionLevel(icingOptionsConfig.getCompressionLevel())
.setAllowCircularSchemaDefinitions(
icingOptionsConfig.getAllowCircularSchemaDefinitions())
+ .setPreMappingFbv(
+ icingOptionsConfig.getUsePreMappingWithFileBackedVector())
+ .setUsePersistentHashMap(icingOptionsConfig.getUsePersistentHashMap())
.build();
LogUtil.piiTrace(TAG, "Constructing IcingSearchEngine, request", options);
mIcingSearchEngineLocked = new IcingSearchEngine(options);
diff --git a/service/java/com/android/server/appsearch/external/localstorage/IcingOptionsConfig.java b/service/java/com/android/server/appsearch/external/localstorage/IcingOptionsConfig.java
index 21906b4..cf371f9 100644
--- a/service/java/com/android/server/appsearch/external/localstorage/IcingOptionsConfig.java
+++ b/service/java/com/android/server/appsearch/external/localstorage/IcingOptionsConfig.java
@@ -40,6 +40,10 @@
*/
int DEFAULT_COMPRESSION_LEVEL = 3;
+ boolean DEFAULT_USE_PREMAPPING_WITH_FILE_BACKED_VECTOR = false;
+
+ boolean DEFAULT_USE_PERSISTENT_HASH_MAP = false;
+
/**
* The maximum allowable token length. All tokens in excess of this size will be truncated to
* max_token_length before being indexed.
@@ -109,4 +113,21 @@
* around code paths that write changes to Icing during Search.
*/
boolean getUseReadOnlySearch();
+
+ /**
+ * Flag for {@link com.google.android.icing.proto.IcingSearchEngineOptions}.
+ *
+ * <p>Whether or not to pre-map the potential memory region used by the PersistentHashMap. This
+ * will avoid the need to re-map the mmapping used by PersistentHashMap whenever the underlying
+ * storage grows.
+ */
+ boolean getUsePreMappingWithFileBackedVector();
+
+ /**
+ * Flag for {@link com.google.android.icing.proto.IcingSearchEngineOptions}.
+ *
+ * <p>Whether or not to use the PersistentHashMap in the QualifiedIdTypeJoinableIndex. If false,
+ * we will use the old IcingDynamicTrie to store key value pairs.
+ */
+ boolean getUsePersistentHashMap();
}
diff --git a/synced_jetpack_sha.txt b/synced_jetpack_sha.txt
index 00c2b37..7000680 100644
--- a/synced_jetpack_sha.txt
+++ b/synced_jetpack_sha.txt
@@ -1 +1 @@
-91aa5fa159f29a200ce8e1c991bb3b43fcd9d16e
+7535e738afe8f0c0d320e68aa6ac739171c0a468
diff --git a/testing/mockingservicestests/src/com/android/server/appsearch/FrameworkIcingOptionsConfigTest.java b/testing/mockingservicestests/src/com/android/server/appsearch/FrameworkIcingOptionsConfigTest.java
index b2cd34a..d2fcde2 100644
--- a/testing/mockingservicestests/src/com/android/server/appsearch/FrameworkIcingOptionsConfigTest.java
+++ b/testing/mockingservicestests/src/com/android/server/appsearch/FrameworkIcingOptionsConfigTest.java
@@ -46,6 +46,10 @@
assertThat(icingOptionsConfig.getCompressionLevel()).isEqualTo(
IcingOptionsConfig.DEFAULT_COMPRESSION_LEVEL);
assertThat(icingOptionsConfig.getUseReadOnlySearch()).isEqualTo(true);
+ assertThat(icingOptionsConfig.getUsePreMappingWithFileBackedVector())
+ .isEqualTo(IcingOptionsConfig.DEFAULT_USE_PREMAPPING_WITH_FILE_BACKED_VECTOR);
+ assertThat(icingOptionsConfig.getUsePersistentHashMap())
+ .isEqualTo(IcingOptionsConfig.DEFAULT_USE_PERSISTENT_HASH_MAP);
}
@Test
@@ -74,6 +78,12 @@
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_APPSEARCH,
FrameworkIcingOptionsConfig.KEY_ICING_USE_READ_ONLY_SEARCH,
Boolean.toString(false), false);
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_APPSEARCH,
+ FrameworkIcingOptionsConfig.KEY_ICING_USE_PRE_MAPPING_WITH_FILE_BACKED_VECTOR,
+ Boolean.toString(false), false);
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_APPSEARCH,
+ FrameworkIcingOptionsConfig.KEY_ICING_USE_PERSISTENT_HASHMAP,
+ Boolean.toString(false), false);
FrameworkIcingOptionsConfig icingOptionsConfig = new FrameworkIcingOptionsConfig();
@@ -89,5 +99,7 @@
assertThat(icingOptionsConfig.getCompressionLevel()).isEqualTo(
IcingOptionsConfig.DEFAULT_COMPRESSION_LEVEL + 1);
assertThat(icingOptionsConfig.getUseReadOnlySearch()).isEqualTo(false);
+ assertThat(icingOptionsConfig.getUsePreMappingWithFileBackedVector()).isEqualTo(false);
+ assertThat(icingOptionsConfig.getUsePersistentHashMap()).isEqualTo(false);
}
}
diff --git a/testing/testutils/src/android/app/appsearch/testutil/external/DefaultIcingOptionsConfig.java b/testing/testutils/src/android/app/appsearch/testutil/external/DefaultIcingOptionsConfig.java
index dcf4242..70a9ea3 100644
--- a/testing/testutils/src/android/app/appsearch/testutil/external/DefaultIcingOptionsConfig.java
+++ b/testing/testutils/src/android/app/appsearch/testutil/external/DefaultIcingOptionsConfig.java
@@ -56,4 +56,14 @@
public boolean getUseReadOnlySearch() {
return true;
}
+
+ @Override
+ public boolean getUsePreMappingWithFileBackedVector() {
+ return true;
+ }
+
+ @Override
+ public boolean getUsePersistentHashMap() {
+ return true;
+ }
}