Skip to content

Cache discussions_to_be_resolved field for noteables

Igor Drozdov requested to merge id-cache-discussions-to-be-resolved into master

What does this MR do?

When a merge request is serialized it makes non-trivial SQL requests in order to serialize mergeable_discussions_state? field, something like:

  Note Load (1.8ms)  SELECT "notes".* FROM ((SELECT "notes".* FROM "notes" WHERE "notes"."noteable_id" = 274 AND "notes"."noteable_type" = 'MergeRequest')
UNION ALL
(SELECT "notes".* FROM "notes" WHERE "notes"."system" = FALSE AND "notes"."project_id" IN (35, 35) AND "notes"."noteable_type" = 'Commit' AND "notes"."commit_id" IN ('5d4187e54f5e0668a3fe3f9373af0f5543b8d403', 'a7a19fcbc6d31eafba3a06b810997d9d7e098789', 'ccd8599b6dcf1830f94012e21908f5d14ba078a1', '93b6d46bdedcac677190bd3c552b668ce28882e7', '7dd8aa0a78367b104b1abeff2085bc5ce2a17aeb', 'd69aadc436ee87914dfe123bf69a55700e730b79', 'fc452646632b9b2f88ae7e9dddf1be1e2c91f9f2', '7e0c4c14679652c9bcab64a95ab1c074b2410cda', '109d89c690d61b444085c4693bb6fbbb50f65fe7', '33c03ac8afe830d4b0bd328a6b24f3fece65736f', 'e41f6ad58d500ab3248626f29171ea43f955b81a', '944e5765e33d3920f9f23009ed2cb420d5875b81', '074ad24c7cc13064d041ac69f90e9ab3ea1a7367', '49e5b1cbfd1d56261b2b663131bee8964a403214', '50c0308494e044177d2d2ea7dfc4c12facd18bbd', 'd77b16c7b721336ba83f7172ec919930a6e144ce', '4cdc40061ac5060f241a0613a222f579c0c20e5d', '1cc6f8bc1b023065c069dbe23677136990206a1a', 'df53913197a5c0ec329488f6e8e9313c9c74402f', 'bc7a1134b29fad8847a66930a80ff1daebd406e2', '270e552a86f28a4e28da2f3538ef379a1dc351a8', '18dba8d07983c000f1d1b2cff6ccfcb2f0524a04', '62b7a575918e38e4160132062fe87f9586b1473d', '0dd2ee0896c86650ba3b65d7d1a19bd364aadc79', '6863df44065b5e76ec1b9646376cc613bab1037a', 'cc1b9087c393748cb04e2cfff1371c5f9edc51f0', '799562fd615d3a49b47ce3c804664320d81ee563', 'c67bf0dcd1c386a9ee62f16675a66425a4beb156', 'a31ebff6bc806d743dba754a4e7324f8b0f21020', 'd4b2c01ab858257da4b790078aef18909bf98c3e', '2f45f0926e94ae6b4c0b967e30f8b0a82284e0f0', '8f3cccc0fbf02ef465ac6d5f1c790fb0b77ebaae', '4beb15b46e2fcc9d99a55dfbb00ddded28e3a15c', 'a7aad0566c56ab2d5edda61c5607e8bc8a3ed670', '57ae74fd6f425b61f7844364adc3886cc70e12ac', '48ca69a33322612012628270b86f1f9b2bac897f', '9a262f5bab1f85d4ea3b3b10255dae814e10e921', 'bddf7d3b1d83dfd1cb30462abad1c1b3c434b052', '851b7fb1ceac32843816d0bb645fc2d27cc1b07f', '56a0e944980c0e8609b4fb6c241cb8b299ee6c1e', 'e7d81affd68c076a74bd65033326acd278c754c4', '2233a916e6085eba3d2df081e67af1311a2ef8ab', '2c3cb1036305d845373668c0cbb1186a60770b43', '534f837fe2369e926fc71a4771918e1d9196328d', 'c26d7058fa1bc3e5b7a8a6cc48b3d0bc2938e681', '5df50d81ee2ef9a5d545f44c0efe6d3e51863f7e', '3a3fd015900abc4764665ae2ac013a100978e186', 'abd852544e5ce11e217edf5716296753cd7c6316', '8b538a7613272583ee43ee33eaf6b7dd4197b096', '207fec89bf2e57df0fa972aa076d33afa00c8064', '4577851e62da2636e30973a5f7e226d07f8f6e16', 'b7e21739b9d6c338917a9407df2a06e1f73e3fef', '33f6df81be7583aadb09514d3121c6a012600144', 'fdbe0c158ba0ef805ec231a10c0bd8c7c716aa64', 'dabc6564cecbecc0795a627f4619b5678ade69d4', '6b83f879b90f3fa32dab790c3070ca303ec1ae9b', '0bf4255936ae1b92896c251c1fe451510c6f172f', '25111acc5da29d60fbe9883d625de7c45d401d1c', 'ad001a7d81d7de281d7f5f1931e4eff3c1d47026', 'd42b69360e0241baa1c59cfce6b0f5c5401a5051', '302c3773f34f4be7878e303c8ddfc55c1c4c4251', '72bef5dd70defaab6c0c866d42c0d3a88651569d', '50febaa60c89f9861f6ad78770552110cc0ca815', '2bf30be3f263d9a1e8ab6a97d794d5b13d72693a', '3df6ecfebffc4bed6c5569b1670fc91a1ef2509e', 'dcd3749fae0575aaab70f3f3b4b88e980a327279', '72fbbc8d3993b3a216957a1b13cd3c31a5b04bba', '033ba634e02a9f939dc20a841164a52143c614a9', '829a8dd0f4cb8cedca5bce2442b893be5cea9ced', 'ea7a5236a9c3bcf3672e73af0c9a1430738f1afc', 'd15f515f0ec3b36a3c49d34d49e73c4066d49f55', '3261f88bb27feac05a010161a4b0dc64803d6c13', 'c079291a112b73ddc17922428dfa43d9fa1737d7', 'f3321a4e10511c7ae8b190ff69e59f5e7dee061b', 'e854a6377f7d9684b1af63eb3c01c354396c9f69', 'deb764793678bfdf07e320c0e289d5b3de502415', 'aa714cf7cccfca6d5bd271ac3196066078e1e9a0', 'be3e5ebd21f4ccb25951b5bec0b15e756751b4e6', '952c68c87d86e0dd3805481755e202cd484d03e3', 'fee5255f9d1adaa949c57c943249d236f3581b31', 'b3935c9ccdfce6af602d36262f3b33d676a39ac5', '6fe8ec92eb2551e2068c4db4668edcdc83672c9a', 'ea6c69f8855f9b9e1b2cc125c449d608ef120105', '5a4b66d35a2c8aa30ad34c279728a07f7d56119f', 'b2bbeca82737d6086c392dffc1e9399b952753b1', '55ee295959130f58c02b8291b1dce6488a396562', '8dca25e0c5751a48fb220188e2ac9864f238aacf', '4271af93a39c6ecaf2491bc026517aa0fcdd3ae0', '874ee01c1bc18c9aab73339d7dc01ae6261d6f93', '8a247aadd04116680f80cb3363bfe72446ccb209', '441108a934f67985be62a19a9f4af7701e81ed13', '8c28ccbfce4cb9e12b463d5530460fae6f66b5ad', '8bded07a4ac3f198c9fd6dcebe2c939aa9b9ed48', 'f23e86e738915dd874311f044400025cbc42e3b8', '61334a0683916f12cb0cf276aba088fd7851e526', '342c2ebdc06d309e049346e53f1bf97fa7fbfc56', '61ed297976149bb1649efcba01237add3f7033a7', '96840d7d9e0aff329ced6d25cab49342798043fd', '5081baa4f0f78a695539ac4f92a7b51628de734d', '0b535d3188f9196d1b3dbbf474aaa4b4529b8941'))) notes WHERE "notes"."type" IN ($1, $2) AND "notes"."noteable_type" IN ($3, $4) AND "notes"."system" = $5 ORDER BY "notes"."created_at" ASC, "notes"."id" ASC

Related issue: #33150 (closed)

Edited by Igor Drozdov

Merge request reports