{
    "componentChunkName": "component---src-templates-note-note-js",
    "path": "/notes/caching-strategies-(conflict-2024-04-12-09-29-12)",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/read-ahead-caching\",\n    \"title\": \"read ahead caching\"\n  }, \"read ahead caching\"), \" - system level prefetch to reduce iops delays. helpful in sequential and bulk reads\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/read-through-caching\",\n    \"title\": \"read through caching\"\n  }, \"read through caching\"), \" - caching logic is handled by caching layer. cache is the primary data store. only in the absence of cache database reads happen.\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/write-behind-caching\",\n    \"title\": \"write behind caching\"\n  }, \"write behind caching\"), \" - write to cache first and then the database in async. write to database can be async and batched too. \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/conflation\",\n    \"title\": \"conflation\"\n  }, \"conflation\"), \"\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/write-through-caching\",\n    \"title\": \"write through caching\"\n  }, \"write through caching\"), \" - write to both database and cache simultaneously. high consistency\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/cache-aside-caching\",\n    \"title\": \"cache aside caching\"\n  }, \"cache aside caching\"), \" lazy loading- default approach by many. is cache aside and read ahead caching same?\"), mdx(\"p\", null, \"consider is caching layer or application layer should handle your strategy. consider if you are deciding strategy for read heavy or write heavy system. consider if you are ok with some inconsistency. \"), mdx(\"p\", null, \"\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/cache-invalidation\",\n    \"title\": \"cache invalidation\"\n  }, \"cache invalidation\"), \"\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/cache-eviction\",\n    \"title\": \"cache eviction\"\n  }, \"cache eviction\"), \"\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/cache-tags\",\n    \"title\": \"cache tags\"\n  }, \"cache tags\"), \"\\n\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/cache-variations\",\n    \"title\": \"cache variations\"\n  }, \"cache variations\"), \" or \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/cache-templates\",\n    \"title\": \"cache templates\"\n  }, \"cache templates\"), \" using \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/cache-context\",\n    \"title\": \"cache context\"\n  }, \"cache context\"), \"\"));\n}\n;\nMDXContent.isMDXComponent = true;","inboundReferences":[]}},"pageContext":{"slug":"caching-strategies-(conflict-2024-04-12-09-29-12)","node":{"childMdx":{"slug":"caching-strategies-(conflict-2024-04-12-09-29-12)"}}}},
    "staticQueryHashes": []}