Skip to Content
Nextra 4.0 is released 🎉
DocumentationDesign A Key-value StoreUnderstand the Problem and Establish Design Scope

āĻāĻ•āϟāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ āĻĄāĻŋāϜāĻžāχāύ (Design A Key-value Store)

āĻāĻ•āϟāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ, āϝāĻžāϕ⧇ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻĄāĻžāϟāĻžāĻŦ⧇āϏāĻ“ āĻŦāϞāĻž āĻšāϝāĻŧ, āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āύāύ-āϰāĻŋāϞ⧇āĻļāύāĻžāϞ (non-relational) āĻĄāĻžāϟāĻžāĻŦ⧇āϏāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ…āύāĻ¨ā§āϝ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ (unique identifier) āĻāĻ•āϟāĻŋ āϕ⧀ (key) āĻšāĻŋāϏāĻžāĻŦ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āĻ­ā§āϝāĻžāϞ⧁ (value) āĻĨāĻžāϕ⧇āĨ¤ āĻāχ āĻĄā§‡āϟāĻž āĻĒ⧇āϝāĻŧāĻžāϰāĻŋāĻ‚āϕ⧇ “āϕ⧀-āĻ­ā§āϝāĻžāĻ˛ā§â€ āĻĒ⧇āϝāĻŧāĻžāϰ āĻŦāϞāĻž āĻšāϝāĻŧāĨ¤

āĻāĻ•āϟāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻĒ⧇āϝāĻŧāĻžāϰ⧇, āϕ⧀ āĻ…āĻŦāĻļā§āϝāχ āĻ…āύāĻ¨ā§āϝ āĻšāϤ⧇ āĻšāĻŦ⧇, āĻāĻŦāĻ‚ āϕ⧀āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āĻ­ā§āϝāĻžāϞ⧁ āϕ⧀āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ āϕ⧀āϗ⧁āϞ⧋ āĻĒā§āϞ⧇āχāύ āĻŸā§‡āĻ•ā§āϏāϟ āĻŦāĻž āĻšā§āϝāĻžāĻļ āĻ•āϰāĻž āĻ­ā§āϝāĻžāϞ⧁ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāĻ¨ā§āϏ⧇āϰ āĻ•āĻžāϰāϪ⧇, āĻāĻ•āϟāĻŋ āϛ⧋āϟ āϕ⧀ āĻ­āĻžāϞ⧋ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤ āϕ⧀āϗ⧁āϞ⧋ āϕ⧇āĻŽāύ āĻĻ⧇āĻ–āĻžāϝāĻŧ? āĻāĻ–āĻžāύ⧇ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ⧋:

  • āĻĒā§āϞ⧇āχāύ āĻŸā§‡āĻ•ā§āϏāϟ āϕ⧀: “last_logged_in_at”
  • āĻšā§āϝāĻžāĻļ āĻ•āϰāĻž āϕ⧀: 253DDEC4

āĻāĻ•āϟāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻĒ⧇āϝāĻŧāĻžāϰ⧇āϰ āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚, āϞāĻŋāĻ¸ā§āϟ, āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āχāĻ¤ā§āϝāĻžāĻĻāĻŋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰāϗ⧁āϞ⧋āϤ⧇ āĻ­ā§āϝāĻžāϞ⧁āϕ⧇ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āϟāĻŋ āĻ…āĻĒ⧇āĻ• (opaque) āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ, āϝ⧇āĻŽāύ Amazon dynamo [1], Memcached [2], Redis [3], āχāĻ¤ā§āϝāĻžāĻĻāĻŋāĨ¤

āĻāĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ⧇ āĻāĻ•āϟāĻŋ āĻĄā§‡āϟāĻž āĻ¸ā§āύāĻŋāĻĒ⧇āϟ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ⧋:

keyvalue
145john
147bob
160julia

āĻŸā§‡āĻŦāĻŋāϞ ā§§

āĻāχ āĻ…āĻ§ā§āϝāĻžāϝāĻŧ⧇, āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāϤ⧇ āĻŦāϞāĻž āĻšāϝāĻŧ⧇āϛ⧇ āϝāĻž āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ…āĻĒāĻžāϰ⧇āĻļāύāϗ⧁āϞ⧋ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇:

  • put(key, value) // “key”-āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ “value” āχāύāϏāĻžāĻ°ā§āϟ āĻ•āϰ⧁āύ
  • get(key) // “key”-āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ “value” āύāĻŋāϝāĻŧ⧇ āφāϏ⧁āύ

āϏāĻŽāĻ¸ā§āϝāĻžāϟāĻŋ āĻŦā§‹āĻāĻž āĻāĻŦāĻ‚ āĻĄāĻŋāϜāĻžāχāύ⧇āϰ āϏ⧁āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•ā§āώ⧇āĻ¤ā§āϰ (scope) āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāĻž

āϕ⧋āύ⧋ āύāĻŋāϖ⧁āρāϤ āĻĄāĻŋāϜāĻžāχāύ āύ⧇āχāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĄāĻŋāϜāĻžāχāύ āϰāĻŋāĻĄ, āϰāĻžāχāϟ āĻāĻŦāĻ‚ āĻŽā§‡āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻŸā§āϰ⧇āĻĄ-āĻ…āĻĢāϗ⧁āϞ⧋āϰ (tradeoffs) āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ­āĻžāϰāϏāĻžāĻŽā§āϝ āĻ…āĻ°ā§āϜāύ āĻ•āϰ⧇āĨ¤ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ (consistency) āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋāϰ (availability) āĻŽāĻ§ā§āϝ⧇āĻ“ āφāϰ⧇āĻ•āϟāĻŋ āĻŸā§āϰ⧇āĻĄ-āĻ…āĻĢ āĻ•āϰāϤ⧇ āĻšāϝāĻŧāĨ¤ āĻāχ āĻ…āĻ§ā§āϝāĻžāϝāĻŧ⧇, āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻŋ āϝāĻžāϤ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞ⧋ āĻĨāĻžāϕ⧇:

  • āĻāĻ•āϟāĻŋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻĒ⧇āϝāĻŧāĻžāϰ⧇āϰ āϏāĻžāχāϜ āϛ⧋āϟ: 10 KB āĻāϰ āĻ•āĻŽāĨ¤
  • āĻŦāĻĄāĻŧ āĻĄā§‡āϟāĻž āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻžāϰ āĻ•ā§āώāĻŽāϤāĻžāĨ¤
  • āωāĻšā§āϚ āĻĒā§āϰāĻžāĻĒā§āϝāϤāĻž (High availability): āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āĻĻā§āϰ⧁āϤ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻ•āϰ⧇, āĻāĻŽāύāĻ•āĻŋ āĻĢ⧇āχāϞāĻŋāĻ“āϰ⧇āϰ (failures) āϏāĻŽāϝāĻŧāĻ“āĨ¤
  • āωāĻšā§āϚ āĻ¸ā§āϕ⧇āϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ (High scalability): āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋāϕ⧇ āĻŦāĻĄāĻŧ āĻĄā§‡āϟāĻž āϏ⧇āϟ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āϕ⧇āϞ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤
  • āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻ¸ā§āϕ⧇āϞāĻŋāĻ‚ (Automatic scaling): āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāϕ⧇āϰ āĻ“āĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϝ⧋āĻ—/āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤāĨ¤
  • āϟāĻŋāωāύ⧇āĻŦāϞ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ (Tunable consistency)āĨ¤
  • āĻ•āĻŽ āϞ⧇āĻŸā§‡āĻ¨ā§āϏāĻŋ (Low latency)āĨ¤

āϏāĻŋāĻ™ā§āϗ⧇āϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ

āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĨāĻžāĻ•āĻž āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϏāĻšāϜāĨ¤ āĻāĻ•āϟāĻŋ āϏāĻšāϜāĻŦā§‹āĻ§ā§āϝ āĻĒāĻĻā§āϧāϤāĻŋ āĻšāϞ⧋ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻĒ⧇āϝāĻŧāĻžāϰāϗ⧁āϞ⧋ āĻāĻ•āϟāĻŋ āĻšā§āϝāĻžāĻļ āĻŸā§‡āĻŦāĻŋāϞ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž, āϝāĻž āϏāĻŦāĻ•āĻŋāϛ⧁ āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āϰāĻžāϖ⧇āĨ¤ āĻŽā§‡āĻŽāϰāĻŋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĻā§āϰ⧁āϤ āĻšāϞ⧇āĻ“, āĻ¸ā§āĻĒ⧇āϏ⧇āϰ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻžāϰ āĻ•āĻžāϰāϪ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āϰāĻžāĻ–āĻž āĻ…āϏāĻŽā§āĻ­āĻŦ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āφāϰāĻ“ āĻŦ⧇āĻļāĻŋ āĻĄā§‡āϟāĻž āϰāĻžāĻ–āĻžāϰ āϜāĻ¨ā§āϝ āĻĻ⧁āϟāĻŋ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇:

  • āĻĄā§‡āϟāĻž āĻ•āĻŽā§āĻĒā§āϰ⧇āĻļāύ (Data compression)
  • āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϘāύ āϘāύ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻĄā§‡āϟāĻž āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āĻāĻŦāĻ‚ āĻŦāĻžāĻ•āĻŋāϗ⧁āϞ⧋ āĻĄāĻŋāĻ¸ā§āϕ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž

āĻāχ āĻ…āĻĒā§āϟāĻŋāĻŽāĻžāχāĻœā§‡āĻļāύāϗ⧁āϞ⧋ āϏāĻ¤ā§āĻ¤ā§āĻŦ⧇āĻ“, āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϖ⧁āĻŦ āĻĻā§āϰ⧁āϤ āϤāĻžāϰ āĻ•ā§āώāĻŽāϤāĻžāϝāĻŧ āĻĒ⧌āρāϛ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻŦāĻĄāĻŧ āĻĄā§‡āϟāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤

āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ

āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰāϕ⧇ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āĻšā§āϝāĻžāĻļ āĻŸā§‡āĻŦāĻŋāϞāĻ“ āĻŦāϞāĻž āĻšāϝāĻŧ, āϝāĻž āĻ…āύ⧇āĻ• āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϜ⧁āĻĄāĻŧ⧇ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻĒ⧇āϝāĻŧāĻžāϰ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, CAP (Consistency, Availability, Partition Tolerance) āĻĨāĻŋāĻ“āϰ⧇āĻŽ āĻŦā§‹āĻāĻž āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

CAP āĻĨāĻŋāĻ“āϰ⧇āĻŽ

CAP āĻĨāĻŋāĻ“āϰ⧇āĻŽ āĻŦāϞ⧇ āϝ⧇ āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻāχ āϤāĻŋāύāϟāĻŋ āĻ—ā§āϝāĻžāϰāĻžāĻ¨ā§āϟāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻĻ⧁āϟāĻŋāϰ āĻŦ⧇āĻļāĻŋ āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāĻž āĻ…āϏāĻŽā§āĻ­āĻŦ: āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ, āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ, āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏāĨ¤ āφāϏ⧁āύ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āϏāĻ‚āĻœā§āĻžāĻž āĻĒā§āϰāϤāĻŋāĻˇā§āĻ āĻž āĻ•āϰāĻŋāĨ¤

  • āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ (Consistency): āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ⧋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϰāĻž āϕ⧋āύ āύ⧋āĻĄā§‡ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϛ⧇ āύāĻž āϕ⧇āύ, āϤāĻžāϰāĻž āϏāĻŦāĻžāχ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āĻāĻ•āχ āĻĄā§‡āϟāĻž āĻĻ⧇āϖ⧇āĨ¤
  • āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ (Availability): āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ⧋ āϕ⧋āύ⧋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻĄā§‡āϟāĻžāϰ āϜāĻ¨ā§āϝ āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻ•āϰāϞ⧇ āϏ⧇ āĻāĻ•āϟāĻŋ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĒāĻžāϝāĻŧ, āĻāĻŽāύāĻ•āĻŋ āϝāĻĻāĻŋ āĻ•āĻŋāϛ⧁ āύ⧋āĻĄ āĻĄāĻžāωāύ āĻĨāĻžāϕ⧇āĨ¤
  • āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏ (Partition Tolerance): āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āĻĻ⧁āϟāĻŋ āύ⧋āĻĄā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āĻšāĻ“āϝāĻŧāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏ āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ⧋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āĻĨāĻžāĻ•āĻž āϏāĻ¤ā§āĻ¤ā§āĻŦ⧇āĻ“ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āĻ•āĻžāϜ āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

CAP āĻĨāĻŋāĻ“āϰ⧇āĻŽ āĻŦāϞ⧇ āϝ⧇ ā§ŠāϟāĻŋ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ⧇āϰ āĻŽāĻ§ā§āϝ⧇ ⧍āϟāĻŋāϕ⧇ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāϤ⧇ āĻšāϞ⧇ āϤāĻŋāύāϟāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϕ⧇ āĻ¤ā§āϝāĻžāĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āϝ⧇āĻŽāύāϟāĻŋ āϚāĻŋāĻ¤ā§āϰ ā§§-āĻ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

[āϚāĻŋāĻ¤ā§āϰ ā§§-āĻāϰ āĻŦāĻ°ā§āĻŖāύāĻž: āĻ›āĻŦāĻŋāϟāĻŋ CAP āĻĨāĻŋāĻ“āϰ⧇āĻŽ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇, āϤāĻŋāύāϟāĻŋ āĻ“āĻ­āĻžāϰāĻ˛ā§āϝāĻžāĻĒāĻŋāĻ‚ āĻŦ⧃āĻ¤ā§āϤ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦ⧃āĻ¤ā§āϤ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āĻĄā§‡āϟāĻž āĻ¸ā§āĻŸā§‹āϰ⧇āϰ āϤāĻŋāύāϟāĻŋ āĻŽā§‚āϞ āĻ—ā§āϝāĻžāϰāĻžāĻ¨ā§āϟāĻŋāϰ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇: āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ, āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ, āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏāĨ¤ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻŦāĻĄāĻŧ āĻŦ⧃āĻ¤ā§āϤāϟāĻŋ, āϝāĻž āϟāĻŋāϞ (teal) āϰāϙ⧇āϰ, ‘āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ’ āϞ⧇āĻŦ⧇āϞāϝ⧁āĻ•ā§āϤ, āϝāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āϝ⧇ āϏāĻŽāĻ¸ā§āϤ āύ⧋āĻĄ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āĻāĻ•āχ āĻĄā§‡āϟāĻž āĻĻ⧇āϖ⧇āĨ¤ āϏāĻŦ⧁āϜ āĻŦ⧃āĻ¤ā§āϤāϟāĻŋ, ‘āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ’ āϞ⧇āĻŦ⧇āϞāϝ⧁āĻ•ā§āϤ, āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āϝ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻāĻ•āϟāĻŋ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĒāĻžāϝāĻŧ, āĻāĻŽāύāĻ•āĻŋ āϝāĻĻāĻŋ āĻāϟāĻŋ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āφāĻĒ-āϟ⧁-āĻĄā§‡āϟ āĻĄā§‡āϟāĻž āύāĻžāĻ“ āĻšāϝāĻŧāĨ¤ āĻšāϞ⧁āĻĻ āĻŦ⧃āĻ¤ā§āϤāϟāĻŋ, ‘āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āĻ¸â€™ āϞ⧇āĻŦ⧇āϞāϝ⧁āĻ•ā§āϤ, āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϘāϟāϞ⧇āĻ“ āĻ•āĻžāϜ āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāĻ“āϝāĻŧāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤ āĻ“āĻ­āĻžāϰāĻ˛ā§āϝāĻžāĻĒāĻŋāĻ‚ āĻ…āĻžā§āϚāϞāϗ⧁āϞ⧋ āĻ…āĻ°ā§āϜāύāϝ⧋āĻ—ā§āϝ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧāϗ⧁āϞ⧋ āĻĻ⧇āĻ–āĻžāϝāĻŧ: āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏ⧇āϰ āϛ⧇āĻĻāϕ⧇ ‘CP’ āϞ⧇āĻŦ⧇āϞ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻāχ āĻĻ⧁āϟāĻŋ āĻ—ā§āϝāĻžāϰāĻžāĻ¨ā§āϟāĻŋ āĻ…āĻ—ā§āϰāĻžāϧāĻŋāĻ•āĻžāϰ āĻĻ⧇āĻ“āϝāĻŧāĻž āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ (āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋāϰ āĻŦāĻŋāύāĻŋāĻŽāϝāĻŧ⧇)āĨ¤ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏ⧇āϰ āϛ⧇āĻĻāϕ⧇ ‘AP’ āϞ⧇āĻŦ⧇āϞ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻāχ āĻĻ⧁āϟāĻŋ āĻ…āĻ—ā§āϰāĻžāϧāĻŋāĻ•āĻžāϰ āĻĻ⧇āĻ“āϝāĻŧāĻž āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĻ⧇āĻ–āĻžāϝāĻŧ (āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋāϰ āĻŦāĻŋāύāĻŋāĻŽāϝāĻŧ⧇)āĨ¤ āϤāĻŋāύāϟāĻŋ āĻŦ⧃āĻ¤ā§āϤ⧇āϰ āϛ⧋āϟ āϛ⧇āĻĻāϕ⧇ ‘CA’ āϞ⧇āĻŦ⧇āϞ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻž CAP āĻĨāĻŋāĻ“āϰ⧇āĻŽ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇ āĻ…āĻ°ā§āϜāύāϝ⧋āĻ—ā§āϝ āύāϝāĻŧāĨ¤ āĻĒāϰāĻŋāĻļ⧇āώ⧇, āύāĻŋāĻšā§‡ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻŸā§‡āĻ•ā§āϏāϟ āĻĒāĻĄāĻŧāĻž āϝāĻžāϝāĻŧ ‘Viewer does not support full SVG 1.1,’ āϝāĻž āχāĻŽā§‡āϜ āϰ⧇āĻ¨ā§āĻĄāĻžāϰāĻŋāĻ‚ āϏāĻĢāϟāĻ“āϝāĻŧā§āϝāĻžāϰ⧇āϰ āĻāĻ•āϟāĻŋ āϏ⧀āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤] āϚāĻŋāĻ¤ā§āϰ ā§§

āφāϜāĻ•āĻžāϞ, āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰāϗ⧁āϞ⧋ āϤāĻžāϰāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻāĻŽāύ āĻĻ⧁āϟāĻŋ CAP āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ⧇āϰ āĻ“āĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻļā§āϰ⧇āĻŖā§€āĻŦāĻĻā§āϧ āĻ•āϰāĻž āĻšāϝāĻŧ:

  • CP (āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏ) āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ: āĻāĻ•āϟāĻŋ CP āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻ¤ā§āϝāĻžāĻ— āĻ•āϰ⧇ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤
  • AP (āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏ) āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ: āĻāĻ•āϟāĻŋ AP āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻ¤ā§āϝāĻžāĻ— āĻ•āϰ⧇ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤
  • CA (āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ) āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ: āĻāĻ•āϟāĻŋ CA āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϟāϞāĻžāϰ⧇āĻ¨ā§āϏ āĻ¤ā§āϝāĻžāĻ— āĻ•āϰ⧇ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ āϝ⧇āĻšā§‡āϤ⧁ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĢ⧇āχāϞāĻŋāĻ“āϰ āĻ…āύāĻŋāĻŦāĻžāĻ°ā§āϝ, āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϏāĻšā§āϝ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϤāĻžāχ, āĻŦāĻžāĻ¸ā§āϤāĻŦ-āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞ⧋āϤ⧇ āĻāĻ•āϟāĻŋ CA āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤

āφāĻĒāύāĻŋ āωāĻĒāϰ⧇ āϝāĻž āĻĒāĻĄāĻŧ⧇āϛ⧇āύ āϤāĻž āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ—āχ āϏāĻ‚āĻœā§āĻžāĻžāϰ āĻ…āĻ‚āĻļāĨ¤ āĻāϟāĻŋ āĻŦā§‹āĻāĻž āϏāĻšāϜ āĻ•āϰāϤ⧇, āφāϏ⧁āύ āĻ•āĻŋāϛ⧁ āĻŦāĻžāĻ¸ā§āϤāĻŦ āωāĻĻāĻžāĻšāϰāϪ⧇āϰ āĻĻāĻŋāϕ⧇ āϤāĻžāĻ•āĻžāχāĨ¤ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡, āĻĄā§‡āϟāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āĻžāϧāĻŋāĻ•āĻŦāĻžāϰ āϰ⧇āĻĒā§āϞāĻŋāϕ⧇āϟ (replicated) āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϧāϰ⧇ āύāĻŋāύ āĻĄā§‡āϟāĻž āϤāĻŋāύāϟāĻŋ āϰ⧇āĻĒā§āϞāĻŋāĻ•āĻž āύ⧋āĻĄ, n1, n2 āĻāĻŦāĻ‚ n3-āĻ āϰ⧇āĻĒā§āϞāĻŋāϕ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āϝ⧇āĻŽāύāϟāĻŋ āϚāĻŋāĻ¤ā§āϰ ⧍-āĻ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āφāĻĻāĻ°ā§āĻļ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋ

āφāĻĻāĻ°ā§āĻļ āĻŦāĻŋāĻļā§āĻŦ⧇, āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āĻ•āĻ–āύāĻ“ āϘāĻŸā§‡ āύāĻžāĨ¤ n1-āĻ āϞ⧇āĻ–āĻž āĻĄā§‡āϟāĻž āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ n2 āĻāĻŦāĻ‚ n3-āĻ āϰ⧇āĻĒā§āϞāĻŋāϕ⧇āϟ āĻšāϝāĻŧāĨ¤ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āωāĻ­āϝāĻŧāχ āĻ…āĻ°ā§āϜāĻŋāϤ āĻšāϝāĻŧāĨ¤

[āϚāĻŋāĻ¤ā§āϰ ⧍-āĻāϰ āĻŦāĻ°ā§āĻŖāύāĻž: āĻ›āĻŦāĻŋāϟāĻŋ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϟāĻĒā§‹āϞāϜāĻŋ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇ āϝāĻž āϤāĻŋāύāϟāĻŋ āύ⧋āĻĄ āĻĻ⧇āĻ–āĻžāϝāĻŧ, āϝāĻžāĻĻ⧇āϰ āϞ⧇āĻŦ⧇āϞ n1, n2, āĻāĻŦāĻ‚ n3, āϏāĻŋāϞāĻŋāĻ¨ā§āĻĄāĻžāϰ⧇āϰ āĻŽāϤ⧋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āφāχāĻ•āύ āĻšāĻŋāϏāĻžāĻŦ⧇ āϚāĻŋāĻ¤ā§āϰāĻŋāϤāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āύ⧋āĻĄ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āϞāĻŋāĻ‚āĻ• āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻ•āĻžāϰ⧀ āϰ⧇āĻ–āĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ…āĻ¨ā§āϝ āĻĻ⧁āϟāĻŋ āύ⧋āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ, āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ—ā§āϰāĻžāĻĢ āĻŦāĻž āĻ¤ā§āϰāĻŋāϭ⧁āϜ āĻ—āĻ āύ āĻ•āϰ⧇āĨ¤ n1 āωāĻ­āϝāĻŧ n2 āĻāĻŦāĻ‚ n3 āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ, āĻāĻŦāĻ‚ n2 āĻāĻŦāĻ‚ n3 āϏāϰāĻžāϏāϰāĻŋ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤāĨ¤ āϏāĻ‚āϝ⧋āĻ—āĻ•āĻžāϰ⧀ āϰ⧇āĻ–āĻžāϗ⧁āϞ⧋āϤ⧇ āϕ⧋āύ⧋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻŦāĻžāĻšā§‡āϰ āĻĻāĻŋāĻ• āĻŦāĻž āϧāϰāύ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ; āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āύ⧋āĻĄāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻ…āĻ¸ā§āϤāĻŋāĻ¤ā§āĻŦ āϚāĻŋāĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽā§‡āϰ āύāĻŋāĻšā§‡ ‘Viewer does not support full SVG 1.1’ āĻŸā§‡āĻ•ā§āϏāϟāϟāĻŋ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤ, āϝāĻž āĻŦā§āϝāĻŦāĻšā§ƒāϤ āχāĻŽā§‡āϜ āĻ­āĻŋāωāϝāĻŧāĻžāϰ⧇āϰ āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āϰ⧇āĻ¨ā§āĻĄāĻžāϰāĻŋāĻ‚ āϏāĻŽāĻ¸ā§āϝāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇āĨ¤ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻŽāĻ§ā§āϝ⧇ āϕ⧋āύ⧋ URL āĻŦāĻž āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ āύāϝāĻŧāĨ¤] āϚāĻŋāĻ¤ā§āϰ ⧍

āĻŦāĻžāĻ¸ā§āϤāĻŦ-āĻŦāĻŋāĻļā§āĻŦ⧇āϰ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ

āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡, āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āĻāĻĄāĻŧāĻžāύ⧋ āϝāĻžāϝāĻŧ āύāĻž, āĻāĻŦāĻ‚ āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϘāĻŸā§‡, āϤāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻŦ⧇āϛ⧇ āύāĻŋāϤ⧇ āĻšāϝāĻŧāĨ¤ āϚāĻŋāĻ¤ā§āϰ ā§Š-āĻ, n3 āĻĄāĻžāωāύ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ n1 āĻāĻŦāĻ‚ n2 āĻāϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤ āϝāĻĻāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϰāĻž n1 āĻŦāĻž n2-āϤ⧇ āĻĄā§‡āϟāĻž āϰāĻžāχāϟ āĻ•āϰ⧇, āϤāĻŦ⧇ āĻĄā§‡āϟāĻž n3-āĻ āĻĒā§āϰ⧋āĻĒāĻžāϗ⧇āϟ (āĻ›āĻĄāĻŧāĻŋāϝāĻŧ⧇) āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤ āϝāĻĻāĻŋ āĻĄā§‡āϟāĻž n3-āĻ āϰāĻžāχāϟ āĻ•āϰāĻž āĻšāϝāĻŧ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āύāĻ“ n1 āĻāĻŦāĻ‚ n2-āϤ⧇ āĻĒā§āϰ⧋āĻĒāĻžāϗ⧇āϟ āύāĻž āĻšāϝāĻŧ, āϤāĻŦ⧇ n1 āĻāĻŦāĻ‚ n2-āϤ⧇ āĻ¸ā§āĻŸā§‡āϞ (āĻĒ⧁āϰāĻžāύ⧋) āĻĄā§‡āϟāĻž āĻĨāĻžāĻ•āĻŦ⧇āĨ¤

[āϚāĻŋāĻ¤ā§āϰ ā§Š-āĻāϰ āĻŦāĻ°ā§āĻŖāύāĻž: āĻ›āĻŦāĻŋāϟāĻŋ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϟāĻĒā§‹āϞāϜāĻŋ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇ āϝāĻž āϤāĻŋāύāϟāĻŋ āύ⧋āĻĄ āĻĻ⧇āĻ–āĻžāϝāĻŧ, āϝāĻžāĻĻ⧇āϰ āϞ⧇āĻŦ⧇āϞ n1, n2, āĻāĻŦāĻ‚ n3, āϏāĻŋāϞāĻŋāĻ¨ā§āĻĄāĻžāϰ⧇āϰ āĻŽāϤ⧋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āφāχāĻ•āύ āĻšāĻŋāϏāĻžāĻŦ⧇ āϚāĻŋāĻ¤ā§āϰāĻŋāϤāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āύ⧋āĻĄ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āϞāĻŋāĻ‚āĻ• āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻ•āĻžāϰ⧀ āϰ⧇āĻ–āĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ…āĻ¨ā§āϝ āĻĻ⧁āϟāĻŋ āύ⧋āĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ, āĻāĻ•āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ—ā§āϰāĻžāĻĢ āĻŦāĻž āĻ¤ā§āϰāĻŋāϭ⧁āϜ āĻ—āĻ āύ āĻ•āϰ⧇āĨ¤ n1 āωāĻ­āϝāĻŧ n2 āĻāĻŦāĻ‚ n3 āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ, āĻāĻŦāĻ‚ n2 āĻāĻŦāĻ‚ n3 āϏāϰāĻžāϏāϰāĻŋ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤāĨ¤ āϏāĻ‚āϝ⧋āĻ—āĻ•āĻžāϰ⧀ āϰ⧇āĻ–āĻžāϗ⧁āϞ⧋āϤ⧇ āϕ⧋āύ⧋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻŦāĻžāĻšā§‡āϰ āĻĻāĻŋāĻ• āĻŦāĻž āϧāϰāύ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋ; āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āύ⧋āĻĄāϗ⧁āϞ⧋āϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻ‚āϝ⧋āϗ⧇āϰ āĻ…āĻ¸ā§āϤāĻŋāĻ¤ā§āĻŦ āϚāĻŋāĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧇āĨ¤ āύāĻŋāĻšā§‡ ‘Viewer does not support full SVG 1.1’ āĻŸā§‡āĻ•ā§āϏāϟāϟāĻŋ āĻāĻ•āϟāĻŋ āĻŦā§āϰāĻžāωāϜāĻžāϰ-āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻŦāĻžāĻ°ā§āϤāĻž āϝāĻž āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϟāĻĒā§‹āϞāϜāĻŋāϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āύāϝāĻŧāĨ¤] āϚāĻŋāĻ¤ā§āϰ ā§Š

āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋāϰ āĻšā§‡āϝāĻŧ⧇ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋāϕ⧇ āĻŦ⧇āϛ⧇ āύāĻŋāχ (CP āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ), āϤāĻŦ⧇ āĻāχ āϤāĻŋāύāϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻĄā§‡āϟāĻž āχāύāĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻāĻĄāĻŧāĻžāϤ⧇ āφāĻŽāĻžāĻĻ⧇āϰ n1 āĻāĻŦāĻ‚ n2-āϤ⧇ āϏāĻŽāĻ¸ā§āϤ āϰāĻžāχāϟ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻŦā§āϞāĻ• āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āϝāĻž āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϕ⧇ āĻ…āύ⧁āĻĒāϞāĻŦā§āϧ (unavailable) āĻ•āϰ⧇ āϤ⧋āϞ⧇āĨ¤ āĻŦā§āϝāĻžāĻ‚āĻ• āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϗ⧁āϞ⧋āϤ⧇ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āωāĻšā§āϚ āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϤāĻž āĻĨāĻžāϕ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāĻ•āϟāĻŋ āĻŦā§āϝāĻžāĻ‚āĻ• āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āφāĻĒ-āϟ⧁-āĻĄā§‡āϟ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏ⧇āϰ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤ āϝāĻĻāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ⧇āϰ āĻ•āĻžāϰāϪ⧇ āχāύāĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āϘāĻŸā§‡, āϤāĻŦ⧇ āĻŦā§āϝāĻžāĻ‚āĻ• āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āχāύāĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻšāĻ“āϝāĻŧāĻžāϰ āφāϗ⧇ āĻāĻ•āϟāĻŋ āĻāϰāϰ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤

āϤāĻŦ⧇, āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻ•āύāϏāĻŋāĻ¸ā§āĻŸā§‡āĻ¨ā§āϏāĻŋāϰ āĻšā§‡āϝāĻŧ⧇ āĻ…ā§āϝāĻžāϭ⧇āχāϞ⧇āĻŦāĻŋāϞāĻŋāϟāĻŋ āĻŦ⧇āϛ⧇ āύāĻŋāχ (AP āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ), āϤāĻŦ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āϰāĻŋāĻĄ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧ, āϝāĻĻāĻŋāĻ“ āĻāϟāĻŋ āĻ¸ā§āĻŸā§‡āϞ āĻĄā§‡āϟāĻž āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϰāĻžāχāĻŸā§‡āϰ āϜāĻ¨ā§āϝ, n1 āĻāĻŦāĻ‚ n2 āϰāĻžāχāϟ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻž āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāĻŦ⧇, āĻāĻŦāĻ‚ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ āϏāĻŽāĻžāϧāĻžāύ āĻšāϞ⧇ āĻĄā§‡āϟāĻž n3-āĻ āϏāĻŋāĻ™ā§āĻ• āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤

āφāĻĒāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽāĻžāύāĻžāύāϏāχ āϏāĻ āĻŋāĻ• CAP āĻ—ā§āϝāĻžāϰāĻžāĻ¨ā§āϟāĻŋ āĻŦ⧇āϛ⧇ āύ⧇āĻ“āϝāĻŧāĻž āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ¸ā§āĻŸā§āϰāĻŋāĻŦāĻŋāωāĻŸā§‡āĻĄ āϕ⧀-āĻ­ā§āϝāĻžāϞ⧁ āĻ¸ā§āĻŸā§‹āϰ āϤ⧈āϰāĻŋāϰ āĻāĻ•āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āϧāĻžāĻĒāĨ¤ āφāĻĒāύāĻŋ āĻāϟāĻŋ āύāĻŋāϝāĻŧ⧇ āφāĻĒāύāĻžāϰ āχāĻ¨ā§āϟāĻžāϰāĻ­āĻŋāωāϝāĻŧāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āφāϞ⧋āϚāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻāĻŦāĻ‚ āϏ⧇āχ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤