Eli Mesika has posted comments on this change.
Change subject: engine: SearchQuery generates slow query on vds_with_tags and
storage_domains
......................................................................
Patch Set 8:
(10 comments)
....................................................
File
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/SearchQueryTest.java
Line 149: }
Line 150:
Line 151: private static String
getQuotaRegexString(SearchObjectAutoCompleter search) {
Line 152: String query = ".*" +
search.getDefaultSort(SearchObjects.QUOTA_OBJ_NAME) + ".*"
Line 153: +
search.getRelatedTableNameWithOutTags(SearchObjects.QUOTA_OBJ_NAME) + ".* ";
If you already modified it .... please use StringBuilder
Line 154: return query;
Line 155:
Line 156: }
Line 157:
Line 212: * @param search
Line 213: */
Line 214: private static String
getDiskImageRegexString(SearchObjectAutoCompleter search) {
Line 215: String query = ".*" +
search.getDefaultSort(SearchObjects.DISK_OBJ_NAME) + ".*"
Line 216: +
search.getRelatedTableNameWithOutTags(SearchObjects.DISK_OBJ_NAME) + ".* ";
same
Line 217: return query;
Line 218: }
Line 219:
Line 220: /**
Line 253: * @param search
Line 254: */
Line 255: private static String getVMRegexString(SearchObjectAutoCompleter
search) {
Line 256: String query = ".*" +
search.getDefaultSort(SearchObjects.VM_OBJ_NAME) + ".*"
Line 257: +
search.getRelatedTableNameWithOutTags(SearchObjects.VM_OBJ_NAME) + ".* ";
same
Line 258: return query;
Line 259: }
Line 260:
Line 261: /**
Line 264: * @param search
Line 265: */
Line 266: private static String getVdsRegexString(SearchObjectAutoCompleter
search) {
Line 267: String query = ".*" +
search.getDefaultSort(SearchObjects.VDS_OBJ_NAME) + ".*"
Line 268: +
search.getRelatedTableNameWithOutTags(SearchObjects.VDS_OBJ_NAME) + ".* ";
same
Line 269: return query;
Line 270: }
Line 271:
Line 272: /**
Line 275: */
Line 276: private static String
getVdsGroupRegexString(SearchObjectAutoCompleter search) {
Line 277: String query = ".*" +
search.getDefaultSort(SearchObjects.VDC_CLUSTER_OBJ_NAME) + ".*"
Line 278: +
search.getRelatedTableNameWithOutTags(SearchObjects.VDC_CLUSTER_OBJ_NAME) + ".*
";
Line 279: return query;
same
Line 280: }
Line 281:
Line 282: /**
Line 283: * Regex string which contains all of the storage pool properties.
Line 286: */
Line 287: private static String
getStoragePoolRegexString(SearchObjectAutoCompleter search) {
Line 288: String query = ".*" +
search.getDefaultSort(SearchObjects.VDC_STORAGE_POOL_OBJ_NAME) + ".*"
Line 289: +
search.getRelatedTableNameWithOutTags(SearchObjects.VDC_STORAGE_POOL_OBJ_NAME)
+ ".* ";
Line 290: return query;
same
Line 291: }
Line 292:
Line 293: /**
Line 294: * Regex string which contains all of the Gluster Volume
properties.
Line 296: * @param search
Line 297: */
Line 298: private static String
getGlusterVolumeRegexString(SearchObjectAutoCompleter search) {
Line 299: String query = ".*" +
search.getDefaultSort(SearchObjects.GLUSTER_VOLUME_OBJ_NAME) + ".*"
Line 300: +
search.getRelatedTableNameWithOutTags(SearchObjects.GLUSTER_VOLUME_OBJ_NAME) +
".* ";
same
Line 301: return query;
Line 302:
Line 303: // return ".*" +
search.getDefaultSort(SearchObjects.GLUSTER_VOLUME_OBJ_NAME) + ".*"
Line 304: // +
search.getRelatedTableNameWithOutTags(SearchObjects.GLUSTER_VOLUME_OBJ_NAME) +
".* "
Line 301: return query;
Line 302:
Line 303: // return ".*" +
search.getDefaultSort(SearchObjects.GLUSTER_VOLUME_OBJ_NAME) + ".*"
Line 304: // +
search.getRelatedTableNameWithOutTags(SearchObjects.GLUSTER_VOLUME_OBJ_NAME) +
".* "
Line 305: // +
search.getPrimeryKeyName(SearchObjects.GLUSTER_VOLUME_OBJ_NAME) + ".*";
Please remove commented code
Line 306: }
Line 307:
Line 308: /**
Line 309: * Regex string which contains all of the Network properties.
Line 310: *
Line 311: * @param search
Line 312: */
Line 313: private static String
getNetworkRegexString(SearchObjectAutoCompleter search) {
Line 314: String query = ".*" +
search.getDefaultSort(SearchObjects.NETWORK_OBJ_NAME) + ".*"
same
Line 315: +
search.getRelatedTableNameWithOutTags(SearchObjects.NETWORK_OBJ_NAME) + ".* ";
Line 316: return query;
Line 317: }
Line 318:
....................................................
File
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SyntaxChecker.java
Line 905: String tableNameWithOutTags =
mSearchObjectAC.getRelatedTableNameWithOutTags(searchObjStr);
Line 906:
Line 907: boolean generalQuery = false;
Line 908: String innerQuery;
Line 909: if (!wherePhrase.toString().contains("tag")
I wonder if that is good enough :
1) The wherePharse in this point has also the values IIRC , what if we have
"tag" in a value ?
2) Isn't the table name you are looking for "tags" (not "tag")
3) Can we do a more sophisticated check ?
Line 910: && !wherePhrase.toString().contains(".")
Line 911: &&
(searchObjStr.equals(SearchObjects.VDS_OBJ_NAME) ||
searchObjStr.equals(SearchObjects.VDC_STORAGE_DOMAIN_OBJ_NAME))) {
Line 912: innerQuery =
Line 913: StringFormat.format("SELECT %1$s.%2$s FROM
%3$s %4$s",
--
To view, visit http://gerrit.ovirt.org/20914
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: Ia0b7a4912d031c4cdafd636126730ea81d8d2bdd
Gerrit-PatchSet: 8
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Liran Zelkha <[email protected]>
Gerrit-Reviewer: Barak Azulay <[email protected]>
Gerrit-Reviewer: Eli Mesika <[email protected]>
Gerrit-Reviewer: Liran Zelkha <[email protected]>
Gerrit-Reviewer: Maor Lipchuk <[email protected]>
Gerrit-Reviewer: Ravi Nori <[email protected]>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches