ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืื™ืŸ ื”ืึทืจื‘ืกื˜ 2019, ืึท ืœืึทื ื’-ืึทื•ื•ื™ื™ื˜ืึทื“ ื’ืขืฉืขืขื ื™ืฉ ืื™ื– ืคืืจื’ืขืงื•ืžืขืŸ ืื™ืŸ ื“ื™ Mail.ru ืงืœืึธื•ื“ ื™ืึธืก ืžืึทื ืฉืึทืคึฟื˜. ื“ื™ ื”ื•ื™ืคึผื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึฟืึทืจ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืกื˜ืึธืจื™ื“ื–ืฉ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืฉื˜ืึทื˜ ืื™ื– ื’ืขื•ื•ืืจืŸ ื–ื™ื™ืขืจ ืขืงื–ืึธื˜ื™ืฉ ืคึฟืึทืจ ื“ื™ ืจื™ืจืขื•ื•ื“ื™ืง ื•ื•ืขืœื˜ ื‘ืœื™ืฅ ื–ื›ึผืจื•ืŸ-ืžืึทืคึผื˜ ื“ืึทื˜ืึทื‘ืึทืกืข (LMDB). ื•ื ื˜ืขืจ ื“ืขืจ ื“ื•ืจื›ืฉื ื™ื˜ ืžื™ืจ ืคืึธืจืฉืœืึธื’ืŸ ืื™ืจ ืึท ื“ื™ื˜ื™ื™ืœื“ ืึธืคึผืฉืึทืฆื•ื ื’ ืคื•ืŸ ืขืก ืื™ืŸ ืคื™ืจ ื˜ื™ื™ืœืŸ. ืขืจืฉื˜ืขืจ, ืœืึธื–ืŸ ืก ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืกื™ื‘ื•ืช ืคึฟืึทืจ ืึทื–ืึท ืึท ื ื™ื˜-ื ื™ื˜-ื ื™ื˜ื•ื•ื™ืึทืœ ืื•ืŸ ืฉื•ื•ืขืจ ื‘ืจื™ืจื”. ื“ืขืจื ืึธืš ืžื™ืจ ื•ื•ืขืœืŸ ืคืึธืจื–ืขืฆืŸ ืฆื• ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ื“ืจื™ื™ ืคึผื™ืœืขืจื– ืื™ืŸ ื“ื™ ื”ืึทืจืฅ ืคื•ืŸ ื“ื™ LMDB ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ: ื–ื™ืงืึธืจืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก, B +-ื‘ื•ื™ื, ืงืึธืคึผื™ืข-ืื•ื™ืฃ-ืฉืจื™ื™ื‘ ืฆื•ื’ืึทื ื’ ืคึฟืึทืจ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœื™ื˜ื™ ืื•ืŸ ืžื•ืœื˜ื™ื•ื•ืขืจืกื™ืึธืŸ. ืฆื•ื ืกื•ืฃ, ืคึฟืึทืจ ืคืึทืจื‘ื™ื™ึทืกืŸ - ื“ื™ ืคึผืจืึทืงื˜ื™ืฉ ื˜ื™ื™ืœ. ืื™ืŸ ืขืก ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ืื™ืŸ ื•ื•ื™ ืฆื• ืคึผืœืึทืŸ ืื•ืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ืกื˜ืฉืขืžืึท ืžื™ื˜ ืขื˜ืœืขื›ืข ื˜ื™ืฉืŸ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืึทืŸ ืื™ื ื“ืขืงืก ืื™ื™ื ืขืจ, ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ื ื™ื“ืขืจื™ืง-ืžื“ืจื’ื” ืฉืœื™ืกืœ ื•ื•ืขืจื˜ ืึทืคึผื™.

ืฆื•ืคืจื™ื“ืŸ

  1. ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ
  2. LMDB ืคึผืึทื–ื™ืฉืึทื ื™ื ื’
  3. ื“ืจื™ื™ ื–ื™ื™ืœืŸ ืคื•ืŸ ืœืžื“ื‘
    ืงืกื ื•ืžืงืก. ื•ื•ื™ื™ืœ #1. ื–ื™ืงืึธืจืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก
    ืงืกื ื•ืžืงืก. ื•ื•ื™ื™ืœ # 2. ื‘+ ื‘ื•ื™ื
    ืงืกื ื•ืžืงืก. ื•ื•ื™ื™ืœ #3. ืงืึธืคึผื™-ืื•ื™ืฃ-ืฉืจื™ื™ึทื‘ืŸ
  4. ื“ื™ื–ื™ื™ื ื™ื ื’ ืึท ื“ืึทื˜ืŸ ืกื˜ืฉืขืžืึท ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ API
    ืงืกื ื•ืžืงืก. ื™ืงืขืจื“ื™ืง ืึทื‘ืกื˜ืจืึทืงืฆื™ืขืก
    ืงืกื ื•ืžืงืก. ื˜ื™ืฉ ืžืึธื“ืขืœื™ื ื’
    ืงืกื ื•ืžืงืก. ืžืึธื“ืขืœื™ื ื’ ื‘ืึทืฆื™ื•ื ื’ืขืŸ ืฆื•ื•ื™ืฉืŸ ื˜ื™ืฉืŸ

1. ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ

ืื™ื™ืŸ ื™ืึธืจ ืื™ืŸ 2015, ืžื™ืจ ื’ืขื ื•ืžืขืŸ ื“ื™ ืฆืจื” ืฆื• ืžืขืกื˜ืŸ ื•ื•ื™ ืึธืคื˜ ื“ื™ ืฆื•ื‘ื™ื ื“ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืœืึทื’ื–. ืžื™ืจ ื”ืื‘ืŸ ื“ืึธืก ืคึฟืึทืจ ืึท ืกื™ื‘ื”. ืžื™ืจ ื”ืึธื‘ืŸ ื‘ืืงื•ืžืขืŸ ืžืขืจ ืึธืคื˜ ื˜ืขื ื•ืช ืึทื– ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžืืœ ืกื˜ืึทืคึผืก ืจื™ืกืคึผืึทื ื“ื™ื ื’ ืฆื• ื‘ืึทื ื™ืฆืขืจ ืึทืงืฉืึทื ื–: ืงื ืขืคึผืœืขืš ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื’ืขื“ืจื™ืงื˜, ืจืฉื™ืžื•ืช ื˜ืึธืŸ ื ื™ื˜ ืžืขื’ื™ืœืข, ืขื˜ืง. ื•ื•ืขื’ืŸ ื“ื™ ืžืึทืงืึทื ื™ืงืก ืคื•ืŸ ืžืขื–ืฉืขืจืžืึทื ืฅ ื“ืขืจืฆื™ื™ืœื˜ ืื•ื™ืฃ AvitoTech, ืึทื–ื•ื™ ื“ืึธ ืื™ืš ื’ืขื‘ืŸ ื‘ืœื•ื™ื– ื“ื™ ืกื“ืจ ืคื•ืŸ ื ื•ืžืขืจืŸ.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ื™ ืžืขื–ืฉืขืจืžืึทื ื˜ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ื’ืขื•ื•ืืจืŸ ืึท ืงืึทืœื˜ ืฉืคึผืจื™ืฅ ืคึฟืึทืจ ืื•ื ื“ื–. ืขืก ืคืืจืงืขืจื˜ ืื•ื™ืก ืึทื– ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ืžืขืจ ืคึผืจืึธื‘ืœืขืžืก ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ืคืจื™ื–ื™ื– ื•ื•ื™ ืงื™ื™ืŸ ืื ื“ืขืจืข. ืื•ื™ื‘ ืื™ื™ื“ืขืจ ืจื™ืึทืœื™ื™ื–ื™ื ื’ ื“ืขื ืคืึทืงื˜ ื“ื™ ื”ื•ื™ืคึผื˜ ื˜ืขื›ื ื™ืฉ ื’ืจืื“ืŸ ืคื•ืŸ ืงื•ื•ืึทืœื™ื˜ืขื˜ ืื™ื– ืงืจืึทืš ืคืจื™ื™, ื“ืขืžืึธืœื˜ ื ืึธืš ื“ื™ ืคืึธืงื•ืก ืฉื™ืคื˜ื™ื“ ืื•ื™ืฃ ืคืจื™ืจืŸ ืคืจื™ื™.

ื•ื•ื™ื™ืœ ื’ืขื‘ื•ื™ื˜ ื“ืึทืฉื‘ืึธืจื“ ืžื™ื˜ ืคืจื™ื–ื™ื– ืื•ืŸ ื ืึธืš ืกืคึผืขื ื“ื™ื ื’ ืงื•ื•ืึทื ื˜ื™ื˜ืึทื˜ื™ื•ื•ืข ะธ ืงื•ื•ืึทืœื™ื˜ืขื˜ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื–ื™ื™ืขืจ ืกื™ื‘ื•ืช, ื“ื™ ื”ื•ื™ืคึผื˜ ืคื™ื™ึทื ื˜ ื’ืขื•ื•ืืจืŸ ืงืœืึธืจ - ืฉื•ื•ืขืจ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืื™ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืคืึธื“ืขื ืคื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ื“ืข ืจ ื ืื˜ื™ืจืœืขื›ืข ืจ ืจืขืืงืฆื™ ืข ืื•ื™ ืฃ ื“ืข ืจ ืฉืื ื“ , ืื™ ื– ื’ืขืฐืข ืŸ ื ื‘ืจืขื ืขื ื“ื™ืงืข ืจ ื—ืฉืง , ืื™ ื ืืจืฒื ืฆื•ืฉื˜ื•ืค ืŸ ืื™ ืŸ ืืจื‘ืขื˜ึพืฉื˜ืืืŸ . ืฆื• ืกื™ืกื˜ืึทืžืึทื˜ื™ืงืœื™ ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื, ืžื™ืจ ืจื™ื–ืึธืจื˜ื™ื“ ืฆื• ืึท ืžื•ืœื˜ื™-ื˜ืจืขื“ืขื“ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืœื™ื™ื˜ื•ื•ื™ื™ื˜ ืึทืงื˜ืขืจื–. ืื™ืš ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืขืก ืฆื• ื–ื™ื™ืŸ ืึทื“ืึทืคึผื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื“ื™ ื™ืึธืก ื•ื•ืขืœื˜ ืฆื•ื•ื™ื™ ืคึฟืขื“ืขื ืื•ื™ืฃ ืงืึธืœืขืงื˜ื™ื•ื• ื˜ื•ื•ื™ื˜ื˜ืขืจ ืื•ืŸ ืึทืจื˜ื™ืงืœ ืื•ื™ืฃ Habrรฉ. ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ืื™ืฆื˜ื™ืงืขืจ ื“ืขืจืฆื™ื™ืœื•ื ื’, ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื•ื ื˜ืขืจืฉื˜ืจื™ื™ึทื›ืŸ ื“ื™ ืึทืกืคึผืขืงืฅ ืคื•ืŸ ื“ื™ ื‘ืึทืฉืœื•ืก ื•ื•ืึธืก ื™ื ืคืœื•ืึทื ืกื˜ ื“ื™ ื‘ืจื™ืจื” ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก.

ื“ืขืจ ืึทืงื˜ื™ืึธืจ ืžืึธื“ืขืœ ืคื•ืŸ ืกื™ืกื˜ืขื ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ืึทืกื•ืžื– ืึทื– ืžื•ืœื˜ื™ื˜ื”ืจืขืึทื“ื™ื ื’ ื•ื•ืขืจื˜ ื–ื™ื™ืŸ ืจื’ืข ืขืกืึทื ืก. ืžืึธื“ืขืœ ืึทื‘ื“ื–ืฉืขืงืฅ ืื™ืŸ ืขืก ื•ื•ื™ ืฆื• ืงืจื™ื™ึทื– ื˜ื™ื™ึทืš ื‘ืึทื•ื ื“ืจื™ื–. ืื•ืŸ ื–ื™ื™ ื˜ืึธืŸ ื“ืึธืก ื ื™ื˜ ืžืืœ ืื•ืŸ ื“ืึธ ืื•ืŸ ื“ืึธืจื˜, ืึธื‘ืขืจ ื›ึผืžืขื˜ ืงืขืกื™ื™ื“ืขืจ ืื•ืŸ ืื•ืžืขื˜ื•ื

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ื– ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืงืึธืจื ืขืจืกื˜ืึธื•ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื™ืŸ ื“ื™ ื“ืขืจืœืื ื’ื˜ ื“ื™ืึทื’ืจืึทืžืข. ื–ื™ื™ึทืŸ ื”ื•ื™ืคึผื˜ ืึทืจื‘ืขื˜ ืื™ื– ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ืžืึทืงืจืึธืคึผืึทื˜ื˜ืขืจืŸ ืฉืขืจื“ ื“ืึทื˜ืึทื‘ืึทืกืข. ืื•ื™ื‘ ืื™ืŸ ื“ื™ ืคืึทืจื ืขืžื•ื ื’ ื•ื•ืขืœื˜ ืขืก ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ื“ืึทื˜ืŸ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ืกืขืจื•ื•ื™ืกืขืก, ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ ืึทืงื˜ื™ืึธืจ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ - ื“ืึทื˜ืŸ ืฆื•ื•ื™ืฉืŸ ืคึฟืขื“ืขื. ืื–ื•ื™, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ืึธืก ื•ื•ืึธืœื˜ ื ื™ืฉื˜ ืคืึทืจืฉืึทืคืŸ ืืคื™ืœื• ืžื™ื ื™ืžืึทืœ ืฉื•ื•ืขืจื™ืงื™ื™ื˜ืŸ ื•ื•ืขืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืื™ื ืื™ืŸ ืึท ืžืึทืœื˜ื™-ื˜ืจืขื“ื™ื“ ืกื•ื•ื™ื•ื•ืข. ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ื“ืึธืก ืžื™ื˜ืœ ืึทื– ืึทื‘ื“ื–ืฉืขืงืฅ ื‘ืืงื•ืžืขืŸ ืคื•ืŸ ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืคืึธื“ืขื-ื–ื™ื›ืขืจ, ืื•ืŸ ื™ื™ื“ื™ืœื™ ื’ืึธืจ ื ื™ื˜-ืžื™ื•ื˜ืึทื‘ืึทืœ. ื•ื•ื™ ืื™ืจ ื•ื•ื™ืกืŸ, ื“ื™ ื™ืขื ืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ ืคึฟื•ืŸ ืขื˜ืœืขื›ืข ืคึฟืขื“ืขื ืึธืŸ ืจื™ื–ืึธืจื˜ื™ื ื’ ืฆื• ืงื™ื™ืŸ ืœืึทืงื™ื ื’, ื•ื•ืึธืก ื”ืื˜ ืึท ื•ื•ื•ื™ืœื˜ื•ื™ืง ื•ื•ื™ืจืงื•ื ื’ ืื•ื™ืฃ ืคืึธืจืฉื˜ืขืœื•ื ื’.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–ื“ื™ ืฆื•ื•ื™ื™ื˜ืข ื•ื•ื™ื›ื˜ื™ืง ืคืึทืงื˜ืึธืจ ื•ื•ืึธืก ื™ื ืคืœื•ืึทื ืกื˜ ื“ื™ ื‘ืจื™ืจื” ืคื•ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ื– ืื•ื ื“ื–ืขืจ ื•ื•ืึธืœืงืŸ ืึทืคึผื™. ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื™ื ืกืคึผื™ื™ืขืจื“ ื“ื•ืจืš ื“ื™ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ืฆื•ื’ืึทื ื’ ืื ื’ืขื ื•ืžืขืŸ ื“ื•ืจืš ื’ื™ื˜. ื•ื•ื™ ืื™ื, ืžื™ืจ ืึทื™ืžืขื“ ื‘ื™ื™ึท ืึธืคืคืœื™ื ืข-ืขืจืฉื˜ืขืจ ืึทืคึผื™, ื•ื•ืึธืก ืงื•ืงื˜ ืžืขืจ ื•ื•ื™ ืฆื•ื ืขืžืขืŸ ืคึฟืึทืจ ื•ื•ืึธืœืงืŸ ืงืœื™ื™ืึทื ืฅ. ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืื ื’ืขื ื•ืžืขืŸ ืึทื– ื–ื™ื™ ื•ื•ืึธืœื˜ ื ืึธืจ ืคึผืึธืžืคึผืข ืื•ื™ืก ื“ื™ ืคื•ืœ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ ืึทืžืึธืœ, ืื•ืŸ ื“ืขืžืึธืœื˜ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ืื™ืŸ ื“ื™ ืึธื•ื•ื•ืขืจื•ื•ืขืœืžื™ื ื’ ืžืขืจื”ื™ื™ึทื˜ ืคื•ืŸ ืงืึทืกืขืก ื•ื•ืึธืœื˜ ืคึผืึทืกื™ืจืŸ ื“ื•ืจืš ืจืึธื•ืœื™ื ื’ ืื•ื™ืก ืขื ื“ืขืจื•ื ื’ืขืŸ. ื•ื•ื™ื™, ื“ื™ ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืื™ื– ื ืึธืš ื‘ืœื•ื™ื– ืื™ืŸ ื“ื™ ื˜ืขืึธืจืขื˜ื™ืฉ ื–ืึธื ืข, ืื•ืŸ ืงืœื™ื™ืึทื ืฅ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื’ืขืœืขืจื ื˜ ื•ื•ื™ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ืคึผืึทื˜ืฉืึทื– ืื™ืŸ ืคื™ืจ. ืคึฟืึทืจ ื“ืขื ื–ืฒึทื ืขืŸ ืคึฟืึทืจืึทืŸ ืึท ืฆืึธืœ ืึธื‘ื™ืขืงื˜ื™ื•ื•ืข ืกื™ื‘ื•ืช, ื•ื•ืึธืก, ื›ึผื“ื™ ื ื™ืฉื˜ ืฆื• ืคึฟืึทืจื”ืึทืœื˜ืŸ ื“ื™ ืึทืจืฒึทื ืคึฟื™ืจ, ื•ื•ืขืœืŸ ืžื™ืจ ืื™ื‘ืขืจืœืึธื–ืŸ ืงืœืึทืžืขืจืŸ. ืื™ืฆื˜, ื•ื•ืึธืก ืื™ื– ืคื•ืŸ ืคื™ืœ ืžืขืจ ืื™ื ื˜ืขืจืขืก ืื™ื– ื“ื™ ื™ื ืกื˜ืจืึทืงื˜ื™ื•ื• ืงืึทื ืงืœื•ื–ืฉืึทื ื– ืคื•ืŸ ื“ื™ ืœืขืงืฆื™ืข ื•ื•ืขื’ืŸ ื•ื•ืึธืก ื›ืึทืคึผืึทื ื– ื•ื•ืขืŸ ืึทืŸ ืึทืคึผื™ ื–ืื’ื˜ "ื" ืื•ืŸ ื–ื™ื™ืŸ ืงืึทื ืกื•ืžืขืจ ื˜ื•ื˜ ื ื™ืฉื˜ ื–ืึธื’ืŸ "ื‘".

ืื•ื™ื‘ ืื™ืจ ื™ืžืึทื“ื–ืฉืึทืŸ ื’ื™ื˜, ื•ื•ืึธืก, ื•ื•ืขืŸ ืื™ืจ ื“ื•ืจื›ืคื™ืจืŸ ืึท ืฆื™ืขืŸ ื‘ืึทืคึฟืขืœ, ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืึทืคึผืœื™ื™ื™ื ื’ ืคึผืึทื˜ืฉืึทื– ืฆื• ืึท ื”ื™ื’ืข ืžืึธืžืขื ื˜ื‘ื™ืœื“, ืงืึทืžืคึผืขืจื– ื–ื™ื™ืŸ ืคื•ืœ ืฉื˜ืึทื˜ ืžื™ื˜ ื“ื™ ืคื•ืœ ืกืขืจื•ื•ืขืจ ืฉื˜ืึทื˜, ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืึท ื’ืึทื ืฅ ืคึผื™ื ื˜ืœืขืš ื’ืขื“ืึทื ืง ืคื•ืŸ ื•ื•ื™ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ืึทืงืขืจื– ืื™ืŸ ื•ื•ืึธืœืงืŸ. ืงืœื™ื™ืึทื ืฅ. ืขืก ืื™ื– ื’ืจื™ื ื’ ืฆื• ื˜ืจืขืคืŸ ืึทื– ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืขืก, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืึทืœืึทืงื™ื™ื˜ ืฆื•ื•ื™ื™ DOM ื‘ื™ื™ืžืขืจ ืื™ืŸ ื–ื›ึผืจื•ืŸ ืžื™ื˜ ืžืขื˜ืึท ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืึทืœืข ืกืขืจื•ื•ืขืจืก ืื•ืŸ ื”ื™ื’ืข ื˜ืขืงืขืก. ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– ืื•ื™ื‘ ืึท ื‘ืึทื ื™ืฆืขืจ ืกื˜ืึธืจื– 500 ื˜ื•ื™ื–ื ื˜ ื˜ืขืงืขืก ืื™ืŸ ื“ื™ ื•ื•ืึธืœืงืŸ, ืฆื• ืกื™ื ื’ืงืจืึทื ื™ื™ื– ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืจื™ืงืจื™ื™ื™ื˜ ืื•ืŸ ืฆืขืฉื˜ืขืจืŸ ืฆื•ื•ื™ื™ ื‘ื™ื™ืžืขืจ ืžื™ื˜ 1 ืžื™ืœื™ืึธืŸ ื ืึธื•ื“ื–. ืื‘ืขืจ ื™ืขื“ืขืจ ื ืึธื“ืข ืื™ื– ืึท ื’ืขืžื™ื™ื ื–ืึทื ืžื™ื˜ ืึท ื’ืจืึทืคื™ืง ืคื•ืŸ ืกืึทื‘ืึทื‘ื“ื–ืฉืขืงืฅ. ืื™ืŸ ื“ืขื ืœื™ื›ื˜, ื“ื™ ืคึผืจืึธืคื™ืœื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ื–ืขื ืขืŸ ื“ืขืจื•ื•ืึทืจื˜. ืขืก ื”ืึธื˜ ื–ื™ืš ืึทืจื•ื™ืกื’ืขื•ื•ื™ื–ืŸ ืึทื– ืืคื™ืœื• ืึธืŸ ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื“ื™ ืžืขืจื“ื–ืฉื™ื ื’ ืึทืœื’ืขืจื™ื“ืึทื, ื“ื™ ื–ื™ื™ืขืจ ืคึผืจืึธืฆืขื“ื•ืจ ืคื•ืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืื•ืŸ ื“ืขืจื ืึธืš ื“ื™ืกื˜ืจื•ื™ื™ื ื’ ืึท ืจื™ื–ื™ืง ื ื•ืžืขืจ ืคื•ืŸ ืงืœื™ื™ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ืงืึธืก ืึท ืฉื™ื™ืŸ ืคึผืขื ื™. ืคื•ืŸ ื‘ืึทื ื™ืฆืขืจ ืกืงืจื™ืคึผืก. ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืžื™ืจ ืคืึทืจืจื™ื›ื˜ืŸ ื“ื™ ืจื’ืข ื•ื•ื™ื›ื˜ื™ืง ืงืจื™ื˜ืขืจื™ืึธืŸ ืื™ืŸ ื˜ืฉื•ื–ื™ื ื’ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก - ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ CRUD ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืึธืŸ ื“ื™ื ืึทืžื™ืฉ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ.

ืื ื“ืขืจืข ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ื–ืขื ืขืŸ ืžืขืจ ื˜ืจืื“ื™ืฆื™ืื ืขืœืŸ ืื•ืŸ ื–ื™ื™ืขืจ ืจืฉื™ืžื” ืื™ื– ื•ื•ื™ ื’ื™ื™ื˜.

  1. ืคึฟืึธื“ืขื ื–ื™ื›ืขืจืงื™ื™ึทื˜.
  2. ืžื•ืœื˜ื™ืคึผืจืึธืกืขืกื™ื ื’. ื“ื™ืงื˜ื™ื™ื˜ื™ื“ ื“ื•ืจืš ื“ื™ ืคืึทืจืœืึทื ื’ ืฆื• ื ื•ืฆืŸ ื“ื™ ื–ืขืœื‘ืข ื“ืึทื˜ืึทื‘ื™ื™ืก ื‘ื™ื™ึทืฉืคึผื™ืœ ืฆื• ืกื™ื ื’ืงืจืึทื ื™ื™ื– ื“ื™ ืฉื˜ืึทื˜ ื ื™ื˜ ื‘ืœื•ื™ื– ืฆื•ื•ื™ืฉืŸ ืคึฟืขื“ืขื, ืึธื‘ืขืจ ืื•ื™ืš ืฆื•ื•ื™ืฉืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื™ืึธืก ื™ืงืกื˜ืขื ืฉืึทื ื–.
  3. ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคืึธืจืฉื˜ืขืœืŸ ืกื˜ืึธืจื“ ืขื ื˜ื™ื˜ื™ื– ื•ื•ื™ ื ื™ื˜-ืžื™ื•ื˜ืึทื‘ืึทืœ ืึทื‘ื“ื–ืฉืขืงืฅ
  4. ืงื™ื™ืŸ ื“ื™ื ืึทืžื™ืฉ ืึทืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ CRUD ืึทืคึผืขืจื™ื™ืฉืึทื ื–.
  5. ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ืงืขืจื“ื™ืง ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ื–ื•ื™ืขืจ: ืึทื˜ืึธืžื™ืงื™ื™ื˜, ืงืึธื ืกื™ืกื˜ืขื ืกื™, ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜ ืื•ืŸ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™.
  6. ื’ื™ื›ืงื™ื™ึทื˜ ืื•ื™ืฃ ื“ื™ ืžืขืจืกื˜ ืคืึธืœืงืก ืงืึทืกืขืก.

ืžื™ื˜ ื“ืขื ื’ืึทื ื’ ืคื•ืŸ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ, SQLite ืื™ื– ื’ืขื•ื•ืขืŸ ืื•ืŸ ื‘ืœื™ื™ื‘ื˜ ืึท ื’ื•ื˜ ื‘ืจื™ืจื”. ืึธื‘ืขืจ, ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ืœืขืจื ืขืŸ ืคื•ืŸ ืึทืœื˜ืขืจื ืึทื˜ื™ื•ื•ืขืก, ืื™ืš ื’ืขืคึฟื•ื ืขืŸ ืึท ื‘ื•ืš "ื‘ืึทืงื•ืžืขืŸ ืกื˜ืึทืจื˜ืขื“ ืžื™ื˜ LevelDB". ืื•ื ื˜ืขืจ ืื™ืจ ืคื™ืจืขืจืฉืึทืคื˜, ืึท ื‘ืขื ื˜ืฉืžืึทืจืง ืื™ื– ื’ืขื•ื•ืขืŸ ืงืึทืžืคึผืขืจื™ื ื’ ื“ื™ ื’ื™ื›ืงื™ื™ึทื˜ ืคื•ืŸ ืึทืจื‘ืขื˜ ืžื™ื˜ ืคืึทืจืฉื™ื“ืขื ืข ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืื™ืŸ ืคืึทืงื˜ื™ืฉ ื•ื•ืึธืœืงืŸ ืกื™ื ืขืจื™ืึธื•ื–. ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ื™ืงืกื™ื“ื™ื“ ืื•ื ื“ื–ืขืจ ื•ื•ื™ืœื“ืึทืกื˜ ืขืงืกืคึผืขืงื˜ื™ื™ืฉืึทื ื–. ืื™ืŸ ื“ื™ ืžืขืจืกื˜ ืคืึธืœืงืก ืงืึทืกืขืก - ื‘ืึทืงื•ืžืขืŸ ืึท ืœื•ื™ืคึฟืขืจ ืื•ื™ืฃ ืึท ืกืึธืจื˜ื™ืจื˜ ืจืฉื™ืžื” ืคื•ืŸ ืึทืœืข ื˜ืขืงืขืก ืื•ืŸ ืึท ืกืึธืจื˜ื™ืจื˜ ืจืฉื™ืžื” ืคื•ืŸ ืึทืœืข ื˜ืขืงืขืก ืคึฟืึทืจ ืึท ื’ืขื’ืขื‘ืŸ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ - LMDB ืื™ื– ื’ืขื•ื•ืขืŸ 10 ืžืืœ ืคืึทืกื˜ืขืจ ื•ื•ื™ SQLite. ื“ื™ ื‘ืจื™ืจื” ืื™ื– ื’ืขื•ื•ืขืŸ ืงืœืึธืจ.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

2. ืœืžื“ื‘ ืคึผืึทื–ื™ืฉืึทื ื™ื ื’

LMDB ืื™ื– ืึท ื–ื™ื™ืขืจ ืงืœื™ื™ืŸ ื‘ื™ื‘ืœื™ืึธื˜ืขืง (ื‘ืœื•ื™ื– 10 ืง ืจืึธื•ื–) ื•ื•ืึธืก ื™ืžืคึผืœืึทืžืึทื ืฅ ื“ื™ ืœืึธื•ืึทืกื˜ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœ ืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– - ืกื˜ืึธืจื™ื“ื–ืฉ.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ืขืจ ืื•ื™ื‘ืŸ ื“ื™ืึทื’ืจืึทืžืข ื•ื•ื™ื™ื–ื˜ ืึทื– ืงืึทืžืคึผืขืจื™ื ื’ LMDB ืžื™ื˜ SQLite, ื•ื•ืึธืก ืื•ื™ืš ื™ืžืคึผืœืึทืžืึทื ืฅ ื”ืขื›ืขืจ ืœืขื•ื•ืขืœืก, ืื™ื– ื‘ื›ืœืœ ื ื™ื˜ ืžืขืจ ืจื™ื›ื˜ื™ืง ื•ื•ื™ SQLite ืžื™ื˜ ืงืึธืจ ื“ืึทื˜ืึท. ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืžืขืจ ืฉื™ื™ืŸ ืฆื• ืฆื™ื˜ื™ืจืŸ ื“ื™ ื–ืขืœื‘ืข ืกื˜ืึธืจื™ื“ื–ืฉ ืขื ื“ื–ืฉืึทื ื– ื•ื•ื™ ื’ืœื™ื™ึทืš ืงืึธืžืคึผืขื˜ื™ื˜ืึธืจืก - BerkeleyDB, LevelDB, Sophia, RocksDB, ืืื–"ื• ื•. ืขืก ื–ืขื ืขืŸ ืืคื™ืœื• ื“ื™ื•ื•ืขืœืึทืคึผืžืึทื ืฅ ื•ื•ื• ืœืžDB ืืงื˜ืŸ ื•ื•ื™ ืึท ืกื˜ืึธืจื™ื“ื–ืฉ ืžืึธื˜ืึธืจ ืงืึธืžืคึผืึธื ืขื ื˜ ืคึฟืึทืจ SQLite. ื“ืขืจ ืขืจืฉื˜ืขืจ ืึทื–ืึท ืขืงืกืคึผืขืจื™ืžืขื ื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ืŸ 2012 ืื•ื™ืกื’ืขื’ืขื‘ืŸ ื“ื•ืจืš LMDB ื”ืึธื•ื•ืึทืจื“ ื˜ืฉื•. ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ืึทื–ื•ื™ ื™ื ื˜ืจื™ื’ื™ื ื’ ืึทื– ื–ื™ื™ืŸ ืื™ื ื™ืฆื™ืื˜ื™ื•ื• ืื™ื– ืคึผื™ืงื˜ ื–ื™ืš ื“ื•ืจืš OSS ืขื ื˜ื•ื–ื™ืึทืกืฅ, ืื•ืŸ ื’ืขืคื•ื ืขืŸ ื–ื™ื™ึทืŸ ืงืึทื ื˜ื™ื ื™ื•ื™ื™ืฉืึทืŸ ืื™ืŸ ื“ืขื ืžืขื ื˜ืฉ. LumoSQL. ืื™ืŸ ื™ืื ื•ืืจ 2020, ื“ืขืจ ืžื—ื‘ืจ ืคื•ืŸ ื“ืขื ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื’ืขื•ื•ืขืŸ Den Shearer ื“ืขืจืœืื ื’ื˜ ืขืก ื‘ื™ื™ LinuxConfAu.

LMDB ืื™ื– ื“ืขืจ ื”ื•ื™ืคึผื˜ ื’ืขื ื™ืฆื˜ ื•ื•ื™ ืึท ืžืึธื˜ืึธืจ ืคึฟืึทืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–. ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืึธื•ื– ื–ื™ื™ืŸ ืื•ื™ืกื–ืขืŸ ืฆื• ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก OpenLDAP, ืฐืขืœื› ืข ื–ืฒื ืข ืŸ ื’ืขืฐืข ืŸ ืฉื˜ืืจ ืง ืื•ืžืฆื•ืคืจื™ื“ ืŸ ืžื™ ื˜ ื‘ืขืจืงืขืœื™ ื“ ืฐ ื™ ื“ืข ืจ ื‘ืื–ืข ื ืคื ืจ ื–ืฒืข ืจ ืคืจืื™ืขืงื˜ . ืึธื ื’ืขื”ื•ื™ื‘ืŸ ืคึฟื•ืŸ ืึท ื‘ืึทืฉื™ื™ื“ืขื ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง btree, Howard Chu ืื™ื– ื‘ื™ื›ื•ืœืช ืฆื• ืฉืึทืคึฟืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืžืขืจืกื˜ ืคืึธืœืงืก ืึทืœื˜ืขืจื ืึทื˜ื™ื•ื•ืขืก ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืฆื™ื™ื˜. ื–ืฒึทืŸ ื–ื™ื™ืขืจ ืงื™ืœืŸ ื‘ืึทืจื™ื›ื˜ ื”ืึธื˜ ืขืจ ื’ืขื•ื•ื™ื“ืžืขื˜ ื“ืขืจ ื“ืึธื–ื™ืงืขืจ ื’ืขืฉื™ื›ื˜ืข, ื•ื•ื™ ืื•ื™ืš ื“ืขืจ ืื™ื ืขืจืœืขื›ืขืจ ืกื˜ืจื•ืงื˜ื•ืจ ืคึฟื•ืŸ ืœืžื“ื‘. "ื“ื™ ื‘ืœื™ืฅ ื–ื›ึผืจื•ืŸ-ืžืึทืคึผื˜ ื“ืึทื˜ืึทื‘ืึทืกืข". ื ื’ื•ื˜ืข ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ืงืึทื ื’ืงืขืจื™ื ื’ ืึท ืกื˜ืึธืจื™ื“ื–ืฉ ืžืขื›ื™ืจืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืฉืขืจื“ ื“ื•ืจืš Leonid Yuryev (aka yleo) ืคึฟื•ืŸ Positive Technologies ืื™ืŸ ื–ื™ื™ืŸ ื‘ืึทืจื™ื›ื˜ ืื™ืŸ Highload 2015 "ื“ื™ LMDB ืžืึธื˜ืึธืจ ืื™ื– ืึท ืกืคึผืขืฆื™ืขืœ ืžื™ื™ึทืกื˜ืขืจ". ืื™ืŸ ืขืก, ืขืจ ืจืขื“ื˜ ื•ื•ืขื’ืŸ LMDB ืื™ืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ ืึท ืขื ืœืขืš ืึทืจื‘ืขื˜ ืคื•ืŸ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ReOpenLDAP, ืื•ืŸ LevelDB ืื™ื– ืฉื•ื™ืŸ ืื•ื ื˜ืขืจื˜ืขื ื™ืง ืฆื• ืงืึธืžืคึผืึทืจืึทื˜ื™ื•ื•ืข ืงืจื™ื˜ื™ืง. ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, Positive Technologies ืืคื™ืœื• ื”ืื˜ ืึทืŸ ืึทืงื˜ื™ื•ื•ืœื™ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ื’ืึธืคึผืœ MDBX ืžื™ื˜ ื–ื™ื™ืขืจ ื’ืขืฉืžืึทืง ืคึฟืขื™ึดืงื™ื™ื˜ืŸ, ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ืื•ืŸ ื‘ืึทื’ืคื™ืงืก.

LMDB ืื™ื– ืึธืคื˜ ื’ืขื ื™ืฆื˜ ื•ื•ื™ ืึทืŸ ื•ื•ื™-ืื™ื– ืกื˜ืึธืจื™ื“ื–ืฉ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืžืึธื–ื™ืœืœืึท ืคื™ืจืขืคืึธืงืก ื‘ืœืขื˜ืขืจืขืจ ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ ืขืก ืคึฟืึทืจ ืึท ื ื•ืžืขืจ ืคื•ืŸ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ, ืื•ืŸ, ืกื˜ืึทืจื˜ื™ื ื’ ืคื•ืŸ ื•ื•ืขืจืกื™ืข 9, Xcode ื‘ื™ืœื›ืขืจ ื–ื™ื™ึทืŸ SQLite ืคึฟืึทืจ ืกื˜ืึธืจื™ื ื’ ื™ื ื“ืขืงืกื™ื–.

ื“ืขืจ ืžืึธื˜ืึธืจ ื”ืื˜ ืื•ื™ืš ื’ืขืžืื›ื˜ ื–ื™ื™ืŸ ืฆื™ื™ื›ืŸ ืื™ืŸ ื“ืขืจ ื•ื•ืขืœื˜ ืคื•ืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’. ื˜ืจืึทืกืขืก ืคื•ืŸ ื–ื™ื™ึทืŸ ื ื•ืฆืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคื™ื ืขืŸ ืื™ืŸ ื“ื™ ื™ืึธืก ืงืœื™ืขื ื˜ ืคึฟืึทืจ ื˜ืขืœืขื’ืจืึทื. ืœื™ื ืงืขื“ื™ืŸ ืื™ื– ืืคื™ืœื• ื•ื•ื™ื™ื˜ืขืจ ืื•ืŸ ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ LMDB ื•ื•ื™ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืกื˜ืึธืจื™ื“ื–ืฉ ืคึฟืึทืจ ื–ื™ื™ืŸ ื›ืึธื•ืžื’ืจืึธื•ืŸ ื“ืึทื˜ืŸ ืงืึทื˜ืฉื™ื ื’ ืคืจื™ื™ืžื•ื•ืขืจืง ืจืึทืงืขื˜ ื“ืึทื˜ืึท, ื•ื•ืขื’ืŸ ื•ื•ืึธืก ื“ืขืจืฆื™ื™ืœื˜ ืื™ืŸ ื–ื™ื™ืŸ ืึทืจื˜ื™ืงืœ ืื™ืŸ 2016.

LMDB ืื™ื– ื”ืฆืœื—ื” ืคื™ื™ื˜ื™ื ื’ ืคึฟืึทืจ ืึท ืึธืจื˜ ืื™ืŸ ื“ืขืจ ื–ื•ืŸ ืื™ืŸ ื“ื™ ื ื™ืฉืข ืœื™ื ืงืก ื“ื•ืจืš BerkeleyDB ื ืึธืš ืขืก ื’ืขืงื•ืžืขืŸ ืื•ื ื˜ืขืจ ื“ื™ ืงืึธื ื˜ืจืึธืœ ืคื•ืŸ Oracle. ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ื– ืœื™ื‘ ื’ืขื”ืื˜ ืคึฟืึทืจ ื–ื™ื™ึทืŸ ื’ื™ื›ืงื™ื™ึทื˜ ืื•ืŸ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™, ืืคื™ืœื• ืงืึทืžืคึผืขืจื“ ืžื™ื˜ ื–ื™ื™ืŸ ืคึผื™ืจื–. ื•ื•ื™ ืื™ืจ ื•ื•ื™ืกืŸ, ืขืก ื–ืขื ืขืŸ ืงื™ื™ืŸ ืคืจื™ื™ ืœืึธื ื˜ืฉื™ื–, ืื•ืŸ ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ื•ื ื˜ืขืจืฉื˜ืจื™ื™ึทื›ืŸ ื“ื™ ื”ืึทื ื“ืœ-ืึทื•ื•ืขืง ืึทื– ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืคึผื ื™ื ื•ื•ืขืŸ ื˜ืฉื•ื–ื™ื ื’ ืฆื•ื•ื™ืฉืŸ LMDB ืื•ืŸ SQLite. ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ืื•ื™ื‘ืŸ ืงืœืืจ ื“ืขืžืึทื ืกื˜ืจื™ื™ืฅ ื•ื•ื™ ื’ืขื•ื•ืืงืกืŸ ื’ื™ื›ืงื™ื™ึทื˜ ืื™ื– ืึทื˜ืฉื™ื•ื•ื“. ืขืจืฉื˜ืขืจ, ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื‘ืึทืฆืึธืœืŸ ืคึฟืึทืจ ื ืึธืš ืœื™ื™ึทืขืจืก ืคื•ืŸ ืึทื‘ืกื˜ืจืึทืงืฆื™ืข ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ืกืง ืกื˜ืึธืจื™ื“ื–ืฉ. ืขืก ืื™ื– ืงืœืึธืจ ืึทื– ืึท ื’ื•ื˜ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืงืขืŸ ื ื™ืฉื˜ ื˜ืึธืŸ ืึธืŸ ื–ื™ื™, ืื•ืŸ ื–ื™ื™ ื•ื•ืขืœืŸ ื™ื ืขื•ื•ืึทื˜ืึทื‘ืœื™ ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื™ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึธื“, ืึธื‘ืขืจ ื–ื™ื™ ื•ื•ืขืœืŸ ื–ื™ื™ืŸ ืคื™ืœ ืกืึทื˜ืึทืœืขืจ. ื–ื™ื™ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืคืืจืœืื ื’ื˜ ื“ื•ืจืš ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืœืžืฉืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคึฟืจืื’ืŸ ืื™ืŸ ื“ื™ SQL ืฉืคึผืจืึทืš. ืฆื•ื•ื™ื™ื˜ื ืก, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืึธืคึผื˜ื™ืžืึทืœืœื™ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืžืึทืคึผื™ื ื’ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ื™ืฃ ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ืกืง ืกื˜ืึธืจื™ื“ื–ืฉ. ืื•ื™ื‘ ืกืงืœื™ื˜ืข ืื™ืŸ ืžื™ื™ืŸ ืึทืจื‘ืขื˜ ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ืกื˜ืึทื˜ื™ืกื˜ื™ืฉ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ืคื•ืŸ ืึท ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืื™ืจ, ื•ื•ื™ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ, ืื™ื– ื’ืขื–ื•ื ื˜ ืึทื•ื•ืขืจ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื•ื•ืขืจืงืœืึธื•ื“ ืกื™ื ืขืจื™ืึธื•ื–. ืคึฟืึทืจ ืึท ืžืขืจ ืคึผืจืึธื“ื•ืงื˜ื™ื•ื• ืœื™ื™ื–ื•ื ื’, ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืฆืึธืœืŸ ืึท ื’ืขื•ื•ืืงืกืŸ ืคึผืจื™ื™ึทื– ืงื•ื•ื™ื˜ืœ ื‘ื™ื™ื“ืข ืคึฟืึทืจ ื“ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ื“ืขืจ ืขืจืฉื˜ ืœื™ื™ื–ื•ื ื’ ืื•ืŸ ืคึฟืึทืจ ื“ื™ ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืฉื˜ื™ืฆืŸ.

3. ื“ืจื™ื™ ืขืžื•ื“ื™ื ืคื•ืŸ ืœืžื“ื‘

ื ืื›ื“ืขื ื•ื•ืืก ืžืขืŸ ื”ืื˜ ื’ืขืงื•ืงื˜ ืื•ื™ืคืŸ ืœืžื“ื‘ ืคื•ืŸ ื ืคื•ื™ื’ืœ ืื•ื™ื’, ืื™ื– ืฉื•ื™ืŸ ืฆื™ื™ื˜ ืฆื• ื’ื™ื™ืŸ ื˜ื™ืคืขืจ. ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ื“ืจื™ื™ ืกืขืงืฉืึทื ื– ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืฆื• ืึทืŸ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืคึผื™ืœืขืจื– ืื•ื™ืฃ ื•ื•ืึธืก ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืจืขืกืฅ:

  1. ื–ื™ืงืึธืจืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก ื•ื•ื™ ืึท ืžืขืงืึทื ื™ื–ืึทื ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ืกืง ืื•ืŸ ืกื™ื ื’ืงืจืึทื ื™ื™ื–ื™ื ื’ ื™ื ืขืจืœืขืš ื“ืึทื˜ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื–.
  2. ื‘ +-ื‘ื•ื™ื ื•ื•ื™ ืึทืŸ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ืกื˜ืึธืจื“ ื“ืึทื˜ืŸ.
  3. ืงืึธืคึผื™-ืื•ื™ืฃ-ืฉืจื™ื™ึทื‘ืŸ ื•ื•ื™ ืึท ืฆื•ื’ืึทื ื’ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืึทืกื™ื“ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื•ืŸ ืžื•ืœื˜ื™ื•ื•ืขืจืกื™ืึธืŸ.

3.1. ื•ื•ื™ื™ืœ #1. ื–ื™ืงืึธืจืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก

ื–ื›ึผืจื•ืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก ื–ืขื ืขืŸ ืึทื–ืึท ืึท ื•ื•ื™ื›ื˜ื™ืง ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืขืœืขืžืขื ื˜ ืึทื– ื–ื™ื™ ืืคื™ืœื• ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื™ืŸ ื“ื™ ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™. ื™ืฉื•ื– ืคื•ืŸ ืงืึทื˜ืฉื™ื ื’ ืื•ืŸ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ืคื•ืŸ ืึทืงืกืขืก ืฆื• ืกื˜ืึธืจื“ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื–ืขื ืขืŸ ื’ืึธืจ ืœื™ื ืงืก ืฆื• ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื. LMDB ื›ึผื•ืœืœ ืงื™ื™ืŸ ืงืึทืฉ ืื™ืŸ ื–ื™ืš. ื“ืึธืก ืื™ื– ืึท ื‘ืึทื•ื•ื•ืกื˜ื–ื™ื ื™ืง ื‘ืึทืฉืœื•ืก ืคื•ืŸ ื“ืขืจ ืžื—ื‘ืจ, ื•ื•ื™ื™ึทืœ ืœื™ื™ืขื ืขืŸ ื“ืึทื˜ืŸ ื’ืœื™ื™ึทืš ืคึฟื•ืŸ ืžืึทืคึผื˜ ื˜ืขืงืขืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืฉื ื™ื™ึทื“ืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืขืงืŸ ืื™ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืžืึธื˜ืึธืจ. ื•ื ื˜ืขืจ ืื™ื– ืึท ื•ื•ื™ื™ึทื˜ ืคื•ืŸ ื’ืึทื ืฅ ืจืฉื™ืžื” ืคื•ืŸ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™.

  1. ื“ื™ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืื™ื– ืฆื• ื”ืึทืœื˜ืŸ ื“ื™ ืงืึธื ืกื™ืกื˜ืขื ืกื™ ืคื•ืŸ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ื•ื•ืขืŸ ืื™ืจ ืึทืจื‘ืขื˜ ืžื™ื˜ ืขื˜ืœืขื›ืข ืคึผืจืึทืกืขืกืึทื–. ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’, ื“ื™ ืžืึทืงืึทื ื™ืงืก ืื™ื– ื“ื™ืกืงืึทืกื˜ ืื™ืŸ ื“ืขื˜ืึทืœ ืื•ืŸ ืžื™ื˜ ื‘ื™ืœื“ืขืจ.
  2. ื“ืขืจ ืึทื•ื•ืขืง ืคื•ืŸ ืงืึทื˜ืฉืขืก ื’ืึธืจ ื™ืœื™ืžืึทื ื™ื™ืฅ LMDB ืคื•ืŸ ื“ื™ ืึธื•ื•ื•ืขืจื›ืขื“ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื“ื™ื ืึทืžื™ืฉ ืึทืœืึทืงื™ื™ืฉืึทื ื–. ืœื™ื™ืขื ืขืŸ ื“ืึทื˜ืŸ ืื™ืŸ ืคื™ืจ ืžื™ื˜ืœ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึท ื˜ื™ื™ึทื˜ืœ ืฆื• ื“ื™ ืจื™ื›ื˜ื™ืง ืึทื“ืจืขืก ืื™ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื›ึผืจื•ืŸ ืื•ืŸ ื’ืึธืจื ื™ืฉื˜ ืžืขืจ. ืขืก ืกืึธื•ื ื“ืก ื•ื•ื™ ื•ื•ื™ืกื ืฉืึทืคึฟื˜ ื‘ืขืœืขื˜ืจื™ืกื˜ื™ืง, ืึธื‘ืขืจ ืื™ืŸ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืžืงื•ืจ ืงืึธื“ ืึทืœืข ืงืึทืœืœืก ืฆื• ืงืึทืœืœืึธืง ื–ืขื ืขืŸ ืงืึทื ืกืึทื ื˜ืจื™ื™ื˜ืึทื“ ืื™ืŸ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคื•ื ืงืฆื™ืข.
  3. ื“ืขืจ ืึทื•ื•ืขืง ืคื•ืŸ ืงืึทื˜ืฉืขืก ืื•ื™ืš ืžื™ื˜ืœ ื“ืขืจ ืึทื•ื•ืขืง ืคื•ืŸ ืœืึทืงืก ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ืคื•ืŸ ื–ื™ื™ืขืจ ืึทืงืกืขืก. ืœื™ื™ืขื ืขืจ, ืคื•ืŸ ื•ื•ืขืœื›ืข ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืึท ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ื ื•ืžืขืจ ืคื•ืŸ ืœื™ื™ืขื ืขืจ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ื˜ืึธืŸ ื ื™ื˜ ื˜ืจืขืคืŸ ืึท ืื™ื™ืŸ ืžื•ื˜ืขืงืก ืื•ื™ืฃ ื–ื™ื™ืขืจ ื•ื•ืขื’ ืฆื• ื“ื™ ื“ืึทื˜ืŸ. ืจืขื›ื˜ ืฆื• ื“ืขื, ื“ื™ ืœื™ื™ืขื ืขืŸ ื’ื™ื›ืงื™ื™ึทื˜ ื”ืื˜ ื™ื“ืขืึทืœ ืœื™ื ืขืึทืจ ืกืงืึทืœืึทื‘ื™ืœื™ื˜ื™ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืงืคึผื•ืก. ืื™ืŸ LMDB, ื‘ืœื•ื™ื– ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื–ืขื ืขืŸ ืกื™ื ื’ืงืจืึทื ื™ื™ื–ื“. ืขืก ืงืขืŸ ื–ื™ื™ืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ืฉืจื™ื™ื‘ืขืจ ืื™ืŸ ืึท ืฆื™ื™ึทื˜.
  4. ื ืžื™ื ื™ืžื•ื ืคื•ืŸ ืงืึทื˜ืฉื™ื ื’ ืื•ืŸ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ืœืึธื’ื™ืง ื™ืœื™ืžืึทื ื™ื™ืฅ ื“ื™ ื’ืึธืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ื˜ื™ืคึผ ืคื•ืŸ ืขืจืจืึธืจืก ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืืจื‘ืขื˜ืŸ ืื™ืŸ ืึท ืžื•ืœื˜ื™-ื˜ืจืขื“ื™ื“ ืกื•ื•ื™ื•ื•ืข. ืขืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ืฆื•ื•ื™ื™ ื˜ืฉื™ืงืึทื•ื•ืข ื“ืึทื˜ืึทื‘ื™ื™ืก ืฉื˜ื•ื“ื™ื•ื ื‘ื™ื™ ื“ื™ Usenix OSDI 2014 ื–ื™ืฆื•ื ื’: "ืึทืœืข ื˜ืขืงืข ืกื™ืกื˜ืขืžืขืŸ ื–ืขื ืขืŸ ื ื™ืฉื˜ ื‘ืืฉืืคืŸ ื’ืœื™ื™ึทืš: ืื•ื™ืฃ ื“ื™ ืงืึทืžืคึผืœืขืงืกื™ื˜ื™ ืคื•ืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืงืจืึทืฉ ืงืึธื ืกื™ืกื˜ืขื ื˜ ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธื ืก" ะธ "ื˜ืึธืจื˜ืฉืขืจื™ื ื’ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืคึฟืึทืจ ืฉืคึผืึทืก ืื•ืŸ ื ื•ืฅ". ืคึฟื•ืŸ ื–ื™ื™ ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืึทื ืคึผืจืขืกื™ื“ืขื ื˜ื™ื“ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™ ืคื•ืŸ LMDB ืื•ืŸ ื“ื™ ื›ึผืžืขื˜ ืคืœืึธืœืึทืก ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืึทืกื™ื“ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก, ื•ื•ืึธืก ืื™ื– ื”ืขื›ืขืจ ื•ื•ื™ ื“ื™ ืคื•ืŸ SQLite.
  5. ื“ื™ ืžื™ื ืึทืžืึทืœื™ื–ืึทื ืคื•ืŸ LMDB ืึทืœืึทื•ื– ื“ื™ ืžืึทืฉื™ืŸ ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืคื•ืŸ ื–ื™ื™ืŸ ืงืึธื“ ืฆื• ื–ื™ื™ืŸ ื’ืึธืจ ืœื™ื’ืŸ ืื™ืŸ ื“ื™ L1 ืงืึทืฉ ืคื•ืŸ ื“ื™ ืคึผืจืึทืกืขืกืขืจ ืžื™ื˜ ื“ื™ ื™ืžืคึผืจื•ื•ื•ื“ ื’ื™ื›ืงื™ื™ึทื˜ ืงืขืจืึทืงื˜ืขืจื™ืกื˜ื™ืงืก.

ืฆื•ื ื‘ืึทื“ื•ื™ืขืจืŸ, ืื™ืŸ ื™ืึธืก, ืžื™ื˜ ื–ื™ืงืึธืจืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก, ืึทืœืฅ ืื™ื– ื ื™ืฉื˜ ื•ื•ื™ ืงืœืึธื•ื“ืœืขืกืก ื•ื•ื™ ืžื™ืจ ื•ื•ืึธืœื˜ ื•ื•ื™. ืฆื• ืจืขื“ืŸ ืžืขืจ ืงืึทื ืฉืึทืกืœื™ ื•ื•ืขื’ืŸ ื“ื™ ืฉืึธืจื˜ืงืึธืžื™ื ื’ืก ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื–ื™ื™, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื’ืขื“ืขื ืงืขืŸ ื“ื™ ืึทืœื’ืขืžื™ื™ื ืข ืคึผืจื™ื ืกืึทืคึผืึทืœื– ืคื•ืŸ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ื“ืขื ืžืขืงืึทื ื™ื–ืึทื ืื™ืŸ ืึทืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขืžืก.

ืึทืœื’ืขืžื™ื™ื ืข ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื–ื™ืงืึธืจืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–ืžื™ื˜ ื™ืขื“ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืึธืก ืœื•ื™ืคื˜, ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืึทืกืึธื•ืฉื™ืึทืฅ ืึท ืขื ื˜ื™ื˜ื™ ื’ืขืจื•ืคืŸ ืึท ืคึผืจืึธืฆืขืก. ื™ืขื“ืขืจ ืคึผืจืึธืฆืขืก ืื™ื– ืึทืœืึทืงื™ื™ื˜ื™ื“ ืึท ืงืึทื ื˜ื™ื’ื™ื•ืึทืก ืงื™ื™ื˜ ืคื•ืŸ ืึทื“ืจืขืกืขืก ืื™ืŸ ื•ื•ืึธืก ืขืก ืฉื˜ืขืœืŸ ืึทืœืฅ ืขืก ื“ืึทืจืฃ ืฆื• ืึทืจื‘ืขื˜ืŸ. ืื™ืŸ ื“ื™ ืœืึธื•ืึทืกื˜ ืึทื“ืจืขืกืขืก ืขืก ื–ืขื ืขืŸ ืกืขืงืฉืึทื ื– ืžื™ื˜ ืงืึธื“ ืื•ืŸ ืฉื•ื•ืขืจ-ืงืึธื“ืขื“ ื“ืึทื˜ืŸ ืื•ืŸ ืจืขืกื•ืจืกืŸ. ื“ืขืจื ืึธืš ืงื•ืžื˜ ืึท ื’ืจืึธื•ื™ื ื’ ื‘ืœืึธืง ืคื•ืŸ ื“ื™ื ืึทืžื™ืฉ ืึทื“ืจืขืก ืคึผืœืึทืฅ, ื•ื•ืึธืก ืื™ื– ื‘ืึทื•ื•ื•ืกื˜ ืคึฟืึทืจ ืื•ื ื“ื– ืื•ื ื˜ืขืจ ื“ื™ ื ืึธืžืขืŸ ืงื•ืคึผืข. ืขืก ื›ึผื•ืœืœ ื“ื™ ืึทื“ืจืขืกืขืก ืคื•ืŸ ืขื ื˜ื™ื˜ื™ื– ื•ื•ืึธืก ื“ืขืจืฉื™ื™ึทื ืขืŸ ื‘ืขืฉืึทืก ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคึผืจืึธื’ืจืึทื. ืื™ืŸ ื“ืขืจ ืฉืคึผื™ืฅ ืื™ื– ื“ื™ ื–ื›ึผืจื•ืŸ ื’ืขื’ื ื˜ ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึธื ืœื™ื™ื’ืŸ. ืขืก ื•ื•ืืงืกื˜ ืึธื“ืขืจ ืงืึทื ื˜ืจืึทืงืฅ; ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ื–ื™ื™ึทืŸ ื’ืจื™ื™ืก ืื•ื™ืš ื”ืื˜ ืึท ื“ื™ื ืึทืžื™ืฉ ื ืึทื˜ื•ืจ. ื›ื“ื™ ืฆื• ืคืืจืžื™ื™ื“ืŸ ื“ื™ ืกื˜ืืง ืื•ืŸ ืงื•ืคืข ืคื•ืŸ โ€‹โ€‹ืฉื˜ื•ืคืŸ ืื•ืŸ ืืจื™ื™ื ืžื™ืฉืŸ ื–ื™ืš ืื™ื™ื ืก ืžื™ื˜ ื“ืขื ืื ื“ืขืจืขืŸ, ื–ืขื ืขืŸ ื–ื™ื™ ื’ืขืคื™ื ื˜ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืขื ื“ืก ืคื•ืŸ ื“ื™ ืึทื“ืจืขืก ืคึผืœืึทืฅ.โ€‹ ืขืก ืื™ื– ืึท ืœืึธืš ืฆื•ื•ื™ืฉืŸ ื“ื™ ืฆื•ื•ื™ื™ ื“ื™ื ืึทืžื™ืฉ ืกืขืงืฉืึทื ื– ืื™ืŸ ืฉืคึผื™ืฅ ืื•ืŸ ื“ื ืึธ. ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ื ื™ืฆื˜ ืึทื“ืจืขืกืขืก ืื™ืŸ ื“ืขื ืžื™ื˜ืœ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืึท ืคืึทืจืฉื™ื™ื“ื ืงื™ื™ึทื˜ ืคื•ืŸ ืขื ื˜ื™ื˜ื™ื– ืžื™ื˜ ื“ืขื ืคึผืจืึธืฆืขืก. ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ืขืก ืงืขื ืขืŸ ืคืึทืจื‘ื™ื ื“ืŸ ืึท ื–ื™ื›ืขืจ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ื’ืึทื ื’ ืคื•ืŸ ืึทื“ืจืขืกืขืก ืžื™ื˜ ืึท ื˜ืขืงืข ืื•ื™ืฃ ื“ืขื ื“ื™ืกืง. ืึทื–ืึท ืึท ื˜ืขืงืข ืื™ื– ื’ืขืจื•ืคืŸ ื–ื›ึผืจื•ืŸ-ืžืึทืคึผื˜

ื“ื™ ืึทื“ืจืขืก ืคึผืœืึทืฅ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืฆื• ื“ืขื ืคึผืจืึธืฆืขืก ืื™ื– ืจื™ื–ื™ืง. ื˜ื”ืขืึธืจืขื˜ื™ืงืึทืœืœื™, ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื•ื•ืขื ื“ื˜ ืื™ื– ืœื™ืžื™ื˜ืขื“ ื‘ืœื•ื™ื– ื“ื•ืจืš ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ื˜ื™ื™ึทื˜ืœ, ื•ื•ืึธืก ืื™ื– ื‘ืืฉืœืืกืŸ ื“ื•ืจืš ื“ื™ ื‘ื™ืกืœ ืงืึทืคึผืึทืฆื™ื˜ืขื˜ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื. ืื•ื™ื‘ ืคื™ื–ื™ืฉ ื–ื›ึผืจื•ืŸ ืื™ื– ืžืึทืคึผื˜ ืฆื• ืขืก 1-ืฆื•-1, ื“ืขืจ ืขืจืฉื˜ืขืจ ืคึผืจืึธืฆืขืก ื•ื•ืึธืœื˜ ืฆืขืœืึธื–ืŸ ื“ื™ ื’ืื ืฆืข ื‘ืึทืจืึทืŸ, ืื•ืŸ ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืงื™ื™ืŸ ืจืขื“ืŸ ืคื•ืŸ ืžื•ืœื˜ื™-ื˜ืึทืกืงื™ื ื’.

ืึธื‘ืขืจ, ืคึฟื•ืŸ ืื•ื ื“ื–ืขืจ ื“ืขืจืคืึทืจื•ื ื’ ืžื™ืจ ื•ื•ื™ืกืŸ ืึทื– ืžืึธื“ืขืจืŸ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ ืงืขื ืขืŸ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ ื•ื™ืกืคื™ืจืŸ ื•ื•ื™ ืคื™ืœืข ืคึผืจืึทืกืขืกืึทื– ื•ื•ื™ ืื™ืจ ื•ื•ื™ืœื˜. ื“ืึธืก ืื™ื– ืžืขื’ืœืขืš ืจืขื›ื˜ ืฆื• ื“ืขื ืคืึทืงื˜ ืึทื– ื–ื™ื™ ื ืึธืจ ืึทืœืึทืงื™ื™ื˜ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื–ื›ึผืจื•ืŸ ืฆื• ืคึผืจืึทืกืขืกืึทื– ืื•ื™ืฃ ืคึผืึทืคึผื™ืจ, ืึธื‘ืขืจ ืื™ืŸ ืคืึทืงื˜ ื–ื™ื™ ืœืึธื“ืŸ ืื™ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื’ืฉืžื™ื•ืช ื–ื›ึผืจื•ืŸ ื‘ืœื•ื™ื– ืึทื– ื˜ื™ื™ืœ ื•ื•ืึธืก ืื™ื– ืื™ืŸ ืคืึธื“ืขืจื•ื ื’ ื“ืึธ ืื•ืŸ ืื™ืฆื˜. ื“ืขืจื™ื‘ืขืจ, ื“ืขืจ ื–ื›ึผืจื•ืŸ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืึท ืคึผืจืึธืฆืขืก ืื™ื– ื’ืขืจื•ืคืŸ ื•ื•ื™ืจื˜ื•ืึทืœ.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืึธืจื’ืึทื ื™ื–ื™ืจื˜ ื•ื•ื™ืจื˜ื•ืึทืœ ืื•ืŸ ื’ืฉืžื™ื•ืช ื–ื›ึผืจื•ืŸ ืื™ืŸ ื‘ืœืขื˜ืขืจ ืคื•ืŸ ืึท ื–ื™ื›ืขืจ ื’ืจื™ื™ืก. ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ืึท ื–ื™ื›ืขืจ ื‘ืœืึทื˜ ืคื•ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื›ึผืจื•ืŸ ืื™ื– ืื™ืŸ ืคืึธื“ืขืจื•ื ื’, ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืœืึธื•ื“ื– ืขืก ืื™ืŸ ื’ืฉืžื™ื•ืช ื–ื›ึผืจื•ืŸ ืื•ืŸ ื’ืœื™ื™ึทื›ืŸ ื–ื™ื™ ืื™ืŸ ืึท ืกืคึผืขืฆื™ืขืœ ื˜ื™ืฉ. ืื•ื™ื‘ ืขืก ื–ืขื ืขืŸ ืงื™ื™ืŸ ืคืจื™ื™ ืกืœืึธืฅ, ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคืจื™ืขืจ ืœืึธื•ื“ื™ื“ ื‘ืœืขื˜ืขืจ ืื™ื– ืงืึทืคึผื™ื“ ืฆื• ื“ื™ ื“ื™ืกืง, ืื•ืŸ ื“ืขืจ ืื™ื™ื ืขืจ ืื™ืŸ ืžืึธื ืขืŸ ื ืขืžื˜ ื–ื™ื™ืŸ ืึธืจื˜. ื“ืขืจ ืคึผืจืึธืฆืขื“ื•ืจ, ื•ื•ืึธืก ืžื™ืจ ื•ื•ืขืœืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื‘ืึทืœื“, ืื™ื– ื’ืขืจื•ืคืŸ ืกื•ื•ืึทืคึผื™ื ื’. ื“ื™ ืคื™ื’ื•ืจ ืื•ื ื˜ืŸ ื™ืœืึทืกื˜ืจื™ื™ืฅ ื“ืขื ืคึผืจืึธืฆืขืก ื“ื™ืกืงืจื™ื™ื‘ื“. ืื•ื™ืฃ ืขืก, ื‘ืœืึทื˜ ื ืžื™ื˜ ืึทื“ืจืขืก 0 ืื™ื– ืœืึธื•ื“ื™ื“ ืื•ืŸ ื’ืขืฉื˜ืขืœื˜ ืื•ื™ืฃ ื“ื™ ื”ื•ื™ืคึผื˜ ื–ื›ึผืจื•ืŸ ื‘ืœืึทื˜ ืžื™ื˜ ืึทื“ืจืขืก 4. ื“ืขื ืคืึทืงื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ืฉืคื™ื’ืœื˜ ืื™ืŸ ื“ื™ ืงืึธืจืขืกืคึผืึธื ื“ืขื ืฅ ื˜ื™ืฉ ืื™ืŸ ืฆืขืœ ื ื•ืžืขืจ 0.โ€‹

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืื™ื– ืคึผื•ื ืงื˜ ื“ื™ ื–ืขืœื‘ืข ืžื™ื˜ ื˜ืขืงืขืก ืžืึทืคึผื˜ ืฆื• ื–ื›ึผืจื•ืŸ. ืœืึทื“ื–ืฉื™ืงืœื™, ื–ื™ื™ ื–ืขื ืขืŸ ืกืึทืคึผืึธื•ื–ืึทื“ืœื™ ืงืึทื ื˜ื™ื ื™ื•ืึทืกืœื™ ืื•ืŸ ืœืขื’ืึทืžืจืข ืœื™ื’ืŸ ืื™ืŸ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืึทื“ืจืขืก ืคึผืœืึทืฅ. ืึธื‘ืขืจ, ื–ื™ื™ ืึทืจื™ื™ึทืŸ ื’ืฉืžื™ื•ืช ื–ื›ึผืจื•ืŸ ื‘ืœืึทื˜ ื“ื•ืจืš ื‘ืœืึทื˜ ืื•ืŸ ื‘ืœื•ื™ื– ืื•ื™ืฃ ื‘ืขื˜ืŸ. ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธืŸ ืคื•ืŸ ืึทื–ืึท ื‘ืœืขื˜ืขืจ ืื™ื– ืกื™ื ื’ืงืจืึทื ื™ื™ื–ื“ ืžื™ื˜ ื“ื™ ื˜ืขืงืข ืื•ื™ืฃ ื“ื™ืกืง. ืื™ืŸ ื“ืขื ื•ื•ืขื’, ืื™ืจ ืงืขื ืขืŸ ื“ื•ืจื›ืคื™ืจืŸ ื˜ืขืงืข ื™ / ืึธ ื“ื•ืจืš ืคืฉื•ื˜ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื‘ื™ื˜ืขืก ืื™ืŸ ื–ื›ึผืจื•ืŸ - ืึทืœืข ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื˜ืจืึทื ืกืคืขืจื“ ื“ื•ืจืš ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืงืขืจืŸ ืฆื• ื“ื™ ืžืงื•ืจ ื˜ืขืงืข.
โ€‹
ื“ื™ ื‘ื™ืœื“ ืื•ื ื˜ืŸ ื“ืขืžืึทื ืกื˜ืจื™ื™ืฅ ื•ื•ื™ LMDB ืกื™ื ื’ืงืจืึทื ื™ื™ื–ื™ื– ื–ื™ื™ืŸ ืฉื˜ืึทื˜ ื•ื•ืขืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึฟื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืจืึทืกืขืกืึทื–. ื“ื•ืจืš ืžืึทืคึผื™ื ื’ ื“ื™ ื•ื•ื™ืจื˜ื•ืขืœ ื–ื™ืงืึธืจืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืจืึทืกืขืกืึทื– ืฆื• ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื˜ืขืงืข, ืžื™ืจ ื“ืข ืคืึทืงื˜ืึธ ืคืึทืจืคืœื™ื›ื˜ืŸ ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื ืฆื• ื˜ืจืึทื ื–ื™ื˜ื™ื•ื•ืœื™ ืกื™ื ื’ืงืจืึทื ื™ื™ื– ื–ื™ื›ืขืจ ื‘ืœืึทืงืก ืคื•ืŸ ื–ื™ื™ืขืจ ืึทื“ืจืขืก ืกืคึผื™ื™ืกืึทื– ืžื™ื˜ ื™ืขื“ืขืจ ืื ื“ืขืจืข, ื•ื•ื• LMDB ืงื•ืงื˜.
โ€‹

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืึท ื•ื•ื™ื›ื˜ื™ืง ื ื•ืึทื ืก ืื™ื– ืึทื– LMDB, ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืžืึทื“ืึทืคื™ื™ื– ื“ื™ ื“ืึทื˜ืŸ ื˜ืขืงืข ื“ื•ืจืš ื“ื™ ืฉืจื™ื™ึทื‘ืŸ ืกื™ืกื˜ืขื ืจื•ืคืŸ ืžืขืงืึทื ื™ื–ืึทื, ืื•ืŸ ื“ื™ืกืคึผืœื™ื™ื– ื“ื™ ื˜ืขืงืข ื–ื™ืš ืื™ืŸ ืœื™ื™ืขื ืขืŸ-ื‘ืœื•ื™ื– ืžืึธื“ืข. ื“ืขืจ ืฆื•ื’ืึทื ื’ ื”ืื˜ ืฆื•ื•ื™ื™ ื•ื•ื™ื›ื˜ื™ืง ืงืึทื ืกืึทืงื•ื•ืขื ืกืึทื–.

ื“ืขืจ ืขืจืฉื˜ืขืจ ืงืึทื ืกืึทืงื•ื•ืึทื ืก ืื™ื– ืคึผืจืึธืกื˜ ืฆื• ืึทืœืข ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ. ื–ื™ื™ึทืŸ ืขืกืึทื ืก ืื™ื– ืฆื• ืœื™ื™ื’ืŸ ืฉื•ืฅ ืงืขื’ืŸ ืึทื ื™ื ื˜ืขื ืฉืึทื ืึทืœ ืฉืขื“ื™ืงืŸ ืฆื• ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื“ื•ืจืš ืคืึทืœืฉ ืงืึธื“. ื•ื•ื™ ืื™ืจ ื•ื•ื™ืกืŸ, ื“ื™ ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืคื•ืŸ ืึท ืคึผืจืึธืฆืขืก ื–ืขื ืขืŸ ืคืจื™ื™ ืฆื• ืึทืงืกืขืก ื“ืึทื˜ืŸ ืคึฟื•ืŸ ืขืจื’ืขืฅ ืื™ืŸ ื–ื™ื™ืŸ ืึทื“ืจืขืก ืคึผืœืึทืฅ. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ื•ื•ื™ ืžื™ืจ ื ืึธืจ ื“ืขืจืžืื ื˜, ื•ื•ื™ื™ึทื–ื ื“ื™ืง ืึท ื˜ืขืงืข ืื™ืŸ ืœื™ื™ืขื ืขืŸ-ืฉืจื™ื™ึทื‘ืŸ ืžืึธื“ืข ืžื™ื˜ืœ ืึทื– ืงื™ื™ืŸ ืœื™ืžืขื“ ืงืขื ืขืŸ ืื•ื™ืš ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ืขืก. ืื•ื™ื‘ ื–ื™ ื˜ื•ื˜ ื“ืึธืก ื“ื•ืจืš ื’ืจื™ื™ึทื–, ื˜ืจื™ื™ื ื’, ืœืžืฉืœ, ืฆื• ืึทืงื˜ืฉืึทื•ื•ืึทืœื™ ืึธื•ื•ื•ืขืจืจื™ื™ื˜ ืึท ืžืขื ื’ืข ืขืœืขืžืขื ื˜ ืื™ืŸ ืึท ื ื™ื˜-ืขื’ื–ื™ืกื˜ืึทื ื˜ ืื™ื ื“ืขืงืก, ื–ื™ ืงืขื ืขืŸ ืึทืงืกืึทื“ืขื ืึทืœื™ ื˜ื•ื™ืฉืŸ ื“ื™ ื˜ืขืงืข ืžืึทืคึผื˜ ืฆื• ื“ืขื ืึทื“ืจืขืก, ื•ื•ืึธืก ื•ื•ืขื˜ ืคื™ืจืŸ ืฆื• ืงืึธืจื•ืคึผืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ืื•ื™ื‘ ื“ื™ ื˜ืขืงืข ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ืœื™ื™ืขื ืขืŸ-ื‘ืœื•ื™ื– ืžืึธื“ืข, ืึทืŸ ืคึผืจื•ื•ื•ืŸ ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ืึทื“ืจืขืก ืคึผืœืึทืฅ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืฆื• ืขืก ื•ื•ืขื˜ ืคื™ืจืŸ ืฆื• ืึท ื ื•ื™ื˜ืคืึทืœ ื˜ืขืจืžืึทื ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืคึผืจืึธื’ืจืึทื ืžื™ื˜ ืึท ืกื™ื’ื ืึทืœ SIGSEGV, ืื•ืŸ ื“ื™ ื˜ืขืงืข ื•ื•ืขื˜ ื‘ืœื™ื™ึทื‘ืŸ ื‘ืขืฉืึธืœืขื.

ื“ื™ ืจื’ืข ืงืึทื ืกืึทืงื•ื•ืึทื ืก ืื™ื– ืฉื•ื™ืŸ ืกืคึผืขืฆื™ืคื™ืฉ ืฆื• ื™ืึธืก. ื ื™ื˜ ื“ืขืจ ืžื—ื‘ืจ ืื“ืขืจ ืงื™ื™ืŸ ืื ื“ืขืจืข ืžืงื•ืจื™ื ื“ืขืจืžืึธื ืขืŸ ืขืก ื‘ืคื™ืจื•ืฉ, ืึธื‘ืขืจ ืึธืŸ ืขืก LMDB ื•ื•ืึธืœื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืคืœื™ืกื ื“ื™ืง ืื•ื™ืฃ ื“ืขื ืจื™ืจืขื•ื•ื“ื™ืง ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื. ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืื™ื– ื’ืขื˜ืจื™ื™ึท ืฆื• ื–ื™ื™ึทืŸ ื‘ืึทื˜ืจืึทื›ื˜ื•ื ื’.

ืกืคึผืขืกื™ืคื™ืงืก ืคื•ืŸ ื–ื™ืงืึธืจืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก ืื™ืŸ ื™ืึธืก

ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ื•ื•ื•ื ื“ืขืจืœืขืš ื‘ืึทืจื™ื›ื˜ ื‘ื™ื™ WWDC ืื™ืŸ 2018 "ื™ืึธืก ื–ื›ึผืจื•ืŸ ื˜ื™ืฃ ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš". ืขืก ื“ืขืจืฆื™ื™ืœื˜ ืื•ื ื“ื– ืึทื– ืื™ืŸ ื™ืึธืก, ืึทืœืข ื‘ืœืขื˜ืขืจ ืœื™ื’ืŸ ืื™ืŸ ื’ืฉืžื™ื•ืช ื–ื›ึผืจื•ืŸ ื–ืขื ืขืŸ ืื™ื™ื ืขืจ ืคื•ืŸ 3 ื˜ื™ื™ืคึผืก: ื’ืจืึธื‘, ืงืึทืžืคึผืจืขืกื˜ ืื•ืŸ ืจื™ื™ืŸ.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืจื™ื™ืŸ ื–ื›ึผืจื•ืŸ ืื™ื– ืึท ื–ืึทืžืœื•ื ื’ ืคื•ืŸ ื‘ืœืขื˜ืขืจ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืคึผื™ื™ื ืœืึทืกืœื™ ืึทื ืœืึธื•ื“ืึทื“ ืคื•ืŸ ื’ืฉืžื™ื•ืช ื–ื›ึผืจื•ืŸ. ื“ื™ ื“ืึทื˜ืŸ ื–ื™ื™ ืึทื ื˜ื”ืึทืœื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืจื™ืœืึธื•ื“ืึทื“ ื•ื•ื™ ื“ืืจืฃ ืคื•ืŸ ื“ื™ ืึธืจื™ื’ื™ื ืขืœ ืงื•ื•ืืœืŸ. ืœื™ื™ืขื ืขืŸ-ื‘ืœื•ื™ื– ื–ื›ึผืจื•ืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก ืคืึทืœืŸ ืื™ืŸ ื“ืขื ืงืึทื˜ืขื’ืึธืจื™ืข. ื™ืึธืก ืื™ื– ื ื™ืฉื˜ ื“ืขืจืฉืจืึธืงืŸ ืฆื• ืึทื ืœืึธื•ื“ ื“ื™ ื‘ืœืขื˜ืขืจ ืžืึทืคึผื˜ ืฆื• ืึท ื˜ืขืงืข ืคึฟื•ืŸ ื–ื™ืงืึธืจืŸ ืื™ืŸ ืงื™ื™ืŸ ืฆื™ื™ื˜, ื•ื•ื™ื™ึทืœ ื–ื™ื™ ื–ืขื ืขืŸ ื’ืขืจืึทื ื˜ื™ื“ ืฆื• ื–ื™ื™ืŸ ืกื™ื ื’ืงืจืึทื ื™ื™ื–ื“ ืžื™ื˜ ื“ื™ ื˜ืขืงืข ืื•ื™ืฃ ื“ื™ืกืง.
โ€‹
ืึทืœืข ืžืึทื“ืึทืคื™ื™ื“ ื‘ืœืขื˜ืขืจ ืขื ื“ื™ืงืŸ ื–ื™ืš ืื™ืŸ ื’ืจืึธื‘ ื–ื›ึผืจื•ืŸ, ืงื™ื™ืŸ ืขื ื™ืŸ ื•ื•ื• ื–ื™ื™ ื–ืขื ืขืŸ ืขืจื™ื“ื–ืฉื ืึทืœื™ ืœื™ื’ืŸ. ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ื–ื™ืงืึธืจืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก ืžืึทื“ืึทืคื™ื™ื“ ื“ื•ืจืš ืฉืจื™ื™ื‘ืŸ ืฆื• ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื›ึผืจื•ืŸ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื–ื™ื™ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงืœืึทืกืึทืคื™ื™ื“ ืื™ืŸ ื“ืขื ื•ื•ืขื’. ืขืคืŸ ืœืžื“ื‘ ืžื™ื˜ ืคืึธืŸ MDB_WRITEMAP, ื ืึธืš ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ืขืก, ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ืขื ืคึผืขืจืกื ืึทืœื™

ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื”ื™ื™ื‘ื˜ ืฆื• ื ืขืžืขืŸ ืฆื• ืคื™ืœ ื’ืฉืžื™ื•ืช ื–ื›ึผืจื•ืŸ, ื™ืึธืก ืกืึทื‘ื“ื–ืฉืขืงืฅ ืขืก ืฆื• ื’ืจืึธื‘ ื‘ืœืึทื˜ ืงืึทืžืคึผืจืขืฉืึทืŸ. ื“ื™ ื’ืึทื ืฅ ื–ื›ึผืจื•ืŸ ืคืึทืจื ื•ืžืขืŸ ื“ื•ืจืš ื’ืจืึธื‘ ืื•ืŸ ืงืึทืžืคึผืจืขืกื˜ ื‘ืœืขื˜ืขืจ ืงืึทื ืกื˜ืึทื˜ื•ืฅ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืก ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข ื–ื›ึผืจื•ืŸ ืฉืคึผื•ืจ. ืึทืžืึธืœ ืขืก ืจื™ื˜ืฉืึทื– ืึท ื–ื™ื›ืขืจ ืฉื•ื•ืขืœ ื•ื•ืขืจื˜, ื“ื™ OOM ืงื™ืœืœืขืจ ืกื™ืกื˜ืขื ื“ื™ื™ืžืึทืŸ ืงื•ืžื˜ ื ืึธืš ื“ืขื ืคึผืจืึธืฆืขืก ืื•ืŸ ืคืึธืจืกืึทื‘ืœื™ ื˜ืขืจืžืึทื ื™ื™ืฅ ืขืก. ื“ืึธืก ืื™ื– ื“ื™ ืคึผื™ืงื™ื•ืœื™ืขืจืึทื˜ื™ ืคื•ืŸ ื™ืึธืก ืงืึทืžืคึผืขืจื“ ืžื™ื˜ ื“ืขืกืงื˜ืึทืคึผ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ. ืื™ืŸ ืงืึทื ื˜ืจืึทืกื˜, ืจื™ื“ื•ืกื™ื ื’ ื“ื™ ื–ื™ืงืึธืจืŸ ืฉืคึผื•ืจ ื“ื•ืจืš ื•ื™ืกื‘ื™ื™ึทื˜ืŸ ื‘ืœืขื˜ืขืจ ืคื•ืŸ ื’ืฉืžื™ื•ืช ื–ื›ึผืจื•ืŸ ืฆื• ื“ื™ืกืง ืื™ื– ื ื™ืฉื˜ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื™ืึธืก. ื“ื™ ืกื™ื‘ื•ืช ืงืขื ืขืŸ ื ืึธืจ ื–ื™ื™ืŸ ื’ืขืกื˜. ื˜ืึธืžืขืจ ื“ื™ ืคึผืจืึธืฆืขื“ื•ืจ ืคื•ืŸ ื™ื ื˜ืขื ืกื™ื•ื• ืžืึธื•ื•ื™ื ื’ ื‘ืœืขื˜ืขืจ ืฆื• ื“ื™ืกืง ืื•ืŸ ืฆื•ืจื™ืง ืื™ื– ืฆื• ืขื ืขืจื’ื™ืข-ืงืึทื ืกื•ืžื™ื ื’ ืคึฟืึทืจ ืจื™ืจืขื•ื•ื“ื™ืง ื“ืขื•ื•ื™ืกืขืก, ืึธื“ืขืจ ื™ืึธืก ืกืึทื•ื•ืขืก ื“ื™ ืžื™ื˜ืœ ืคื•ืŸ ืจื™ืจื™ื™ื˜ื™ื ื’ ืกืขืœื– ืื•ื™ืฃ SSD ื“ืจื™ื™ื•ื•ื–, ืึธื“ืขืจ ื˜ืึธืžืขืจ ื“ื™ ื“ื™ื–ื™ื™ื ืขืจื– ื–ืขื ืขืŸ ื ื™ืฉื˜ ืฆื•ืคึฟืจื™ื“ืŸ ืžื™ื˜ ื“ื™ ืงื•ื™ืœืขืœื“ื™ืง ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื, ื•ื•ื• ืึทืœืฅ ืื™ื– ืงืขืกื™ื™ื“ืขืจ ืกื•ื•ืึทืคึผื˜. ื–ื™ื™ื˜ ืื–ื•ื™, ื“ืขืจ ืคืืงื˜ ื‘ืœื™ื™ื‘ื˜ ื ืคืืงื˜.

ื“ื™ ื’ื•ื˜ืข ื ื™ื™ึทืขืก, ืฉื•ื™ืŸ ื“ืขืจืžืื ื˜ ืคืจื™ืขืจ, ืื™ื– ืึทื– LMDB ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ื˜ื•ื˜ ื ื™ืฉื˜ ื ื•ืฆืŸ ื“ื™ ืžืึทืคึผ ืžืขืงืึทื ื™ื–ืึทื ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื˜ืขืงืขืก. ื“ืขื ืžื™ื˜ืœ ืึทื– ื“ื™ ื’ืขื•ื•ื™ื–ืŸ ื“ืึทื˜ืŸ ืื™ื– ืงืœืึทืกืึทืคื™ื™ื“ ื“ื•ืจืš ื™ืึธืก ื•ื•ื™ ืจื™ื™ืŸ ื–ื™ืงืึธืจืŸ ืื•ืŸ ืงืขืŸ ื ื™ืฉื˜ ื‘ื™ื™ืฉื˜ื™ื™ืขืจืŸ ืฆื• ื“ื™ ื–ื™ืงืึธืจืŸ ืฉืคึผื•ืจ. ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ืขื ืžื™ื˜ ืึท Xcode ื’ืขืฆื™ื™ึทื’ ื’ืขืจื•ืคืŸ VM Tracker. ื“ื™ ืกืงืจืขืขื ืฉืึธื˜ ืื•ื ื˜ืŸ ื•ื•ื™ื™ื–ื˜ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ื™ืึธืก ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื›ึผืจื•ืŸ ืคื•ืŸ ื“ื™ ืงืœืึธื•ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื‘ืขืฉืึทืก ืึธืคึผืขืจืึทืฆื™ืข. ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘, 2 LMDB ื™ื ืกื˜ืึทื ืกื™ื– ื–ืขื ืขืŸ ื™ื ื™ื˜ื™ืึทืœื™ื™ื–ื“ ืื™ืŸ ืขืก. ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจืœื•ื™ื‘ื˜ ืฆื• ื•ื•ื™ื™ึทื–ืŸ ื–ื™ื™ืŸ ื˜ืขืงืข ืื•ื™ืฃ 1GiB ืคื•ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื›ึผืจื•ืŸ, ื“ื™ ืจื’ืข - 512MiB. ื˜ืจืึธืฅ ื“ืขืจ ืคืึทืงื˜ ืึทื– ื‘ื™ื™ื“ืข ืกื˜ืึธืจื™ื“ื–ืฉ ืึทืงื™ืึทืคึผื™ื™ื– ืึท ื’ืขื•ื•ื™ืกืข ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ืจืขื–ื™ื“ืึทื ืฅ ื–ื›ึผืจื•ืŸ, ืงื™ื™ืŸ ืคื•ืŸ ื–ื™ื™ ืงืึทื ื˜ืจื™ื‘ื™ื•ืฅ ื’ืจืึธื‘ ื’ืจื™ื™ืก.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืื•ืŸ ืื™ืฆื˜ ืขืก ืื™ื– ืฆื™ื™ื˜ ืคึฟืึทืจ ืฉืœืขื›ื˜ ื ื™ื™ึทืขืก. ื“ืึทื ืง ืฆื• ื“ื™ ื•ื™ืกื‘ื™ื™ึทื˜ืŸ ืžืขืงืึทื ื™ื–ืึทื ืื™ืŸ 64-ื‘ื™ืกืœ ื“ืขืกืงื˜ืึทืคึผ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ, ื™ืขื“ืขืจ ืคึผืจืึธืฆืขืก ืงืขื ืขืŸ ืคืึทืจื ืขืžืขืŸ ื•ื•ื™ ืคื™ืœ ื•ื•ื™ืจื˜ื•ืึทืœ ืึทื“ืจืขืก ืคึผืœืึทืฅ ื•ื•ื™ ื“ื™ ืคืจื™ื™ ืฉื•ื•ืขืจ ื“ื™ืกืง ืคึผืœืึทืฅ ืคึฟืึทืจ ื–ื™ื™ืŸ ืคึผืึธื˜ืขื ืฆื™ืขืœ ื•ื™ืกื‘ื™ื™ึทื˜ืŸ ืึทืœืึทื•ื–. ืจื™ืคึผืœื™ื™ืกื™ื ื’ ื•ื™ืกื‘ื™ื™ึทื˜ืŸ ืžื™ื˜ ืงืึทืžืคึผืจืขืฉืึทืŸ ืื™ืŸ ื™ืึธืก ืจืึทื“ื™ืงืึทืœืœื™ ืจืึทื“ื•ืกืึทื– ื“ื™ ื˜ืขืึธืจืขื˜ื™ืฉ ืžืึทืงืกื™ืžื•ื. ืื™ืฆื˜ ืึทืœืข ืœืขื‘ืขื“ื™ืง ืคึผืจืึทืกืขืกืึทื– ืžื•ื–ืŸ ืคึผืึทืกื™ืง ืื™ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ (ืœื™ื™ืขื ืขืŸ ื‘ืึทืจืึทืŸ) ื–ื›ึผืจื•ืŸ, ืื•ืŸ ืึทืœืข ื™ืขื ืข ื•ื•ืึธืก ื˜ืึธืŸ ื ื™ื˜ ืคึผืึทืกื™ืง ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขืฆื•ื•ื•ื ื’ืขืŸ ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ. ื“ืืก ืื™ื– ืกื˜ื™ื™ื˜ื™ื“ ื•ื•ื™ ืื™ืŸ ื“ื™ ืื•ื™ื‘ืŸ ื“ืขืจืžืื ื˜ ื‘ืึทืจื™ื›ื˜, ืื•ืŸ ืื™ืŸ ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ. ื•ื•ื™ ืึท ืงืึทื ืกืึทืงื•ื•ืึทื ืก, ื™ืึธืก ืกืึทื•ื•ื™ืจืœื™ ืœื™ืžืึทืฅ ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื–ื™ืงืึธืจืŸ ื‘ื ื™ืžืฆื ืคึฟืึทืจ ืึทืœืึทืงื™ื™ืฉืึทืŸ ื“ื•ืจืš mmap. ื“ืึธ ื“ืึธ ืื™ืจ ืงืขื ื˜ ื–ืขืŸ ื“ื™ ืขืžืคึผื™ืจื™ืงืึทืœ ืœื™ืžืึทืฅ ืคื•ืŸ ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื–ื™ืงืึธืจืŸ ื•ื•ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ืึทืœืึทืงื™ื™ื˜ื™ื“ ืื•ื™ืฃ ืคืึทืจืฉื™ื“ืขื ืข ื“ืขื•ื•ื™ืกืขืก ืžื™ื˜ ื“ืขื ืกื™ืกื˜ืขื ืจื•ืคืŸ. ืื•ื™ืฃ ื“ื™ ืžืขืจืกื˜ ืžืึธื“ืขืจืŸ ืกืžืึทืจื˜ืคืึธื ืข ืžืึธื“ืขืœืก, ื™ืึธืก ืื™ื– ื’ืขื•ื•ืืจืŸ ื‘ืจื™ื™ื˜ื”ืึทืจืฆื™ืง ืžื™ื˜ 2 ื’ื™ื’ืื‘ื™ื™ื˜, ืื•ืŸ ืื•ื™ืฃ ืฉืคึผื™ืฅ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื“ื™ iPad - ื“ื•ืจืš 4. ืื™ืŸ ืคื™ืจ, ืคื•ืŸ ืงื•ืจืก, ืื™ืจ ืžื•ื–ืŸ ืคืึธืงื•ืก ืื•ื™ืฃ ื“ื™ ืœืึธื•ืึทืกื˜ ื’ืขืฉื˜ื™ืฆื˜ ืžื™ื˜ืœ ืžืึธื“ืขืœืก, ื•ื•ื• ืึทืœืฅ ืื™ื– ื–ื™ื™ืขืจ ื˜ืจื•ื™ืขืจื™ืง. ืืคื™ืœื• ืขืจื’ืขืจ, ื“ื•ืจืš ืงื•ืงืŸ ืื™ืŸ ื“ื™ ื–ื™ืงืึธืจืŸ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ VM Tracker, ืื™ืจ ื•ื•ืขื˜ ื’ืขืคึฟื™ื ืขืŸ ืึทื– LMDB ืื™ื– ื•ื•ื™ื™ึทื˜ ืคื•ืŸ ื“ืขืจ ื‘ืœื•ื™ื– ืื™ื™ื ืขืจ ื•ื•ืึธืก ืงืœื™ื™ืžื– ืฆื• ื–ื™ื™ืŸ ื–ื™ืงืึธืจืŸ ืžืึทืคึผื˜. ื’ื•ื˜ ืฉื˜ื™ืงืขืจ ื–ืขื ืขืŸ ื’ืขื’ืขืกืŸ ืึทื•ื•ืขืง ื“ื•ืจืš ืกื™ืกื˜ืขื ืึทืœืึทืงื™ื™ื˜ืขืจื–, ืžื™ื˜ืœ ื˜ืขืงืขืก, ื‘ื™ืœื“ ืคืจืึทืžืขื•ื•ืึธืจืงืก ืื•ืŸ ืื ื“ืขืจืข ืงืœืขื ืขืจืขืจ ืคึผืจืขื“ืึทื˜ืขืจื–.

ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืจืขื–ื•ืœื˜ืื˜ืŸ ืคื•ืŸ ื™ืงืกืคึผืขืจืึทืžืึทื ืฅ ืื™ืŸ ื“ื™ ืงืœืึธื•ื“, ืžื™ืจ ื’ืขืงื•ืžืขืŸ ืฆื• ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึทืžืคึผืจืึทืžื™ื™ื– ื•ื•ืึทืœื•ืขืก ืคึฟืึทืจ ื“ื™ ื–ื™ืงืึธืจืŸ ืึทืœืึทืงื™ื™ื˜ื™ื“ ื“ื•ืจืš LMDB: 384 ืžืขื’ืื‘ื™ื™ื˜ ืคึฟืึทืจ 32-ื‘ื™ืกืœ ื“ืขื•ื•ื™ืกืขืก ืื•ืŸ 768 ืคึฟืึทืจ 64-ื‘ื™ืกืœ ื“ืขื•ื•ื™ืกืขืก. ื ืึธืš ื“ืขื ื‘ืึทื ื“ ืื™ื– ื’ืขื ื™ืฆื˜ ืึทืจื•ื™ืฃ, ืงื™ื™ืŸ ืžืึทื“ืึทืคื™ื™ื™ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืึธื ื”ื™ื™ื‘ืŸ ืฆื• ืกื•ืฃ ืžื™ื˜ ื“ื™ ืงืึธื“ MDB_MAP_FULL. ืžื™ืจ ืึธื‘ืกืขืจื•ื•ื™ืจืŸ ืึทื–ืึท ืขืจืจืึธืจืก ืื™ืŸ ืื•ื ื“ื–ืขืจ ืžืึธื ื™ื˜ืึธืจื™ื ื’, ืึธื‘ืขืจ ื–ื™ื™ ื–ืขื ืขืŸ ืงืœื™ื™ืŸ ื’ืขื ื•ื’ ืึทื– ืื™ืŸ ื“ืขื ื‘ื™ื ืข ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึธืคึผื’ืขืœืึธื–ืŸ.

ื ื ื™ื˜-ืงืœืึธืจืขื•ื•ื“ื™ืง ืกื™ื‘ื” ืคึฟืึทืจ ื™ื‘ืขืจื™ืง ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ื“ื•ืจืš ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœืึทื ื’-ื’ืขืœืขื‘ื˜ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–. ื›ึผื“ื™ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ, ื•ื•ื™ ืึทื–ื•ื™ ื“ื™ ื“ืึธื–ื™ืงืข ืฆื•ื•ื™ื™ ื“ืขืจืฉืฒึทื ื•ื ื’ืขืŸ ื–ืฒึทื ืขืŸ ืคึฟืึทืจื‘ื•ื ื“ืŸ, ื•ื•ืขืœืŸ ืžื™ืจ ื’ืขื”ืึธืœืคึฟืŸ ื•ื•ืขืจืŸ ื“ื•ืจืš ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ืื™ื‘ืขืจื™ืงืข ืฆื•ื•ื™ื™ ืขืžื•ื“ื™ื ืคึฟื•ื ืขื ืœืžื“ื‘.

3.2. ื•ื•ื™ื™ืœ # 2. ื‘+-ื‘ื•ื™ื

ืฆื• ืขืžื™ืึทืœื™ื™ื˜ ื˜ื™ืฉืŸ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ืึท ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืกื˜ืึธืจื™ื“ื–ืฉ, ื“ื™ ืคืืœื’ืขื ื“ืข ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืžื•ื–ืŸ ื–ื™ื™ืŸ ืคืึธืจืฉื˜ืขืœืŸ ืื™ืŸ ื–ื™ื™ึทืŸ API:

  1. ืึทืจื™ื™ึทื ืœื™ื™ื’ืŸ ืึท ื ื™ื™ึท ืขืœืขืžืขื ื˜.
  2. ื–ื•ื›ืŸ ืคึฟืึทืจ ืึทืŸ ืขืœืขืžืขื ื˜ ืžื™ื˜ ืึท ื’ืขื’ืขื‘ืŸ ืฉืœื™ืกืœ.
  3. ืจื™ืžื•ื•ื•ื™ื ื’ ืึทืŸ ืขืœืขืžืขื ื˜.
  4. ื™ื˜ืขืจื™ื™ื˜ ืื™ื‘ืขืจ ื™ื ื˜ืขืจื•ื•ืึทืœื– ืคื•ืŸ ืงื™ื– ืื™ืŸ ื“ื™ ืกื“ืจ ื–ื™ื™ ื–ืขื ืขืŸ ืื•ื™ืกื’ืขืฉื˜ืขืœื˜.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ ื•ื•ืึธืก ืงืขื ืขืŸ ืœื™ื™ื›ื˜ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึทืœืข ืคื™ืจ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื™ื– ืึท ื‘ื™ื™ื ืขืจื™ ื–ื•ื›ืŸ ื‘ื•ื™ื. ื™ืขื“ืขืจ ืคื•ืŸ ื–ื™ื™ึทืŸ ื ืึธื•ื“ื– ืจืขืคึผืจืึทื–ืขื ืฅ ืึท ืฉืœื™ืกืœ ื•ื•ืึธืก ื“ื™ื•ื•ื™ื™ื“ื– ื“ื™ ื’ืื ืฆืข ืกื•ื‘ืกืขื˜ ืคื•ืŸ ืงื™ื ื“ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ืฆื•ื•ื™ื™ ืกื•ื‘ื˜ืจื™ืขืก. ื“ืขืจ ืœื™ื ืงืขืจ ื›ึผื•ืœืœ ื“ื™ ื•ื•ืึธืก ื–ืขื ืขืŸ ืงืœืขื ืขืจืขืจ ื•ื•ื™ ื“ื™ ืคืึธื˜ืขืจ, ืื•ืŸ ื“ื™ ืจืขื›ื˜ ื›ึผื•ืœืœ ื“ื™ ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืจืขืกืขืจืข. ื‘ืึทืงื•ืžืขืŸ ืึท ืึธืจื“ืขืจื“ ื’ืึทื ื’ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืื™ื– ืึทื˜ืฉื™ื•ื•ื“ ื“ื•ืจืš ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืงืœืึทืกื™ืฉ ื‘ื•ื™ื ื˜ืจืึทื•ื•ืขืจืกืึทืœื–

ื‘ื™ื™ื ืขืจื™ ื‘ื™ื™ืžืขืจ ื”ืึธื‘ืŸ ืฆื•ื•ื™ื™ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœ ืคืœืึธื– ื•ื•ืึธืก ืคืึทืจื”ื™ื˜ืŸ ื–ื™ื™ ืฆื• ื–ื™ื™ืŸ ืขืคืขืงื˜ื™ื•ื• ื•ื•ื™ ืึท ื“ื™ืกืง-ื‘ืื–ื™ืจื˜ ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ. ืขืจืฉื˜ืขืจ, ื“ืขืจ ืžื“ืจื’ื” ืคื•ืŸ ื–ื™ื™ืขืจ ื•ื•ืึธื’ ืื™ื– ืึทื ืคึผืจื™ื“ื™ืงื˜ืึทื‘ืึทืœ. ืขืก ืื™ื– ืึท ื”ื™ืคึผืฉ ืจื™ื–ื™ืงื™ืจืŸ ืคื•ืŸ ื‘ืืงื•ืžืขืŸ ื‘ื™ื™ืžืขืจ ืื™ืŸ ื•ื•ืึธืก ื“ื™ ื›ื™ื™ืฅ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืฆื•ื•ื™ื™ื’ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื–ื™ื™ืขืจ ืึทื ื“ืขืจืฉ, ื•ื•ืึธืก ื‘ืื˜ื™ื™ื˜ื™ืง ื•ื•ืขืจืกืึทื ื– ื“ื™ ืึทืœื’ืขืจื™ื“ืึทืžื™ืง ืงืึทืžืคึผืœืขืงืกื™ื˜ื™ ืคื•ืŸ ื“ื™ ื–ื•ื›ืŸ ืงืึทืžืคึผืขืจื“ ืฆื• ื•ื•ืึธืก ืื™ื– ื“ืขืจื•ื•ืึทืจื˜. ืฆื•ื•ื™ื™ื˜ื ืก, ื“ืขืจ ื–ืขื˜ ืคื•ืŸ ืงืจื™ื™ึทื–-ืœื™ื ืงืก ืฆื•ื•ื™ืฉืŸ ื ืึธื•ื“ื– ื“ื™ืคึผืจื™ื™ื•ื•ื– ื‘ื™ื™ื ืขืจื™ ื‘ื™ื™ืžืขืจ ืคื•ืŸ ืึธืจื˜ ืื™ืŸ ื–ื›ึผืจื•ืŸ. ื ืึธืขื ื˜ ื ืึธื•ื“ื– (ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ืงืึทื ืขืงืฉืึทื ื– ืฆื•ื•ื™ืฉืŸ ื–ื™ื™) ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœื™ื’ืŸ ืื•ื™ืฃ ื’ืึธืจ ืคืึทืจืฉื™ื“ืขื ืข ื‘ืœืขื˜ืขืจ ืื™ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื›ึผืจื•ืŸ. ื•ื•ื™ ืึท ืงืึทื ืกืึทืงื•ื•ืึทื ืก, ืืคื™ืœื• ืึท ืคึผืฉื•ื˜ ื“ื•ืจื›ืคืึธืจ ืคื•ืŸ ืขื˜ืœืขื›ืข ืืจื•ืžื™ืงืข ื ืึธื•ื“ื– ืื™ืŸ ืึท ื‘ื•ื™ื ืงืขืŸ ื“ืึทืจืคืŸ ืึท ื‘ืึทื–ื•ื›ืŸ ืฆื• ืึท ืคืึทืจื’ืœื™ื™ึทื›ืœืขืš ื ื•ืžืขืจ ืคื•ืŸ ื‘ืœืขื˜ืขืจ. ื“ืึธืก ืื™ื– ืึท ืคึผืจืึธื‘ืœืขื ืืคื™ืœื• ื•ื•ืขืŸ ืžื™ืจ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ื™ืคืขืงื˜ื™ื•ื•ื ืึทืก ืคื•ืŸ ื‘ื™ื™ื ืขืจื™ ื‘ื™ื™ืžืขืจ ื•ื•ื™ ืึท ืื™ืŸ-ื–ื™ืงืึธืจืŸ ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ, ื•ื•ื™ื™ึทืœ ืงืขืกื™ื™ื“ืขืจ ืจืึธื•ื˜ื™ื™ื˜ื™ื ื’ ื‘ืœืขื˜ืขืจ ืื™ืŸ ื“ื™ ืคึผืจืึทืกืขืกืขืจ ืงืึทืฉ ืื™ื– ื ื™ืฉื˜ ืึท ื‘ื™ืœื™ืง ืคืึทืจื’ืขื ื™ื’ืŸ. ื•ื•ืขืŸ ืขืก ืงื•ืžื˜ ืฆื• ืึธืคื˜ ืจื™ื˜ืจื™ื•ื•ื™ื ื’ ื‘ืœืขื˜ืขืจ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื ืึธื•ื“ื– ืคื•ืŸ ื“ื™ืกืง, ื“ื™ ืกื™ื˜ื•ืึทืฆื™ืข ื•ื•ืขืจื˜ ื’ืึธืจ ื˜ืจื•ื™ืขืจื™ืง.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–ื‘-ื‘ื™ื™ืžืขืจ, ื–ื™ื™ึทืขื ื“ื™ืง ืึทืŸ ืขื•ื•ืึธืœื•ืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื‘ื™ื™ื ืขืจื™ ื‘ื™ื™ืžืขืจ, ืกืึธืœื•ื•ืข ื“ื™ ืคึผืจืึธื‘ืœืขืžืก ื™ื™ื“ืขื ืึทืคื™ื™ื“ ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืคึผืึทืจืึทื’ืจืึทืฃ. ืขืจืฉื˜ืขืจ, ื–ื™ื™ ื–ืขื ืขืŸ ื–ื™ืš-ื‘ืึทืœืึทื ืกื™ื ื’. ืฆื•ื•ื™ื™ื˜ื ืก, ื™ืขื“ืขืจ ืคื•ืŸ ื–ื™ื™ืขืจ ื ืึธื•ื“ื– ืกืคึผืœื™ืฅ ื“ื™ ื’ืึทื ื’ ืคื•ืŸ ืงื™ื ื“ ืฉืœื™ืกืœืขืŸ ื ื™ืฉื˜ ืื™ืŸ 2, ืึธื‘ืขืจ ืื™ืŸ M ืึธืจื“ืขืจื“ ืกืึทื‘ืกืขืฅ, ืื•ืŸ ื“ื™ ื ื•ืžืขืจ M ืงืขืŸ ื–ื™ื™ืŸ ื’ืึทื ืฅ ื’ืจื•ื™ืก, ืื™ืŸ ื“ื™ ืกื“ืจ ืคื•ืŸ ืขื˜ืœืขื›ืข ื”ื•ื ื“ืขืจื˜ ืึธื“ืขืจ ืืคื™ืœื• ื˜ื•ื™ื–ื ื˜ืขืจ.

ื“ืขืจืžื™ื˜:

  1. ื™ืขื“ืขืจ ื ืึธื“ืข ื›ึผื•ืœืœ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืฉื•ื™ืŸ ืึธืจื“ืขืจื“ ืฉืœื™ืกืœืขืŸ ืื•ืŸ ื“ื™ ื‘ื™ื™ืžืขืจ ื–ืขื ืขืŸ ื–ื™ื™ืขืจ ืงื•ืจืฅ.
  2. ื“ืขืจ ื‘ื•ื™ื ืึทืงื•ื•ื™ื™ืขืจื– ื“ื™ ืคืึทืจืžืึธื’ ืคื•ืŸ ืึธืจื˜ ืคื•ืŸ ืึธืจื˜ ืื™ืŸ ื–ื›ึผืจื•ืŸ, ื–ื™ื ื˜ ืฉืœื™ืกืœืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ืึธืขื ื˜ ืื™ืŸ ื•ื•ืขืจื˜ ื–ืขื ืขืŸ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ืœื™ื’ืŸ ืœืขื‘ืŸ ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืึธื“ืขืจ ืืจื•ืžื™ืงืข ื ืึธื•ื“ื–.
  3. ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื“ื•ืจื›ืคืึธืจ ื ืึธื•ื“ื– ื•ื•ืขืŸ ืืจืืคื ื™ื“ืขืจืŸ ืึท ื‘ื•ื™ื ื‘ืขืฉืึทืก ืึท ื–ื•ื›ืŸ ืึธืคึผืขืจืึทืฆื™ืข ืื™ื– ืจื™ื“ื•ืกื˜.
  4. ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืฆื™ืœ ื ืึธื•ื“ื– ืœื™ื™ืขื ืขืŸ ื‘ืขืฉืึทืก ืงื™ื™ื˜ ืงื•ื•ื™ืจื™ื– ืื™ื– ืจื™ื“ื•ืกื˜, ื•ื•ื™ื™ึทืœ ื™ืขื“ืขืจ ืคื•ืŸ ื–ื™ื™ ืฉื•ื™ืŸ ื›ึผื•ืœืœ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืึธืจื“ืขืจื“ ืฉืœื™ืกืœืขืŸ.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

LMDB ื ื™ืฆื˜ ืึท ื•ื•ืขืจื™ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื‘-ื‘ื•ื™ื ื’ืขืจื•ืคืŸ ืึท ื‘ + ื‘ื•ื™ื ืฆื• ืงืจืึธื ื“ืึทื˜ืŸ. ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ืื•ื™ื‘ืŸ ื•ื•ื™ื™ื–ื˜ ื“ื™ ื“ืจื™ื™ ื˜ื™ื™ืคึผืก ืคื•ืŸ ื ืึธื•ื“ื– ื•ื•ืึธืก ืขืงืกื™ืกื˜ื™ืจืŸ ืื™ืŸ ืขืก:

  1. ืื™ืŸ ื“ืขืจ ืฉืคึผื™ืฅ ืื™ื– ื“ืขืจ ื•ื•ืึธืจืฆืœ. ืขืก ืžืึทื˜ื™ืจื™ืึทืœื™ื™ื–ื™ื– ื’ืึธืจื ื™ืฉื˜ ืžืขืจ ื•ื•ื™ ื“ืขืจ ื‘ืึทื’ืจื™ืฃ ืคื•ืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ืŸ ืึท ื•ื•ืขืจื›ืึทื•ืก. ืื™ืŸ ืื™ื™ืŸ LMDB ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืขื˜ืœืขื›ืข ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื•ื•ืึธืก ื˜ื™ื™ืœืŸ ืึท ืžืึทืคึผื˜ ื•ื•ื™ืจื˜ื•ืึทืœ ืึทื“ืจืขืก ืคึผืœืึทืฅ. ื™ืขื“ืขืจ ืคื•ืŸ ื–ื™ื™ ื”ื™ื™ื‘ื˜ ื–ื™ืš ืคื•ืŸ ื–ื™ื™ึทืŸ ืื™ื™ื’ืŸ ื•ื•ืึธืจืฆืœ.
  2. ืื™ืŸ ื“ื™ ืœืึธื•ืึทืกื˜ ืžื“ืจื’ื” ื–ืขื ืขืŸ ื“ื™ ื‘ืœืขื˜ืขืจ. ื–ื™ื™ ืื•ืŸ ื‘ืœื•ื™ื– ื–ื™ื™ ืึทื ื˜ื”ืึทืœื˜ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืคึผืขืจื– ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ื“ืึธืก ืื™ื– ื“ื™ ืื™ื™ื’ื ืืจื˜ื™ืงื™ื™ื˜ ืคื•ืŸ ื‘+-ื‘ื™ื™ืžืขืจ. ืื•ื™ื‘ ืึท ืจืขื’ื•ืœืขืจ ื‘-ื‘ื•ื™ื ืกื˜ืึธืจื– ื•ื•ืขืจื˜ ืคึผืึทืจืฅ ืื™ืŸ ื ืึธื•ื“ื– ืคื•ืŸ ืึทืœืข ืœืขื•ื•ืขืœืก, ื“ื™ B + ื•ื•ืขืจื™ื™ื™ืฉืึทืŸ ืื™ื– ื‘ืœื•ื™ื– ืื™ืŸ ื“ื™ ืœืึธื•ืึทืกื˜ ืื™ื™ื ืขืจ. ื ืึธืš ืคืึทืจืคืขืกื˜ื™ืงื˜ ื“ืขื ืคืึทืงื˜, ืžื™ืจ ื•ื•ืขืœืŸ ื•ื•ื™ื™ื˜ืขืจ ืจื•ืคืŸ ื“ื™ ืกื•ื‘ื˜ื™ืคึผืข ืคื•ืŸ โ€‹โ€‹ื“ืขื ื‘ื•ื™ื ื’ืขื ื™ืฆื˜ ืื™ืŸ LMDB ืคืฉื•ื˜ ืึท ื‘-ื‘ื•ื™ื.
  3. ืฆื•ื•ื™ืฉืŸ ื“ื™ ื•ื•ืึธืจืฆืœ ืื•ืŸ ื‘ืœืขื˜ืขืจ ืขืก ื–ืขื ืขืŸ 0 ืึธื“ืขืจ ืžืขืจ ื˜ืขื›ื ื™ืฉ ืœืขื•ื•ืขืœืก ืžื™ื˜ ื ืึทื•ื•ื™ื’ืึทืฆื™ืข (ืฆื•ื•ื™ื™ึทื’) ื ืึธื•ื“ื–. ื–ื™ื™ืขืจ ืึทืจื‘ืขื˜ ืื™ื– ืฆื• ื˜ื™ื™ืœืŸ ื“ื™ ืกืึธืจื˜ืขื“ ื’ืึทื ื’ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืฆื•ื•ื™ืฉืŸ ื“ื™ ื‘ืœืขื˜ืขืจ.

ืคื™ื–ื™ืงืœื™, ื ืึธื•ื“ื– ื–ืขื ืขืŸ ื‘ืœืึทืงืก ืคื•ืŸ ื–ื›ึผืจื•ืŸ ืคื•ืŸ ืึท ืคึผืจื™ื“ื™ื˜ืขืจืžื™ื ื“ ืœืขื ื’. ื–ื™ื™ืขืจ ื’ืจื™ื™ืก ืื™ื– ืึท ืงื™ื™ืคืœ ืคื•ืŸ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื–ื›ึผืจื•ืŸ ื‘ืœืขื˜ืขืจ ืื™ืŸ ื“ื™ ืึธืคึผืขืจื™ื™ื˜ื™ื ื’ ืกื™ืกื˜ืขื, ื•ื•ืึธืก ืžื™ืจ ื“ื™ืกืงืึทืกื˜ ืื•ื™ื‘ืŸ. ื“ื™ ื ืึธื“ืข ืกื˜ืจื•ืงื˜ื•ืจ ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืื•ื ื˜ืŸ. ื“ืขืจ ื›ืขื“ืขืจ ื›ึผื•ืœืœ ืžืขื˜ืึท ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ื“ื™ ืžืขืจืกื˜ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืื™ื– ื“ื™ ื˜ืฉืขืงืงืกื•ื. ื•ื•ื™ื™ึทื˜ืขืจ ืงื•ืžื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืึธืคืกืขืฅ ืื™ืŸ ื•ื•ืึธืก ื“ื™ ืกืขืœื– ืžื™ื˜ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืœื™ื’ืŸ. ื“ื™ ื“ืึทื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึธื“ืขืจ ืฉืœื™ืกืœืขืŸ, ืื•ื™ื‘ ืžื™ืจ ื–ืขื ืขืŸ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ื ืึทื•ื•ื™ื’ืึทืฆื™ืข ื ืึธื•ื“ื–, ืึธื“ืขืจ ื’ืึทื ืฅ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืคึผืขืจื– ืื™ืŸ ื“ื™ ืคืึทืœ ืคื•ืŸ ื‘ืœืขื˜ืขืจ. ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื‘ืœืขื˜ืขืจ ืื™ืŸ ื“ื™ ืึทืจื‘ืขื˜ "ืืคืฉืืฆื•ื ื’ ืคื•ืŸ ื”ื•ื™ืš ืคืึธืจืฉื˜ืขืœื•ื ื’ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืกื˜ืึธืจื–".

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื ืื›ื“ืขื ื•ื•ืืก ืžื™ืจ ื”ืื‘ืŸ ื‘ืื”ืื ื“ืœื˜ ื“ืขื ืื™ื ืขืจืœื™ื›ืขืŸ ืื™ื ื”ืืœื˜ ืคื•ืŸ ื‘ืœืื˜ ื ืึธื•ื“ื–, ื•ื•ืขืœืŸ ืžื™ืจ ื•ื•ื™ื™ื˜ืขืจ ืคืืจื˜ืจืขื˜ืŸ ื“ืขื LMDB ื‘-ื‘ื•ื™ื ืื•ื™ืฃ ื ืคืืจืื™ื™ื ืคืœื˜ืขืจื˜ ืื•ืคืŸ ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ื˜ืขืจื“ื™ืงืขืจ ืคืืจื.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื‘ืœืขื˜ืขืจ ืžื™ื˜ ื ืึธื•ื“ื– ื–ืขื ืขืŸ ืœื™ื’ืŸ ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœื™ ืื•ื™ืฃ ื“ื™ืกืง. ื”ืขื›ืขืจ ื’ืขืฆื™ื™ืœื˜ ื‘ืœืขื˜ืขืจ ื–ืขื ืขืŸ ืœื™ื’ืŸ ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข. ื“ื™ ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข ืžืขื˜ืึท ื‘ืœืึทื˜ ื›ึผื•ืœืœ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืึธืคืกืขืฅ ื“ื•ืจืš ื•ื•ืึธืก ื“ื™ ืจื•ืฅ ืคื•ืŸ ืึทืœืข ื‘ื™ื™ืžืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ. ื•ื•ืขืŸ ืขืคืŸ ืึท ื˜ืขืงืข, LMDB ืกืงืึทื ื– ื“ื™ ื˜ืขืงืข ื‘ืœืึทื˜ ื“ื•ืจืš ื‘ืœืึทื˜ ืคื•ืŸ ืกื•ืฃ ืฆื• ืึธื ื”ื™ื™ื‘ ืื™ืŸ ื–ื•ื›ืŸ ืคื•ืŸ ืึท ื’ื™ืœื˜ื™ืง ืžืขื˜ืึท ื‘ืœืึทื˜ ืื•ืŸ ื“ื•ืจืš ืขืก ื’ืขืคื™ื ื˜ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืื™ืฆื˜, ืžื™ื˜ ืึท ื’ืขื“ืึทื ืง ืคื•ืŸ ื“ื™ ืœืึทื“ื–ืฉื™ืงืึทืœ ืื•ืŸ ื’ืฉืžื™ื•ืช ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ืึทื˜ืŸ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข, ืžื™ืจ ืงืขื ืขืŸ ืคืึธืจื–ืขืฆืŸ ืฆื• ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ื“ืจื™ื˜ ื–ื™ื™ึทืœ ืคื•ืŸ LMDB. ืขืก ืื™ื– ืžื™ื˜ ื–ื™ื™ืŸ ื”ื™ืœืฃ ืึทื– ืึทืœืข ืกื˜ืึธืจื™ื“ื–ืฉ ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธื ืก ืคืึทืœืŸ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœืœื™ ืื•ืŸ ืื™ืŸ ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜ ืคื•ืŸ ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ, โ€‹โ€‹ื’ืขื‘ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ื™ ืึท ื’ืึทื ืฅ ื“ื™ ืคืึทืจืžืึธื’ ืคื•ืŸ ืžื•ืœื˜ื™ื•ื•ืขืจืกื™ืึธืŸ.

3.3. ื•ื•ื™ื™ืœ #3. ืงืึธืคึผื™-ืื•ื™ืฃ-ืฉืจื™ื™ึทื‘ืŸ

ืขื˜ืœืขื›ืข ื‘-ื‘ื•ื™ื ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืึทืจื™ื™ึทื ืฆื™ืขืŸ ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื–ื™ื™ึทืŸ ื ืึธื•ื“ื–. ืื™ื™ืŸ ื‘ื™ื™ืฉืคึผื™ืœ ืื™ื– ืฆื• ืœื™ื™ื’ืŸ ืึท ื ื™ื™ึทืข ืฉืœื™ืกืœ ืฆื• ืึท ื ืึธื“ืข ื•ื•ืึธืก ื”ืื˜ ืฉื•ื™ืŸ ืจื™ื˜ืฉื˜ ื–ื™ื™ืŸ ืžืึทืงืกื™ืžื•ื ืงืึทืคึผืึทืฆื™ื˜ืขื˜. ืื™ืŸ ื“ืขื ืคืึทืœ, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง, ืขืจืฉื˜ืขืจ, ืฆื• ืฉืคึผืึทืœื˜ืŸ ื“ื™ ื ืึธื“ืข ืื™ืŸ ืฆื•ื•ื™ื™, ืื•ืŸ ืฆื•ื•ื™ื™ื˜ื ืก, ืฆื• ืœื™ื™ื’ืŸ ืึท ืœื™ื ืง ืฆื• ื“ื™ ื ื™ื™ึทืข ื‘ืึทื“ื™ื ื’ ืงื™ื ื“ ื ืึธื“ืข ืื™ืŸ ื–ื™ื™ืŸ ืคืึธื˜ืขืจ. ื“ืขื ืคึผืจืึธืฆืขื“ื•ืจ ืื™ื– ืคึผืึทื˜ืขื ื˜ืฉืึทืœื™ ื–ื™ื™ืขืจ ื’ืขืคืขืจืœืขืš. ืื•ื™ื‘ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื” (ืงืจืึทืš, ืžืึทื›ื˜ ืึทื•ื˜ื™ื“ื–ืฉ, ืืื–"ื• ื•) ื‘ืœื•ื™ื– ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ืคื•ืŸ ื“ื™ ืกืขืจื™ืข ืคืึทืœืŸ, ื“ืขืจ ื‘ื•ื™ื ื•ื•ืขื˜ ื‘ืœื™ื™ึทื‘ืŸ ืื™ืŸ ืึท ืกืชื™ืจื” ืฉื˜ืึทื˜.

ืื™ื™ืŸ ื˜ืจืื“ื™ืฆื™ืื ืขืœืŸ ืœื™ื™ื–ื•ื ื’ ืคึฟืึทืจ ืžืื›ืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ื˜ ืื™ื– ืฆื• ืœื™ื™ื’ืŸ ืึทืŸ ื ืึธืš ืื•ื™ืฃ-ื“ื™ืกืง ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ ื•ื•ื™ื™ึทื˜ืขืจ ืฆื• ื“ื™ ื‘-ื‘ื•ื™ื - ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืงืœืึธืฅ, ืื•ื™ืš ื‘ืืงืื ื˜ ื•ื•ื™ ืึท ืฉืจื™ื™ึทื‘ืŸ ืคืึธืจื•ื™ืก ืงืœืึธืฅ (WAL). ืขืก ืื™ื– ืึท ื˜ืขืงืข ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื•ื•ืึธืก ื“ื™ ื‘ื“ืขื” ืึธืคึผืขืจืึทืฆื™ืข ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืฉื˜ืจืขื ื’ ืื™ื™ื“ืขืจ ืžืึทื“ืึทืคื™ื™ื™ื ื’ ื“ื™ ื‘-ื‘ื•ื™ื ื–ื™ืš. ืื–ื•ื™, ืื•ื™ื‘ ื“ืึทื˜ืŸ ืงืึธืจื•ืคึผืฆื™ืข ืื™ื– ื“ื™ื˜ืขืงื˜ืึทื“ ื‘ืขืฉืึทืก ื–ื™ืš-ื“ื™ืึทื’ื ืึธืกื™ืก, ื“ื™ ื“ืึทื˜ืึทื‘ืึทืกืข ืงืึทื ืกืึทืœืฅ ื“ื™ ืงืœืึธืฅ ืฆื• ืฉื˜ืขืœืŸ ื–ื™ืš ืื™ืŸ ืกื“ืจ.

LMDB ื”ืื˜ ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ ืึท ืึทื ื“ืขืจืฉ ืื•ืคึฟืŸ ื•ื•ื™ ืึท ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ืฅ ืžืขืงืึทื ื™ื–ืึทื, ื’ืขืจื•ืคึฟืŸ ืงืึธืคึผื™ืข-ืื•ื™ืฃ-ืฉืจื™ื™ื‘ืŸ. ื–ื™ื™ืŸ ืขืกืึทื ืก ืื™ื– ืึทื– ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ื“ืึทื˜ืŸ ืื•ื™ืฃ ืึท ื™ื’ื–ื™ืกื˜ื™ื ื’ ื‘ืœืึทื˜, ืขืก ืขืจืฉื˜ืขืจ ืงืึทืคึผื™ื– ืขืก ืœืขื’ืึทืžืจืข ืื•ืŸ ืžืึทื›ืŸ ืึทืœืข ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธื ืก ืื™ืŸ ื“ื™ ืงืึธืคึผื™ืข.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ืขืจื ืึธืš, ืื™ืŸ ืกื“ืจ ืคึฟืึทืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื“ืึทื˜ืŸ ืฆื• ื–ื™ื™ืŸ ื‘ืืจืขื›ื˜ื™ื’ื˜, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ืœื™ื ืง ืฆื• ื“ื™ ื ืึธื“ืข ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืืจืŸ ืงืจืึทื ื˜ ืื™ืŸ ื–ื™ื™ืŸ ืคืึธื˜ืขืจ ื ืึธื“ืข. ื–ื™ื ื˜ ืขืก ื“ืึทืจืฃ ืื•ื™ืš ื–ื™ื™ืŸ ืžืึธื“ื™ืคื™ืฆื™ืจื˜ ืคึฟืึทืจ ื“ืขื, ืขืก ืื™ื– ืื•ื™ืš ืงืึทืคึผื™ื“ ืคืจื™ืขืจ. ื“ืขืจ ืคึผืจืึธืฆืขืก ื”ืืœื˜ ืจืขืงื•ืจืกื™ื•ื•ืขืœื™ ืึทืœืข ื“ื™ ื•ื•ืขื’ ืฆื• ื“ืขืจ ื•ื•ืึธืจืฆืœ. ื“ื™ ืœืขืฆื˜ืข ื–ืึทืš ืฆื• ื˜ื•ื™ืฉืŸ ืื™ื– ื“ื™ ื“ืึทื˜ืŸ ืื•ื™ืฃ ื“ื™ ืžืขื˜ืึท ื‘ืœืึทื˜

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืื•ื™ื‘ ืคึผืœื•ืฆืœื™ื ื’ ื“ืขืจ ืคึผืจืึธืฆืขืก ืงืจืึทืฉื™ื– ื‘ืขืฉืึทืก ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืคึผืจืึธืฆืขื“ื•ืจ, ืึธื“ืขืจ ืึท ื ื™ื™ึทืข ืžืขื˜ืึท ื‘ืœืึทื˜ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื‘ืืฉืืคืŸ, ืึธื“ืขืจ ืขืก ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื’ืขืฉืจื™ื‘ืŸ ื’ืึธืจ ืฆื• ื“ื™ืกืง, ืื•ืŸ ื–ื™ื™ืŸ ื˜ืฉืขืงืกื•ื ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืึทืœืฉ. ืื™ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืฆื•ื•ื™ื™ ืงืึทืกืขืก, ื ื™ื™ึทืข ื‘ืœืขื˜ืขืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื ืจื™ื˜ืฉืึทื‘ืึทืœ, ืึธื‘ืขืจ ืึทืœื˜ ืึธื ืขืก ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืึทืคืขืงื˜ืึทื“. ื“ืึธืก ื™ืœื™ืžืึทื ื™ื™ืฅ ื“ื™ ื ื•ื™ื˜ ืคึฟืึทืจ LMDB ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืคืึธืจื•ื™ืก ืงืœืึธืฅ ืฆื• ื”ืึทืœื˜ืŸ ื“ืึทื˜ืŸ ืงืึธื ืกื™ืกื˜ืขื ืกื™. ื“ื™ ืคืึทืงื˜ืึธ, ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ืึทื˜ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ื™ืฃ ื“ื™ ื“ื™ืกืง ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ื™ื‘ืŸ ื ืขืžื˜ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ ืื•ื™ืฃ ื–ื™ื™ึทืŸ ืคื•ื ืงืฆื™ืข. ื“ืขืจ ืึทื•ื•ืขืง ืคื•ืŸ ืึท ื™ืงืกืคึผืœื™ืกืึทื˜ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืงืœืึธืฅ ืื™ื– ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ LMDB ื•ื•ืึธืก ื’ื™ื˜ ื”ื•ื™ืš ื“ืึทื˜ืŸ ืœื™ื™ืขื ืขืŸ ื’ื™ื›ืงื™ื™ึทื˜

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ืขืจ ืจื™ื–ืึทืœื˜ื™ื ื’ ืคึผืœืึทืŸ, ื’ืขืจื•ืคึฟืŸ ืฆื•ื’ืขื‘ืŸ-ื‘ืœื•ื™ื– ื‘-ื‘ื•ื™ื, ื’ื™ื˜ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜ ืื•ืŸ ืžื•ืœื˜ื™-ื•ื•ืขืจืกื™ืข. ืื™ืŸ LMDB, ื™ืขื“ืขืจ ืึธืคึฟืŸ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื™ื– ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื“ื™ ื“ืขืจื•ื•ื™ื™ึทืœ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ื‘ื•ื™ื ื•ื•ืึธืจืฆืœ. ื‘ื™ื– ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื™ื– ื’ืขืขื ื“ื™ืงื˜, ื“ื™ ื‘ืœืขื˜ืขืจ ืคื•ืŸ ื“ืขื ื‘ื•ื™ื ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืื™ื ื•ื•ืขื˜ ืงื™ื™ื ืžืึธืœ ื–ื™ื™ืŸ ื’ืขื‘ื™ื˜ืŸ ืึธื“ืขืจ ืจื™ื•ื–ื“ ืคึฟืึทืจ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ, ืึทื–ื•ื™ ืื™ืจ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ื•ื•ื™ ืœืึทื ื’ ื•ื•ื™ ืื™ืจ ื•ื•ื™ืœื˜ ืžื™ื˜ ืคึผื•ื ืงื˜ ื“ื™ ืกื›ื•ื ืคื•ืŸ ื“ืึทื˜ืŸ ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื™ื– ื’ืขืขืคื ื˜, ืืคื™ืœื• ืื•ื™ื‘ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ื”ืืœื˜ ืฆื• ื–ื™ื™ืŸ ืึทืงื˜ื™ื•ื•ืœื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืื™ืŸ ื“ืขื ืฆื™ื™ื˜. ื“ืึธืก ืื™ื– ื“ื™ ืขืกืึทื ืก ืคื•ืŸ ืžื•ืœื˜ื™ื•ื•ืขืจืกื™ืึธืŸ, ืžืื›ืŸ LMDB ืึทืŸ ืื™ื“ืขืืœ ื“ืึทื˜ืŸ ืžืงื•ืจ ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ื‘ืืœื™ื‘ื˜ืข UICollectionView. ื ืึธืš ืึธืคึผืขื ืขื“ ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ, ืขืก ืื™ื– ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ื–ื™ืงืึธืจืŸ ืฉืคึผื•ืจ ืคื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ื•ืจืš ื›ื™ื™ืกื˜ืึทืœื™ ืคึผืึทืžืคึผื™ื ื’ ืงืจืึทื ื˜ ื“ืึทื˜ืŸ ืื™ืŸ ืขื˜ืœืขื›ืข ื–ื™ืงืึธืจืŸ ืกื˜ืจื•ืงื˜ื•ืจ, ื•ื•ื™ื™ึทืœ ืคื•ืŸ ืžื•ืจื ืฆื• ื–ื™ื™ืŸ ืœื™ื ืงืก ืžื™ื˜ ื’ืึธืจื ื™ืฉื˜. ื“ืขืจ ืฉื˜ืจื™ืš ื“ื™ืกื˜ื™ื ื’ื’ื•ื•ื™ืฉื™ื– LMDB ืคื•ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ SQLite, ื•ื•ืึธืก ืงืขืŸ ื ื™ืฉื˜ ื‘ืึทืจื™ืžืขืจื™ื™ึท ืžื™ื˜ ืึทื–ืึท ื’ืึทื ืฅ ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜. ื•ื•ืขืŸ ืžืขืŸ ื”ืึธื˜ ื’ืขืขืคึฟื ื˜ ืฆื•ื•ื™ื™ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืื™ืŸ ื“ื™ ืœืขืฆื˜ืข ืื•ืŸ ืื•ื™ืกื’ืขืžืขืงื˜ ืึท ื–ื™ื›ืขืจ ืจืขืงืึธืจื“ ืื™ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื–ื™ื™, ืขืก ื•ื•ืขื˜ ื ื™ื˜ ืžืขืจ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื–ืขืœื‘ืข ืจืขืงืึธืจื“ ืื™ืŸ ื“ื™ ืจื’ืข ืจื•ืขืŸ ืื™ื™ื ืขืจ.

ื“ื™ ืคืœื™ืคึผ ื–ื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืžืึทื˜ื‘ื™ื™ืข ืื™ื– ื“ื™ ืคึผืึทื˜ืขื ื˜ืฉืึทืœื™ ื‘ืื˜ื™ื™ื˜ื™ืง ื”ืขื›ืขืจ ืงืึทื ืกืึทืžืฉืึทืŸ ืคื•ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื›ึผืจื•ืŸ. ื“ืขืจ ืจื•ืง ื•ื•ื™ื™ื–ื˜ ื•ื•ื™ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกื˜ืจื•ืงื˜ื•ืจ ื•ื•ืขื˜ ืงื•ืงืŸ ื•ื•ื™ ืื•ื™ื‘ ืขืก ืื™ื– ืžืึทื“ืึทืคื™ื™ื“ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ ืžื™ื˜ 3 ืขืคืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืงื•ืงืŸ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ื–ื™ื ื˜ LMDB ืงืขื ืขืŸ ื ื™ืฉื˜ ืจื™ื™ื•ื– ื ืึธื•ื“ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ืจื™ื˜ืฉื˜ ืคึฟื•ืŸ ืจื•ืฅ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืงืจืึทื ื˜ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, ื“ื™ ืงืจืึธื ื”ืื˜ ืงื™ื™ืŸ ื‘ืจื™ืจื” ืึธื‘ืขืจ ืฆื• ืึทืœืึทืงื™ื™ื˜ ืืŸ ืื ื“ืขืจ ืคืขืจื˜ ื•ื•ืึธืจืฆืœ ืื™ืŸ ื–ื›ึผืจื•ืŸ ืื•ืŸ ืึทืžืึธืœ ื•ื•ื™ื“ืขืจ ืงืœืึธื•ืŸ ื“ื™ ืžืึทื“ืึทืคื™ื™ื“ ื‘ืœืขื˜ืขืจ ืื•ื ื˜ืขืจ ืขืก.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ืึธ ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื ื•ืฆื™ืง ืฆื• ืฆื•ืจื™ืงืจื•ืคืŸ ื“ื™ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืื•ื™ืฃ ื–ื›ึผืจื•ืŸ-ืžืึทืคึผื˜ ื˜ืขืงืขืก. ืขืก ืžื™ื™ื ื˜ ืึทื– ื“ื™ ื ืึธืš ืงืึทื ืกืึทืžืฉืึทืŸ ืคื•ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื™ืงืึธืจืŸ ื–ืึธืœ ื ื™ืฉื˜ ื–ืึธืจื’ ืื•ื ื“ื– ืคื™ืœ, ื•ื•ื™ื™ึทืœ ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ื‘ื™ื™ืฉื˜ื™ื™ืขืจืŸ ืฆื• ื“ื™ ื–ื™ืงืึธืจืŸ ืฉืคึผื•ืจ ืคื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืึธื‘ืขืจ, ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืืžืขืจืงื˜ ืึทื– ื™ืึธืก ืื™ื– ื–ื™ื™ืขืจ ืงืึทืจื’ ืื™ืŸ ืึทืœืึทืงื™ื™ื˜ื™ื ื’ ืขืก, ืื•ืŸ ืžื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜, ื•ื•ื™ ืื•ื™ืฃ ืึท ืกืขืจื•ื•ืขืจ ืึธื“ืขืจ ื“ืขืกืงื˜ืึทืคึผ, ืฆื•ืฉื˜ืขืœืŸ ืึท LMDB ื’ืขื’ื ื˜ ืคื•ืŸ 1 ื˜ืขืจืึทื‘ื™ื˜ืข ืื•ืŸ ื ื™ืฉื˜ ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ื“ืขื ืฉื˜ืจื™ืš. ืื•ื™ื‘ ืžืขื’ืœืขืš, ืื™ืจ ื–ืึธืœ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืžืึทื›ืŸ ื“ื™ ืœืขื‘ืŸ ืคื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ื•ื•ื™ ืงื•ืจืฅ ื•ื•ื™ ืžืขื’ืœืขืš.

4. ื“ื™ื–ื™ื™ื ื™ื ื’ ืึท ื“ืึทื˜ืŸ ืกื˜ืฉืขืžืึท ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืึทืคึผื™

ืœืึธืžื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืื•ื ื“ื–ืขืจ ืึทืคึผื™ ืึทื ืึทืœื™ืกื™ืก ื“ื•ืจืš ืงื•ืงืŸ ืื™ืŸ ื“ื™ ื™ืงืขืจื“ื™ืง ืึทื‘ืกื˜ืจืึทืงืฆื™ืขืก ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš LMDB: ืกื•ื•ื™ื•ื•ืข ืื•ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–, ืฉืœื™ืกืœืขืŸ ืื•ืŸ ื•ื•ืึทืœื•ืขืก, ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืื•ืŸ ืงื•ืจืกืึธืจืก.

ื ื‘ืึทืžืขืจืงื•ื ื’ ื•ื•ืขื’ืŸ ืงืึธื“ ืœื™ืกื˜ื™ื ื’ืก

ืึทืœืข ืคืึทื ื’ืงืฉืึทื ื– ืื™ืŸ ื“ื™ ืฆื™ื‘ื•ืจ LMDB API ืงืขืจืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื–ื™ื™ืขืจ ืึทืจื‘ืขื˜ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ื˜ืขื•ืช ืงืึธื“, ืึธื‘ืขืจ ืื™ืŸ ืึทืœืข ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืœื™ืกื˜ื™ื ื’ืก ื“ื™ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืื™ื– ืื™ื‘ืขืจื’ืขื”ื™ืคึผืขืจื˜ ืฆื•ืœื™ื‘ ื“ื™ ืงื•ืจืฅืงื™ื™ื˜. ื’ืึธืคึผืœ C ++ ืจืึทืคึผืขืจื– lmdbxx, ืื™ืŸ ื•ื•ืึธืก ืขืจืจืึธืจืก ื–ืขื ืขืŸ ืžืึทื˜ื™ืจื™ืึทืœื™ื™ื–ื“ ื•ื•ื™ C ++ ืื•ื™ืกื ืขืžืขืŸ.

ื•ื•ื™ ื“ื™ ืคืึทืกื˜ืึทืกื˜ ื•ื•ืขื’ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ LMDB ืฆื• ืึท ืคึผืจื•ื™ืขืงื˜ ืคึฟืึทืจ ื™ืึธืก ืึธื“ืขืจ ืžืึทืงืึธืก, ืื™ืš ืคึฟืึธืจืฉืœืึธื’ืŸ ืžื™ื™ืŸ ืงืึธืงืึธืึทืคึผืึธื“ POSLMDB.

4.1. ื™ืงืขืจื“ื™ืง ืึทื‘ืกื˜ืจืึทืงืฆื™ืขืก

ืกื‘ื™ื‘ื”

ื‘ื™ื ื™ืขืŸ MDB_env ืื™ื– ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืคื•ืŸ ื“ื™ ื™ื ืขืจืœืขืš ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ LMDB. ืคึผืจืขืคื™ืงืกืขื“ ืคึฟื•ื ืงืฆื™ืข ืžืฉืคึผื—ื” mdb_env ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™ึทืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก. ืื™ืŸ ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ืคืึทืœ, ื“ื™ ื™ื ื™ื˜ื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืคื•ืŸ ื“ื™ ืžืึธื˜ืึธืจ ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก.

mdb_env_create(env);โ€‹
mdb_env_set_map_size(*env, 1024 * 1024 * 512)โ€‹
mdb_env_open(*env, path.UTF8String, MDB_NOTLS, 0664);

ืื™ืŸ ื“ื™ Mail.ru ืงืœืึธื•ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืžื™ืจ ื˜ืฉื™ื™ื ื“ื–ืฉื“ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืึทืœื•ืขืก ืคื•ืŸ ื‘ืœื•ื™ื– ืฆื•ื•ื™ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก.

ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ื– ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืึทื“ืจืขืก ืคึผืœืึทืฅ ืฆื• ื•ื•ืึธืก ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ื˜ืขืงืข ืื™ื– ืžืึทืคึผื˜. ืฆื•ื ื‘ืึทื“ื•ื™ืขืจืŸ, ืืคื™ืœื• ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžื™ื˜ืœ, ื“ื™ ืกืคึผืขืฆื™ืคื™ืฉ ื•ื•ืขืจื˜ ืงืขื ืขืŸ ื‘ื™ื™ึทื˜ืŸ ื‘ืื˜ื™ื™ื˜ื™ืง ืคื•ืŸ ืœื•ื™ืคืŸ ืฆื• ืœื•ื™ืคืŸ. ืฆื• ื ืขืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื“ืขื ืฉื˜ืจื™ืš ืคื•ืŸ ื™ืึธืก, ื“ื™ ืžืึทืงืกื™ืžื•ื ืกื˜ืึธืจื™ื“ื–ืฉ ื‘ืึทื ื“ ืื™ื– ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ. ืกื˜ืึทืจื˜ื™ื ื’ ืคื•ืŸ ืึท ื–ื™ื›ืขืจ ื•ื•ืขืจื˜, ืขืก ืื™ื– ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœื™ ื›ืึทื•ื•ื“ ื‘ื™ื– ื“ื™ ืคึฟื•ื ืงืฆื™ืข mdb_env_open ื•ื•ืขื˜ ื ื™ื˜ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืึทื ื“ืขืจืฉ ืคื•ืŸ ENOMEM. ืื™ืŸ ื˜ืขืึธืจื™ืข, ืขืก ืื™ื– ืื•ื™ืš ื“ื™ ืคืึทืจืงืขืจื˜ ื•ื•ืขื’ - ืขืจืฉื˜ืขืจ ืึทืœืึทืงื™ื™ื˜ ืึท ืžื™ื ื™ืžื•ื ืคื•ืŸ ื–ื›ึผืจื•ืŸ ืฆื• ื“ื™ ืžืึธื˜ืึธืจ, ืื•ืŸ ื“ืขืžืึธืœื˜, ื•ื•ืขืŸ ืขืจืจืึธืจืก ื–ืขื ืขืŸ ื‘ืืงื•ืžืขืŸ, MDB_MAP_FULL, ืคืึทืจื’ืจืขืกืขืจืŸ ืขืก. ืึธื‘ืขืจ, ืขืก ืื™ื– ืคื™ืœ ืžืขืจ ืฉื•ื•ืขืจ. ื“ื™ ืกื™ื‘ื” ืื™ื– ืึทื– ื“ืขืจ ืคึผืจืึธืฆืขื“ื•ืจ ืคึฟืึทืจ ืฉื™ื™ึทืขืš-ืึทืœืึธืงืึทื˜ื™ื ื’ ื–ื™ืงืึธืจืŸ (ืจืขืžืึทืคึผ) ื ื™ืฆืŸ ื“ื™ ืคึฟื•ื ืงืฆื™ืข mdb_env_set_map_size ื™ื ื•ื•ืึทืœืึทื“ื™ื™ืฅ ืึทืœืข ืขื ื˜ื™ื˜ื™ื– (ืงื•ืจืกืึธืจืก, ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, ืฉืœื™ืกืœืขืŸ ืื•ืŸ ื•ื•ืึทืœื•ืขืก) ืคืจื™ืขืจ ื‘ืืงื•ืžืขืŸ ืคื•ืŸ ื“ื™ ืžืึธื˜ืึธืจ. ื’ืขื ื•ืžืขืŸ ื“ืขื ืงืขืจ ืคื•ืŸ ื’ืขืฉืขืขื ื™ืฉืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ืื™ืŸ ื“ื™ ืงืึธื“ ื•ื•ืขื˜ ืคื™ืจืŸ ืฆื• ื–ื™ื™ืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืงืึทืžืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืื•ื™ื‘, ืึธื‘ืขืจ, ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื›ึผืจื•ืŸ ืื™ื– ื–ื™ื™ืขืจ ื•ื•ื™ื›ื˜ื™ืง ืคึฟืึทืจ ืื™ืจ, ื“ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ืึท ืกื™ื‘ื” ืฆื• ื ืขืžืขืŸ ืึท ื ืขืขื ื˜ืขืจ ืงื•ืง ื‘ื™ื™ึท ื“ื™ ื’ืึธืคึผืœ ื•ื•ืึธืก ืื™ื– ื•ื•ื™ื™ึทื˜ ืคืึธืจื•ื™ืก MDBX, ื•ื•ื• ืฆื•ื•ื™ืฉืŸ ื“ื™ ืžื•ื“ื™ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืขืก ืื™ื– "ืึธื˜ืึทืžืึทื˜ื™ืง ืื•ื™ืฃ-ื“ืขื-ืคืœื™ืขืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ื’ืจื™ื™ืก ืึทื“ื–ืฉืึทืกื˜ืžืึทื ื˜".

ื“ื™ ืจื’ืข ืคึผืึทืจืึทืžืขื˜ืขืจ, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืขืจื˜ ืคื•ืŸ ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืื•ื ื“ื–, ืจืขื’ื™ืึทืœื™ื™ืฅ ื“ื™ ืžืึทืงืึทื ื™ืงืก ืคื•ืŸ ื™ื ืฉื•ืจื™ื ื’ ืคืึธื“ืขื ื–ื™ื›ืขืจืงื™ื™ึทื˜. ืฆื•ื ื‘ืึทื“ื•ื™ืขืจืŸ, ืœืคึผื—ื•ืช ื™ืึธืก 10 ื”ืื˜ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคืึธื“ืขื ื”ื™ื’ืข ืกื˜ืึธืจื™ื“ื–ืฉ. ืคึฟืึทืจ ื“ืขื ืกื™ื‘ื”, ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืื•ื™ื‘ืŸ, ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื™ื– ื’ืขืขืคื ื˜ ืžื™ื˜ ื“ื™ ืคืึธืŸ MDB_NOTLS. ืื•ื™ืกืขืจ ื“ืขื ืื™ื– ืื•ื™ืš ื’ืขื•ื•ืขืŸ ื ื•ื™ื˜ื™ืง ื’ืึธืคึผืœ C ++ ืจืึทืคึผืขืจ lmdbxxืฆื• ืฉื ื™ื™ึทื“ืŸ ืื•ื™ืก ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืžื™ื˜ ื“ืขื ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื•ืŸ ืื™ืŸ ืขืก.

Databases

ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ื– ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื‘-ื‘ื•ื™ื ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ืึธืก ืžื™ืจ ื“ื™ืกืงืึทืกื˜ ืื•ื™ื‘ืŸ. ื–ื™ื™ืŸ ืขืคืŸ ืึทืงืขืจื– ืื™ืŸ ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ, ื•ื•ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ืึท ื‘ื™ืกืœ ืžืึธื“ื ืข ืื™ืŸ ืขืจืฉื˜ืขืจ.

MDB_txn *txn;โ€‹
MDB_dbi dbi;โ€‹
mdb_txn_begin(env, NULL, MDB_RDONLY, &txn);โ€‹
mdb_dbi_open(txn, NULL, MDB_CREATE, &dbi);โ€‹
mdb_txn_abort(txn);

ื˜ืึทืงืข, ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื™ืŸ LMDB ืื™ื– ืึท ืกื˜ืึธืจื™ื“ื–ืฉ ืขื ื˜ื™ื˜ื™, ื ื™ืฉื˜ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื“ืึทื˜ืึทื‘ื™ื™ืก ืขื ื˜ื™ื˜ื™. ื“ืขืจ ื‘ืึทื’ืจื™ืฃ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืึทื˜ืึธืžื™ืฉืข ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ื™ืฃ ืขื ื˜ื™ื˜ื™ื– ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–. ืื™ืŸ ื˜ืขืึธืจื™ืข, ื“ืึธืก ืึธืคึผืขื ืก ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ืžืึธื“ืขืœื™ื ื’ ื˜ื™ืฉืŸ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–, ืึธื‘ืขืจ ืื™ืŸ ืื™ื™ืŸ ืžืึธืœ ืื™ืš ื’ืขื ื•ืžืขืŸ ืึท ืึทื ื“ืขืจืฉ ื•ื•ืขื’, ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขื˜ืึทืœ ืื•ื ื˜ืŸ.

ืฉืœื™ืกืœืขืŸ ืื•ืŸ ื•ื•ืึทืœื•ืขืก

ื‘ื™ื ื™ืขืŸ MDB_val ืžืึธื“ืขืœืก ื“ืขืจ ื‘ืึทื’ืจื™ืฃ ืคื•ืŸ ื‘ื™ื™ื“ืข ืฉืœื™ืกืœ ืื•ืŸ ื•ื•ืขืจื˜. ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ื”ืื˜ ืงื™ื™ืŸ ื’ืขื“ืึทื ืง ื•ื•ืขื’ืŸ ื–ื™ื™ืขืจ ืกืขืžืึทื ื˜ื™ืงืก. ืคึฟืึทืจ ืื™ืจ, ืขืคึผืขืก ืึทื ื“ืขืจืฉ ืื™ื– ื ืึธืจ ืึท ืžืขื ื’ืข ืคื•ืŸ โ€‹โ€‹ื‘ื™ื˜ืขืก ืคื•ืŸ ืึท ื’ืขื’ืขื‘ืŸ ื’ืจื™ื™ืก. ื“ื™ ืžืึทืงืกื™ืžื•ื ืฉืœื™ืกืœ ื’ืจื™ื™ืก ืื™ื– 512 ื‘ื™ื˜ืขืก.

typedef struct MDB_val {โ€‹
    size_t mv_size;โ€‹
    void *mv_data;โ€‹
} MDB_val;โ€‹โ€‹

ืžื™ื˜ ืึท ืคืึทืจื’ืœื™ื™ึทืš, ื“ื™ ืงืจืึธื ืกืึธืจื˜ ื“ื™ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ืึทืกืขื ื“ื™ื ื’ ืกื“ืจ. ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ืคืึทืจื‘ื™ื™ึทื˜ืŸ ืขืก ืžื™ื˜ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜, ื•ื•ืึธืก ืกืึธืจื˜ ื–ื™ื™ ื‘ื™ื™ื˜-ื‘ื™ื™-ื‘ื™ื™ื˜ ืื™ืŸ ืœืขืงืกื™ืงืึทื’ืจืึทืคื™ืง ืกื“ืจ.

ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–

ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืกื˜ืจื•ืงื˜ื•ืจ ืื™ื– ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขื˜ืึทืœ ืื™ืŸ ืคืจื™ืขืจื“ื™ืงืŸ ืงืึทืคึผื™ื˜ืœ, ืึทื–ื•ื™ ื“ืึธ ืื™ืš ื•ื•ืขืœ ื‘ืขืงื™ืฆืขืจ ืื™ื‘ืขืจื—ื–ืจืŸ ื–ื™ื™ืขืจ ื”ื•ื™ืคึผื˜ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก:

  1. ืฉื˜ื™ืฆื˜ ืึทืœืข ื™ืงืขืจื“ื™ืง ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ื–ื•ื™ืขืจ: ืึทื˜ืึธืžื™ืงื™ื™ื˜, ืงืึธื ืกื™ืกื˜ืขื ืกื™, ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜ ืื•ืŸ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™. ืื™ืš ืงืขืŸ ื ื™ืฉื˜ ื”ืขืœืคึฟืŸ ืึธื‘ืขืจ ื˜ืึธืŸ ืึทื– ืขืก ืื™ื– ืึท ื–ืฉื•ืง ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื’ืขื•ื•ืขืจ ืื•ื™ืฃ ืžืึทืงืึธืก ืื•ืŸ ื™ืึธืก ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืคืึทืจืคืขืกื˜ื™ืงื˜ ืื™ืŸ MDBX. ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ืžืขืจ ืื™ืŸ ื–ื™ื™ ืจืขืึทื“ืžืข.
  2. ื“ืขืจ ืฆื•ื’ืึทื ื’ ืฆื• ืžื•ืœื˜ื™ื˜ื”ืจืขืึทื“ื™ื ื’ ืื™ื– ื“ื™ืกืงืจื™ื™ื‘ื“ ื“ื•ืจืš ื“ื™ "ืื™ื™ืŸ ืฉืจื™ื™ึทื‘ืขืจ / ืงื™ื™ืคืœ ืœื™ื™ืขื ืขืจ" ืกื›ืขืžืข. ืฉืจื™ื™ื‘ืขืจืก ื‘ืœืืงื™ืจืŸ ื–ื™ืš ืื™ื™ื ืขืจ ื“ืขื ืื ื“ืขืจืŸ, ืื‘ืขืจ ื‘ืœืืงื™ืจืŸ ื ื™ืฉื˜ ื“ื™ ืœื™ื™ืขื ืขืจ. ืœื™ื™ืขื ืขืจ ื‘ืœืึธืง ื ื™ืฉื˜ ืฉืจื™ื™ื‘ืขืจืก ืึธื“ืขืจ ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ.
  3. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื ืขืกื˜ืขื“ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–.
  4. ืžื•ืœื˜ื™ื•ื•ืขืจืกื™ืึธืŸ ืฉื˜ื™ืฆืŸ.

ืžื•ืœื˜ื™ื•ื•ืขืจืกื™ืึธืŸ ืื™ืŸ LMDB ืื™ื– ืึทื–ื•ื™ ื’ื•ื˜ ืึทื– ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืขืก ืื™ืŸ ืงืึทืžืฃ. ืคึฟื•ืŸ ื“ื™ ืงืึธื“ ืื•ื ื˜ืŸ ืื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ืึทื– ื™ืขื“ืขืจ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืึทืจื‘ืขื˜ ืžื™ื˜ ืคึผื•ื ืงื˜ ื“ื™ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืงืจืึทื ื˜ ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ื•ื•ืขืŸ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืขืคืŸ, ื’ืึธืจ ืืคื’ืขื–ื•ื ื“ืขืจื˜ ืคื•ืŸ ืึทืœืข ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ. ื™ื ื™ื˜ื™ืึทืœื™ื™ื–ื™ื ื’ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืื•ืŸ ืึทื“ื™ื ื’ ืึท ืคึผืจืึธื‘ืข ืจืขืงืึธืจื“ ืฆื• ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ืคืึธืจืฉื˜ืขืœืŸ ืขืคึผืขืก ื˜ืฉื™ืงืึทื•ื•ืข, ืึทื–ื•ื™ ื“ื™ ืจื™ื˜ืฉื•ืึทืœื– ื–ืขื ืขืŸ ืœื™ื ืงืก ืื•ื ื˜ืขืจ ื“ื™ ืกืคึผื•ื™ืœืขืจ.

ืึทื“ื™ื ื’ ืึท ืคึผืจืึธื‘ืข ืคึผืึธื–ื™ืฆื™ืข

MDB_env *env;
MDB_dbi dbi;
MDB_txn *txn;

mdb_env_create(&env);
mdb_env_open(env, "./testdb", MDB_NOTLS, 0664);

mdb_txn_begin(env, NULL, 0, &txn);
mdb_dbi_open(txn, NULL, 0, &dbi);
mdb_txn_abort(txn);

char k = 'k';
MDB_val key;
key.mv_size = sizeof(k);
key.mv_data = (void *)&k;

int v = 997;
MDB_val value;
value.mv_size = sizeof(v);
value.mv_data = (void *)&v;

mdb_txn_begin(env, NULL, 0, &txn);
mdb_put(txn, dbi, &key, &value, MDB_NOOVERWRITE);
mdb_txn_commit(txn);

MDB_txn *txn1, *txn2, *txn3;
MDB_val val;

// ะžั‚ะบั€ั‹ะฒะฐะตะผ 2 ั‚ั€ะฐะฝะทะฐะบั†ะธะธ, ะบะฐะถะดะฐั ะธะท ะบะพั‚ะพั€ั‹ั… ัะผะพั‚ั€ะธั‚
// ะฝะฐ ะฒะตั€ัะธัŽ ะฑะฐะทั‹ ะดะฐะฝะฝั‹ั… ั ะพะดะฝะพะน ะทะฐะฟะธััŒัŽ.
mdb_txn_begin(env, NULL, 0, &txn1); // read-write
mdb_txn_begin(env, NULL, MDB_RDONLY, &txn2); // read-only

// ะ’ ั€ะฐะผะบะฐั… ะฟะตั€ะฒะพะน ั‚ั€ะฐะฝะทะฐะบั†ะธะธ ัƒะดะฐะปัะตะผ ะธะท ะฑะฐะทั‹ ะดะฐะฝะฝั‹ั… ััƒั‰ะตัั‚ะฒัƒัŽั‰ัƒัŽ ะฒ ะฝะตะน ะทะฐะฟะธััŒ.
mdb_del(txn1, dbi, &key, NULL);
// ะคะธะบัะธั€ัƒะตะผ ัƒะดะฐะปะตะฝะธะต.
mdb_txn_commit(txn1);

// ะžั‚ะบั€ั‹ะฒะฐะตะผ ั‚ั€ะตั‚ัŒัŽ ั‚ั€ะฐะฝะทะฐะบั†ะธัŽ, ะบะพั‚ะพั€ะฐั ัะผะพั‚ั€ะธั‚ ะฝะฐ
// ะฐะบั‚ัƒะฐะปัŒะฝัƒัŽ ะฒะตั€ัะธัŽ ะฑะฐะทั‹ ะดะฐะฝะฝั‹ั…, ะณะดะต ะทะฐะฟะธัะธ ัƒะถะต ะฝะตั‚.
mdb_txn_begin(env, NULL, MDB_RDONLY, &txn3);
// ะฃะฑะตะถะดะฐะตะผัั, ั‡ั‚ะพ ะทะฐะฟะธััŒ ะฟะพ ะธัะบะพะผะพะผัƒ ะบะปัŽั‡ัƒ ัƒะถะต ะฝะต ััƒั‰ะตัั‚ะฒัƒะตั‚.
assert(mdb_get(txn3, dbi, &key, &val) == MDB_NOTFOUND);
// ะ—ะฐะฒะตั€ัˆะฐะตะผ ั‚ั€ะฐะฝะทะฐะบั†ะธัŽ.
mdb_txn_abort(txn3);

// ะฃะฑะตะถะดะฐะตะผัั, ั‡ั‚ะพ ะฒ ั€ะฐะผะบะฐั… ะฒั‚ะพั€ะพะน ั‚ั€ะฐะฝะทะฐะบั†ะธะธ, ะพั‚ะบั€ั‹ั‚ะพะน ะฝะฐ ะผะพะผะตะฝั‚
// ััƒั‰ะตัั‚ะฒะพะฒะฐะฝะธั ะทะฐะฟะธัะธ ะฒ ะฑะฐะทะต ะดะฐะฝะฝั‹ั…, ะตั‘ ะฒัั‘ ะตั‰ั‘ ะผะพะถะฝะพ ะฝะฐะนั‚ะธ ะฟะพ ะบะปัŽั‡ัƒ.
assert(mdb_get(txn2, dbi, &key, &val) == MDB_SUCCESS);
// ะŸั€ะพะฒะตั€ัะตะผ, ั‡ั‚ะพ ะฟะพ ะบะปัŽั‡ัƒ ะฟะพะปัƒั‡ะตะฝ ะฝะต ะฐะฑั‹ ะบะฐะบะพะน ะผัƒัะพั€, ะฐ ะฒะฐะปะธะดะฝั‹ะต ะดะฐะฝะฝั‹ะต.
assert(*(int *)val.mv_data == 997);
// ะ—ะฐะฒะตั€ัˆะฐะตะผ ั‚ั€ะฐะฝะทะฐะบั†ะธัŽ, ั€ะฐะฑะพั‚ะฐัŽั‰ะตะน ั…ะพั‚ัŒ ะธ ั ัƒัั‚ะฐั€ะตะฒัˆะตะน, ะฝะพ ะบะพะฝัะธัั‚ะตะฝั‚ะฝะพะน ะฑะฐะทะพะน ะดะฐะฝะฝั‹ั….
mdb_txn_abort(txn2);

ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ืึทื– ืื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ื“ื™ ื–ืขืœื‘ืข ื˜ืจื™ืง ืžื™ื˜ SQLite ืื•ืŸ ื–ืขืŸ ื•ื•ืึธืก ื›ืึทืคึผืึทื ื–.

ืžื•ืœื˜ื™ื•ื•ืขืจืกื™ืึธืŸ ื‘ืจืขื ื’ื˜ ื–ื™ื™ืขืจ ืึธื ื’ืขื ืขื ืคึผืขืจืงืก ืฆื• ื“ื™ ืœืขื‘ืŸ ืคื•ืŸ ืึทืŸ ื™ืึธืก ื“ืขื•ื•ืขืœืึธืคึผืขืจ. ื ื™ืฆืŸ ื“ืขื ืคืึทืจืžืึธื’, ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ื›ื˜ ืื•ืŸ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ืกื˜ืจื•ื™ืขืจืŸ ื“ื™ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืงื•ืจืก ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ืžืงื•ืจ ืคึฟืึทืจ ืคืึทืจืฉื˜ืขืœืŸ ืคืืจืžืขืŸ, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื‘ืึทื ื™ืฆืขืจ ื“ืขืจืคืึทืจื•ื ื’ ืงืึทื ืกื™ื“ืขืจื™ื™ืฉืึทื ื–. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืœืึธื–ืŸ ืื•ื ื“ื– ื ืขืžืขืŸ ืึท ืฉื˜ืจื™ืš ืคื•ืŸ ื“ื™ Mail.ru ืงืœืึธื•ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึทื–ืึท ื•ื•ื™ ืึทื•ื˜ืึธืœืึธืึทื“ื™ื ื’ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื ืžื™ื“ื™ืึท ื’ืึทืœืขืจื™ืข. ืžื™ื˜ ืึท ื’ื•ื˜ ืงืฉืจ, ื“ืขืจ ืงืœื™ืขื ื˜ ืื™ื– ื‘ื™ื›ื•ืœืช ืฆื• ืœื™ื™ื’ืŸ ืขื˜ืœืขื›ืข ืคืึธื˜ืึธืก ืคึผืขืจ ืกืขืงื•ื ื“ืข ืฆื• ื“ื™ ืกืขืจื•ื•ืขืจ. ืื•ื™ื‘ ืื™ืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื ืึธืš ื™ืขื“ืขืจ ืืจืืคืงืืคื™ืข UICollectionView ืžื™ื˜ ืžืขื“ื™ืข ืื™ื ื”ืึทืœื˜ ืื™ืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ 'ืก ื•ื•ืึธืœืงืŸ, ืื™ืจ ืงืขื ืขืŸ ืคืึทืจื’ืขืกืŸ ื•ื•ืขื’ืŸ 60 fps ืื•ืŸ ื’ืœืึทื˜ ืกืงืจืึธืœืœื™ื ื’ ื‘ืขืฉืึทืก ื“ืขื ืคึผืจืึธืฆืขืก. ืฆื• ืคืึทืจืžื™ื™ึทื“ืŸ ืึธืคื˜ ืคืึทืจืฉื˜ืขืœืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืขืคืขืก ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ืงื•ืจืก ืื™ืŸ ื•ื•ืึธืก ื“ืึทื˜ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ืึทื ื“ืขืจืœื™ื™ื™ื ื’ UICollectionViewDataSource.

ืื•ื™ื‘ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื˜ื•ื˜ ื ื™ืฉื˜ ืฉื˜ื™ืฆืŸ ืžื•ืœื˜ื™ื•ื•ืขืจืกื™ืึธืŸ ืื•ืŸ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึทืจื‘ืขื˜ืŸ ื‘ืœื•ื™ื– ืžื™ื˜ ื“ืขื ืงืจืึทื ื˜ ืงืจืึทื ื˜ ืฉื˜ืึทื˜, ืฆื• ืžืึทื›ืŸ ืึท ืฆื™ื™ื˜-ืกื˜ืึทื‘ื™ืœ ืžืึธืžืขื ื˜ื‘ื™ืœื“ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ืึธื›ืžืึทื›ืŸ ืขืก ืึธื“ืขืจ ืฆื• ืขื˜ืœืขื›ืข ืื™ืŸ-ื–ื™ืงืึธืจืŸ ื“ืึทื˜ืŸ ืกื˜ืจื•ืงื˜ื•ืจ ืึธื“ืขืจ ืฆื• ืึท ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ื˜ื™ืฉ. ืงื™ื™ืŸ ืคื•ืŸ ื“ื™ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ืื™ื– ื–ื™ื™ืขืจ ื˜ื™ื™ึทืขืจ. ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืื™ืŸ ื–ื™ืงืึธืจืŸ, ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืงืึธืก ืื™ืŸ ื–ื›ึผืจื•ืŸ, ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ืกื˜ืึธืจื™ื ื’ ืงืึทื ืกื˜ืจืึทืงื˜ืึทื“ ืึทื‘ื“ื–ืฉืขืงืฅ, ืื•ืŸ ืื™ืŸ ืฆื™ื™ื˜, ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื™ื‘ืขืจื™ืง ORM ื˜ืจืึทื ืกืคืึธืจืžืึทืฆื™ืข. ื•ื•ื™ ืคึฟืึทืจ ื“ื™ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ื˜ื™ืฉ, ื“ืึธืก ืื™ื– ืึท ืืคื™ืœื• ืžืขืจ ื˜ื™ื™ึทืขืจ ืคืึทืจื’ืขื ื™ื’ืŸ, ื•ื•ืึธืก ืžืื›ื˜ ื–ื™ื ืขืŸ ื‘ืœื•ื™ื– ืื™ืŸ ื ื™ื˜-ื ื™ื˜ื•ื•ื™ืึทืœ ืงืึทืกืขืก.

LMDB ืก ืžื•ืœื˜ื™ื•ื•ืขืจืกื™ืึธืŸ ืœื™ื™ื–ื•ื ื’ ืกืึทืœื•ื•ื– ื“ื™ ืคึผืจืึธื‘ืœืขื ืคื•ืŸ ืžื™ื™ื ื˜ื™ื™ื ื™ื ื’ ืึท ืกื˜ืึทื‘ื™ืœ ื“ืึทื˜ืŸ ืžืงื•ืจ ืื•ื™ืฃ ืึท ื–ื™ื™ืขืจ ืขืœืขื’ืึทื ื˜ ื•ื•ืขื’. ืขืก ืื™ื– ื’ืขื ื•ื’ ื ืึธืจ ืฆื• ืขืคึฟืขื ืขืŸ ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื•ืŸ ื•ื•ื•ื•ืึทืœืึท - ื‘ื™ื– ืžื™ืจ ืคืึทืจืขื ื“ื™ืงืŸ ืขืก, ื“ื™ ื“ืึทื˜ืŸ ืฉื˜ืขืœืŸ ืื™ื– ื’ืขืจืึทื ื˜ื™ื“ ืฆื• ื–ื™ื™ืŸ ืคืึทืจืคืขืกื˜ื™ืงื˜. ื“ื™ ืœืึธื’ื™ืง ืคึฟืึทืจ ื–ื™ื™ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื’ื™ื›ืงื™ื™ึทื˜ ืื™ื– ืื™ืฆื˜ ืœืขื’ืึทืžืจืข ืื™ืŸ ื“ื™ ื”ืขื ื˜ ืคื•ืŸ ื“ื™ ืคึผืจืขื–ืขื ื˜ื™ืจื•ื ื’ ืฉื™ื›ื˜ืข, ืžื™ื˜ ืงื™ื™ืŸ ืึธื•ื•ื•ืขืจื›ืขื“ ืคื•ืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืจืขืกื•ืจืกืŸ.

ืงื•ืจืกืึธืจืก

ืงื•ืจืกืึธืจืก ืฆื•ืฉื˜ืขืœืŸ ืึท ืžืขืงืึทื ื™ื–ืึทื ืคึฟืึทืจ ืึธืจื“ืขืจืœื™ ื™ื˜ืขืจื™ื™ื˜ื™ื ื’ ืื™ื‘ืขืจ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืคึผืขืจื– ื“ื•ืจืš ื‘-ื‘ื•ื™ื ื˜ืจืึทื•ื•ืขืจืกืึทืœ. ืึธืŸ ื–ื™ื™, ืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืื•ืžืžืขื’ืœืขืš ืฆื• ื™ืคืขืงื˜ื™ื•ื•ืœื™ ืžืึธื“ืขืœ ื“ื™ ื˜ื™ืฉืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก, ื•ื•ืึธืก ืžื™ืจ ืื™ืฆื˜ ื•ื•ืขื ื“ืŸ ืฆื•.

4.2. ื˜ื™ืฉ ืžืึธื“ืขืœื™ื ื’

ื“ื™ ืคืึทืจืžืึธื’ ืคื•ืŸ ืฉืœื™ืกืœ ืึธืจื“ืขืจื™ื ื’ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ื•ื™ืขืŸ ืึท ื”ื•ื™ืš-ืžื“ืจื’ื” ืึทื‘ืกื˜ืจืึทืงืฆื™ืข ืึทื–ืึท ื•ื•ื™ ืึท ื˜ื™ืฉ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื™ืงืขืจื“ื™ืง ืึทื‘ืกื˜ืจืึทืงืฆื™ืขืก. ืœืึธืžื™ืจ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืžื™ื˜ ื“ื™ ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื˜ื™ืฉ ืคื•ืŸ ืึท ื•ื•ืึธืœืงืŸ ืงืœื™ืขื ื˜, ื•ื•ืึธืก ืงืึทืฉ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืึทืœืข ื“ื™ ื˜ืขืงืขืก ืื•ืŸ ืคืึธืœื“ืขืจืก ืคื•ืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ.

ื˜ื™ืฉ ืกื˜ืฉืขืžืึท

ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึผืจืึธืกื˜ ืกื™ื ืขืจื™ืึธื•ื– ืคึฟืึทืจ ื•ื•ืึธืก ืึท ื˜ื™ืฉ ืกื˜ืจื•ืงื˜ื•ืจ ืžื™ื˜ ืึท ื˜ืขืงืข ื‘ื•ื™ื ื–ืึธืœ ื–ื™ื™ืŸ ื˜ื™ื™ืœืขืจื“ ืื™ื– ื“ื™ ืกืขืœืขืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืึทืœืข ืขืœืขืžืขื ื˜ืŸ ืœื™ื’ืŸ ืื™ืŸ ืึท ื’ืขื’ืขื‘ืŸ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ื ื’ื•ื˜ ื“ืึทื˜ืŸ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ืžืึธื“ืขืœ ืคึฟืึทืจ ืขืคืขืงื˜ื™ื•ื• ืคึฟืจืื’ืŸ ืคื•ืŸ ื“ืขื ืžื™ืŸ ืึทื“ื“ื–ืฉืึทืกืขื ืกื™ ืจืฉื™ืžื”. ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืขืก ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืกื˜ืึธืจื™ื“ื–ืฉ, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืกืึธืจื˜ ื“ื™ ืฉืœื™ืกืœืขืŸ ืคื•ืŸ ื˜ืขืงืขืก ืื•ืŸ ืคืึธืœื“ืขืจืก ืื™ืŸ ืึทื–ืึท ืึท ื•ื•ืขื’ ืึทื– ื–ื™ื™ ื–ืขื ืขืŸ ื’ืจื•ืคึผื˜ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื–ื™ื™ืขืจ ืžื™ื˜ื’ืœื™ื“ืขืจืฉืึทืคื˜ ืื™ืŸ ื“ืขืจ ืคืึธื˜ืขืจ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืฆื• ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืื™ืŸ ื“ื™ ืคืึธืจืขื ื•ื•ืึธืก ืื™ื– ื‘ืึทืงืึทื ื˜ ืคึฟืึทืจ ืึท Windows ื‘ืึทื ื™ืฆืขืจ (ืขืจืฉื˜ืขืจ ืคืึธืœื“ืขืจืก, ื“ืขืจื ืึธืš ื˜ืขืงืขืก, ื‘ื™ื™ื“ืข ืึทืœืคืึทื‘ืขื˜ื™ืง ืื•ื™ืกื’ืขืฉื˜ืขืœื˜), ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื ืึธืš ืคืขืœื“ืขืจ ืื™ืŸ ื“ื™ ืฉืœื™ืกืœ.

ื“ื™ ื‘ื™ืœื“ ืื•ื ื˜ืŸ ื•ื•ื™ื™ื–ื˜ ื•ื•ื™, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืึทืจื‘ืขื˜ ืื™ืŸ ื”ืึทื ื˜, ืึท ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ื‘ื™ื™ื˜ ืžืขื ื’ืข ืงืขืŸ ืงื•ืงืŸ ื•ื•ื™. ื“ื™ ื‘ื™ื˜ืขืก ืžื™ื˜ ื“ื™ ืื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ืคื•ืŸ ื“ื™ ืขืœื˜ืขืจืŸ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ (ืจื•ื™ื˜) ื–ืขื ืขืŸ ื’ืขืฉื˜ืขืœื˜ ืขืจืฉื˜ืขืจ, ื“ืขืžืึธืœื˜ ืžื™ื˜ ื“ืขื ื˜ื™ืคึผ (ื’ืจื™ืŸ) ืื•ืŸ ืื™ืŸ ื“ื™ ืขืง ืžื™ื˜ ื“ื™ ื ืึธืžืขืŸ (ื‘ืœื•ื™). ื–ื™ื™ ื–ืขื ืขืŸ ืื•ื™ืกื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืœืžื“ื‘ ืคืึทืจื’ืœื™ื™ึทืš ืื™ืŸ ืœืขืงืกื™ืงืึทื’ืจืึทืคื™ืงืึทืœ ืกื“ืจ, ื–ื™ื™ ื–ืขื ืขืŸ ืึธืจื“ืขืจื“ ืื™ืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ืฉื˜ื™ื™ื’ืขืจ. ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœื™ ื“ื•ืจื›ืคืึธืจ ืฉืœื™ืกืœืขืŸ ืžื™ื˜ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืจื•ื™ื˜ ืคึผืจืขืคื™ืงืก ื’ื™ื˜ ืื•ื ื“ื– ื–ื™ื™ืขืจ ืคึฟืึทืจื‘ื•ื ื“ืŸ ื•ื•ืึทืœื•ืขืก ืื™ืŸ ื“ื™ ืกื“ืจ ื–ื™ื™ ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ืฆื•ื‘ื™ื ื“ (ืื•ื™ืฃ ื“ื™ ืจืขื›ื˜), ืึธืŸ ืจื™ืงื•ื•ื™ื™ืจื™ื ื’ ืงื™ื™ืŸ ื ืึธืš ื ืึธืš ืคึผืจืึทืกืขืกื™ื ื’.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืกื™ืจื™ืึทืœื™ื–ื™ื ื’ ืฉืœื™ืกืœืขืŸ ืื•ืŸ ื•ื•ืึทืœื•ืขืก

ืคื™ืœืข ืžืขื˜ื”ืึธื“ืก ืคึฟืึทืจ ืกื™ืจื™ืึทืœื™ื–ื™ื ื’ ืึทื‘ื“ื–ืฉืขืงืฅ ื–ืขื ืขืŸ ื™ื ื•ื•ืขื ื˜ืึทื“ ืื™ืŸ ื“ืขืจ ื•ื•ืขืœื˜. ื•ื•ื™ื‘ืืœื“ ืžื™ืจ ื”ืื‘ืŸ ื ื™ืฉื˜ ื’ืขื”ืื˜ ืงื™ื™ืŸ ืื ื“ืขืจืข ืคืื“ืขืจื•ื ื’ ืื—ื•ืฅ ื“ื™ ืฉื ืขืœืงื™ื™ื˜, ื”ืื‘ืŸ ืžื™ืจ ืคืืจ ื–ื™ืš ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ื“ื™ ืฉื ืขืœืกื˜ืข ืžืขื’ืœื™ื›ืข - ื ืกืžืืจื˜ ื–ื™ืงืึธืจืŸ ืคืืจื ื•ืžืขืŸ ื“ื•ืจืš ืืŸ ืื™ื ืกื˜ืื ืฆืŸ ืคื•ืŸ ื“ื™ ืฉืคืจืืš ืกื˜ืจื•ืงื˜ื•ืจ C. ืื–ื•ื™ ืงืขืŸ ื“ืขืจ ืฉืœื™ืกืœ ืคื•ืŸ ื ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืขืœืขืžืขื ื˜ ื–ื™ื™ืŸ ืžืึธื“ืขืœืขื“ ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ืกื˜ืจื•ืงื˜ื•ืจ NodeKey.

typedef struct NodeKey {โ€‹
    EntityId parentId;โ€‹
    uint8_t type;โ€‹
    uint8_t nameBuffer[256];โ€‹
} NodeKey;

ืฆื• ืจืึทื˜ืขื•ื•ืขืŸ NodeKey ืื™ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ื“ืืจืฃ ืื™ืŸ ื›ื™ื™ืคืขืฅ MDB_val ืฉื˜ืขืœืŸ ื“ื™ ื“ืึทื˜ืŸ ื˜ื™ื™ึทื˜ืœ ืฆื• ื“ื™ ืึทื“ืจืขืก ืคื•ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ, ืื•ืŸ ืจืขื›ืขื ืขืŸ ื–ื™ื™ืขืจ ื’ืจื™ื™ืก ืžื™ื˜ ื“ื™ ืคึฟื•ื ืงืฆื™ืข sizeof.

MDB_val serialize(NodeKey * const key) {
    return MDB_val {
        .mv_size = sizeof(NodeKey),
        .mv_data = (void *)key
    };
}

ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืงืึทืคึผื™ื˜ืœ ืื•ื™ืฃ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกืขืœืขืงืฆื™ืข ืงืจื™ื™ื˜ื™ืจื™ืึท, ืื™ืš ื“ืขืจืžืื ื˜ ืžื™ื ืึทืžื™ื™ื–ื™ื ื’ ื“ื™ื ืึทืžื™ืฉ ืึทืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ CRUD ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ื™ ืึท ื•ื•ื™ื›ื˜ื™ืง ืกืขืœืขืงืฆื™ืข ืคืึทืงื˜ืึธืจ. ืคึฟื•ื ืงืฆื™ืข ืงืึธื“ serialize ื•ื•ื™ื™ื–ื˜ ื•ื•ื™ ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ LMDB ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืึธืจ ืึทื•ื•ื•ื™ื“ืึทื“ ื•ื•ืขืŸ ื™ื ืกืขืจื˜ื™ื ื’ ื ื™ื™ึทืข ืจืขืงืึธืจื“ืก ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ื™ ื™ื ืงืึทืžื™ื ื’ ื‘ื™ื™ื˜ ืžืขื ื’ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืกืขืจื•ื•ืขืจ ืื™ื– ืขืจืฉื˜ืขืจ ืคืืจื•ื•ืื ื“ืœืขืŸ ืื™ืŸ ืึธื ืœื™ื™ื’ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื–, ืื•ืŸ ื“ืขืจื ืึธืš ื–ื™ื™ ื–ืขื ืขืŸ ื˜ืจื™ื•ื•ื™ืึทืœื™ ื“ืึทืžืคึผื˜ ืื™ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ. ืงืึทื ืกื™ื“ืขืจื™ื ื’ ืึทื– ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ืงื™ื™ืŸ ื“ื™ื ืึทืžื™ืฉ ืึทืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ LMDB, ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ืึท ืคืึทื ื˜ืึทืกื˜ื™ืฉ ืกื™ื˜ื•ืึทืฆื™ืข ื“ื•ืจืš ื™ืึธืก ืกื˜ืึทื ื“ืึทืจื“ืก - ื ื•ืฆืŸ ื‘ืœื•ื™ื– ืึธื ืœื™ื™ื’ืŸ ื–ื›ึผืจื•ืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ืึทื˜ืŸ ืื•ื™ืฃ ื“ื™ ื’ืื ืฆืข ื“ืจืš ืคื•ืŸ ื“ื™ ื ืขืฅ ืฆื• ื“ื™ ื“ื™ืกืง!

ืึธืจื“ืขืจื™ื ื’ ืฉืœื™ืกืœืขืŸ ืžื™ื˜ ืึท ื‘ื™ื™ื ืขืจื™ ืงืึธืžืคึผืึทืจืึทื˜ืึธืจ

ื“ืขืจ ืฉืœื™ืกืœ ืกื“ืจ ืฉื™ื™ื›ื•ืช ืื™ื– ืกืคึผืขืกื™ืคื™ืขื“ ื“ื•ืจืš ืึท ืกืคึผืขืฆื™ืขืœ ืคึฟื•ื ืงืฆื™ืข ื’ืขืจื•ืคืŸ ืึท ืคืึทืจื’ืœื™ื™ึทืš. ื–ื™ื ื˜ ื“ืขืจ ืžืึธื˜ืึธืจ ื•ื•ื™ื™ืกื˜ ื’ืึธืจื ื™ืฉื˜ ื•ื•ืขื’ืŸ ื“ื™ ืกืขืžืึทื ื˜ื™ืงืก ืคื•ืŸ ื“ื™ ื‘ื™ื˜ืขืก ื–ื™ื™ ืึทื ื˜ื”ืึทืœื˜ืŸ, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืคืึทืจื’ืœื™ื™ึทืš ื”ืื˜ ืงื™ื™ืŸ ื‘ืจื™ืจื” ืึธื‘ืขืจ ืฆื• ืฆื•ืœื™ื™ื’ืŸ ื“ื™ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ืœืขืงืกื™ืงืึทื’ืจืึทืคื™ืง ืกื“ืจ, ืจื™ื–ืึธืจื˜ื™ื ื’ ืฆื• ืึท ื‘ื™ื˜ืข-ื‘ื™ื™-ื‘ื™ื˜ืข ืคืึทืจื’ืœื™ื™ึทืš. ื ื™ืฆืŸ ืขืก ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื– ืื™ื– ืขื ืœืขืš ืฆื• ืกื˜ืจื•ืฉืงืข ืžื™ื˜ ืึท ื˜ืฉืึทืคึผื™ื ื’ ื”ืึทืง. ืึธื‘ืขืจ, ืื™ืŸ ืคึผืฉื•ื˜ ืงืึทืกืขืก ืื™ืš ื’ืขืคึฟื™ื ืขืŸ ื“ืขื ืื•ืคึฟืŸ ืคึผืึทืกื™ืง. ื“ื™ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ืื™ื– ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ื ื˜ืŸ, ืึธื‘ืขืจ ื“ืึธ ืื™ืš ื•ื•ืขื˜ ื‘ืึทืžืขืจืงืŸ ืึท ืคึผืึธืจ ืคื•ืŸ ืจื™ื™ืงืก ืฆืขื•ื•ืึธืจืคืŸ ืื•ื™ืฃ ื“ืขื ื“ืจืš.

ื“ืขืจ ืขืจืฉื˜ืขืจ ื–ืึทืš ืฆื• ื’ืขื“ืขื ืงืขืŸ ืื™ื– ื“ื™ ื–ื™ืงืึธืจืŸ ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืคื•ืŸ ืคึผืจื™ืžื™ื˜ื™ื•ื• ื“ืึทื˜ืŸ ื˜ื™ื™ืคึผืก. ืื–ื•ื™, ืื•ื™ืฃ ืึทืœืข ืขืคึผืœ ื“ืขื•ื•ื™ืกืขืก, ื™ื ื˜ืึทื“ื–ืฉืขืจ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืื™ืŸ ื“ืขื ืคึฟืึธืจืžืึทื˜ ืงืœื™ื™ืŸ ืขื ื“ื™ืึทืŸ. ื“ืึธืก ืžื™ื™ื ื˜ ืึทื– ื“ืขืจ ืงืœืขื ืกื˜ืขืจ ื‘ืึทื˜ื™ื™ื˜ื™ืง ื‘ื™ื˜ืข ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื•ื™ืฃ ื“ื™ ืœื™ื ืงืก, ืื•ืŸ ืขืก ื•ื•ืขื˜ ื ื™ื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ืกืึธืจื˜ ื™ื ื˜ืึทื“ื–ืฉืขืจื– ื ื™ืฆืŸ ืึท ื‘ื™ื˜ืข-ื‘ื™ื™-ื‘ื™ื˜ืข ืคืึทืจื’ืœื™ื™ึทืš. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื˜ืจื™ื™ื ื’ ืฆื• ื˜ืึธืŸ ื“ืึธืก ืžื™ื˜ ืึท ืกื›ื•ื ืคื•ืŸ ื ื•ืžืขืจืŸ 0-511 ื•ื•ืขื˜ ืคึผืจืึธื“ื•ืฆื™ืจืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืจืขื–ื•ืœื˜ืึทื˜.

// value (hex dump)
000 (0000)
256 (0001)
001 (0100)
257 (0101)
...
254 (fe00)
510 (fe01)
255 (ff00)
511 (ff01)

ืฆื• ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื, ื“ื™ ื™ื ื˜ืึทื“ื–ืฉืขืจื– ืžื•ื–ืŸ ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ ืฉืœื™ืกืœ ืื™ืŸ ืึท ืคึฟืึธืจืžืึทื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ ื“ื™ ื‘ื™ื™ื˜-ื‘ื™ื˜ืข ืคืึทืจื’ืœื™ื™ึทืš. ืคืึทื ื’ืงืฉืึทื ื– ืคื•ืŸ ื“ื™ ืžืฉืคึผื—ื” ื•ื•ืขื˜ ื”ืขืœืคืŸ ืื™ืจ ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ื˜ืจืึทื ืกืคืึธืจืžืึทืฆื™ืข hton* (ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ htons ืคึฟืึทืจ ื˜ืึธืคึผืœ-ื‘ื™ื˜ืข ื ื•ืžืขืจืŸ ืคื•ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ).

ื“ืขืจ ืคึฟืึธืจืžืึทื˜ ืคึฟืึทืจ ืจืขืคึผืจื™ื–ืขื ื˜ื™ื ื’ ืกื˜ืจื™ื ื’ืก ืื™ืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืื™ื–, ื•ื•ื™ ืื™ืจ ื•ื•ื™ืกืŸ, ืึท ื’ืึทื ืฅ ื’ืขืฉื™ื›ื˜ืข. ืื•ื™ื‘ ื“ื™ ืกืขืžืึทื ื˜ื™ืงืก ืคื•ืŸ ืกื˜ืจื™ื ื’ืก, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื“ื™ ืงืึธื“ื™ืจื•ื ื’ ื’ืขื ื™ืฆื˜ ืฆื• ืคืึธืจืฉื˜ืขืœืŸ ื–ื™ื™ ืื™ืŸ ื–ื›ึผืจื•ืŸ, ืกืึทื’ื“ื–ืฉืขืกืฅ ืึทื– ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืžืขืจ ื•ื•ื™ ืื™ื™ืŸ ื‘ื™ื™ื˜ ืคึผืขืจ ื›ืึทืจืึทืงื˜ืขืจ, ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ืžื™ื“ ืคืึทืจืœืึธื–ืŸ ื“ืขื ื’ืขื“ืึทื ืง ืคื•ืŸ ื ื™ืฆืŸ ืึท ืคืขืœื™ืงื™ื™ึทื˜ ืคืึทืจื’ืœื™ื™ึทืš.

ื“ื™ ืจื’ืข ื–ืึทืš ืฆื• ื”ืึทืœื˜ืŸ ืื™ืŸ ื–ื™ื ืขืŸ ืื™ื– ืึทืœื™ื™ื ืžืึทื ื˜ ืคึผืจื™ื ืฆื™ืคึผืŸ ืกื˜ืจื•ืงื˜ื•ืจ ืคืขืœื“ ืงืึทืžืคึผื™ื™ืœืขืจ. ื•ื•ื™ื™ึทืœ ืคื•ืŸ ื–ื™ื™, ื‘ื™ื˜ืขืก ืžื™ื˜ ืžื™ืกื˜ ื•ื•ืึทืœื•ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืฉืืคืŸ ืื™ืŸ ื–ื›ึผืจื•ืŸ ืฆื•ื•ื™ืฉืŸ ืคืขืœื“ืขืจ, ื•ื•ืึธืก, ืคื•ืŸ ืงื•ืจืก, ื‘ืจื™ื™ืงืก ื‘ื™ื™ื˜-ื‘ื™ื˜ืข ืกืึธืจื˜ื™ื ื’. ืฆื• ืขืœื™ืžื™ื ื™ืจืŸ ืžื™ืกื˜, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื“ืขืจืงืœืขืจืŸ ืคืขืœื“ืขืจ ืื™ืŸ ืึท ืฉื˜ืจืขื ื’ ื“ื™ืคื™ื™ื ื“ ืกื“ืจ, ื”ืึทืœื˜ืŸ ืึทืœื™ื™ื ืžืึทื ื˜ ื›ึผืœืœื™ื ืื™ืŸ ื–ื™ื ืขืŸ, ืึธื“ืขืจ ื ื•ืฆืŸ ื“ื™ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื™ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ื“ืขืงืœืึทืจืึทืฆื™ืข packed.

ืึธืจื“ืขืจื™ื ื’ ืฉืœื™ืกืœืขืŸ ืžื™ื˜ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืงืึธืžืคึผืึทืจืึทื˜ืึธืจ

ื“ืขืจ ืฉืœื™ืกืœ ืคืึทืจื’ืœื™ื™ึทืš ืœืึธื’ื™ืง ืงืขืŸ ื–ื™ื™ืŸ ืฆื• ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืคึฟืึทืจ ืึท ื‘ื™ื™ื ืขืจื™ ืคืึทืจื’ืœื™ื™ึทืš. ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคื™ืœืข ืกื™ื‘ื•ืช ืื™ื– ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ื˜ืขื›ื ื™ืฉ ืคืขืœื“ืขืจ ืื™ืŸ ืกื˜ืจืึทืงื˜ืฉืขืจื–. ืื™ืš ื•ื•ืขืœ ืื™ืœื•ืกื˜ืจื™ืจืŸ ื–ื™ื™ืขืจ ืคึผืึทืกื™ืจื•ื ื’ ืžื™ื˜ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืึท ืฉืœื™ืกืœ ืคึฟืึทืจ ืึท ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืขืœืขืžืขื ื˜ ื•ื•ืึธืก ืื™ื– ืฉื•ื™ืŸ ื‘ืึทืงืึทื ื˜ ืฆื• ืื•ื ื“ื–.

typedef struct NodeKey {โ€‹
    EntityId parentId;โ€‹
    uint8_t type;โ€‹
    uint8_t nameBuffer[256];โ€‹
} NodeKey;

ื˜ืจืึธืฅ ื–ื™ื™ึทืŸ ืคึผืึทืฉื˜ืขืก, ืื™ืŸ ื“ื™ ื•ื•ืึทืกื˜ ืžืขืจื”ื™ื™ึทื˜ ืคื•ืŸ ืงืึทืกืขืก ืขืก ืงืึทื ืกื•ืžื– ืฆื• ืคื™ืœ ื–ื›ึผืจื•ืŸ. ื“ืขืจ ื‘ืึทืคืขืจ ืคึฟืึทืจ ื“ื™ ื ืึธืžืขืŸ ื ืขืžื˜ 256 ื‘ื™ื˜ืขืก, ื›ืึธื˜ืฉ ืื™ืŸ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ื˜ืขืงืข ืื•ืŸ ื˜ืขืงืข ื ืขืžืขืŸ ืจืึทืจืขืœื™ ื™ืงืกื™ื“ 20-30 ืื•ืชื™ื•ืช.

ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื ืึธืจืžืึทืœ ื˜ืขืงื ื™ืงืก ืคึฟืึทืจ ืึธืคึผื˜ื™ืžื™ื–ื™ื ื’ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ืึท ืจืขืงืึธืจื“ ืื™ื– ืฆื• "ื˜ืจื™ื" ืขืก ืฆื• ื“ื™ ืคืึทืงื˜ื™ืฉ ื’ืจื™ื™ืก. ื–ื™ื™ืŸ ืขืกืึทื ืก ืื™ื– ืึทื– ื“ืขืจ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืึทืœืข ื•ื•ืขืจื™ืึทื‘ืึทืœ-ืœืขื ื’ ืคืขืœื“ืขืจ ืื™ื– ืกื˜ืึธืจื“ ืื™ืŸ ืึท ื‘ืึทืคืขืจ ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ, ืื•ืŸ ื–ื™ื™ืขืจ ืœืขื ื’ ืื™ื– ืกื˜ืึธืจื“ ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ื•ื•ืขืจื™ืึทื‘ืึทืœื–. NodeKey ืื™ื– ืคืืจื•ื•ืื ื“ืœืขืŸ ื•ื•ื™ ืคืืœื’ืขื ื“.

typedef struct NodeKey {โ€‹
    EntityId parentId;โ€‹
    uint8_t type;โ€‹
    uint8_t nameLength;โ€‹
    uint8_t nameBuffer[256];โ€‹
} NodeKey;

ื•ื•ื™ื™ึทื˜ืขืจ, ื•ื•ืขืŸ ืกื™ืจื™ืึทืœื™ื–ื™ื ื’, ื“ื™ ื“ืึทื˜ืŸ ื’ืจื™ื™ืก ืื™ื– ื ื™ืฉื˜ ืกืคึผืขืกื™ืคื™ืขื“ sizeof ื“ื™ ื’ืื ืฆืข ืกื˜ืจื•ืงื˜ื•ืจ, ืื•ืŸ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ืึทืœืข ืคืขืœื“ืขืจ ืื™ื– ืึท ืคืึทืจืคืขืกื˜ื™ืงื˜ ืœืขื ื’ ืคึผืœื•ืก ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ืคืืงื˜ื™ืฉ ื’ืขื•ื•ื™ื™ื ื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ื‘ืึทืคืขืจ.

MDB_val serialize(NodeKey * const key) {
    return MDB_val {
        .mv_size = offsetof(NodeKey, nameBuffer) + key->nameLength,
        .mv_data = (void *)key
    };
}

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืจืขืคืึทืงื˜ืึธืจื™ื ื’, ืžื™ืจ ื‘ืืงื•ืžืขืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืกื™ื™ื•ื•ื™ื ื’ื– ืื™ืŸ ื“ื™ ืคึผืœืึทืฅ ืคืึทืจื ื•ืžืขืŸ ื“ื•ืจืš ืฉืœื™ืกืœืขืŸ. ืึธื‘ืขืจ, ืจืขื›ื˜ ืฆื• ื“ืขืจ ื˜ืขื›ื ื™ืฉ ืคืขืœื“ nameLength, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื‘ื™ื™ื ืขืจื™ ืคืึทืจื’ืœื™ื™ึทืš ืื™ื– ื ื™ื˜ ืžืขืจ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืฉืœื™ืกืœ ืคืึทืจื’ืœื™ื™ึทืš. ืื•ื™ื‘ ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ืคืึทืจื‘ื™ื™ึทื˜ืŸ ืขืก ืžื™ื˜ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืŸ, ื“ื™ ืœืขื ื’ ืคื•ืŸ ื“ื™ ื ืึธืžืขืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึท ื”ืขื›ืขืจ ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜ ืคืึทืงื˜ืึธืจ ืื™ืŸ ืกืึธืจื˜ื™ื ื’ ื•ื•ื™ ื“ื™ ื ืึธืžืขืŸ ื–ื™ืš.

LMDB ืึทืœืึทื•ื– ื™ืขื“ืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก ืฆื• ื”ืึธื‘ืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืฉืœื™ืกืœ ืคืึทืจื’ืœื™ื™ึทืš ืคื•ื ืงืฆื™ืข. ื“ืึธืก ืื™ื– ื’ืขื˜ืืŸ ืžื™ื˜ ื“ื™ ืคื•ื ืงืฆื™ืข mdb_set_compare ืฉื˜ืจืขื ื’ ืื™ื™ื“ืขืจ ืขืคืŸ. ืคึฟืึทืจ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืกื™ื‘ื•ืช, ืขืก ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื’ืขื‘ื™ื˜ืŸ ืื™ื‘ืขืจ ื“ื™ ืœืขื‘ืŸ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ืขืจ ืคืึทืจื’ืœื™ื™ึทืš ื ืขืžื˜ ืฆื•ื•ื™ื™ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ื‘ื™ื™ื ืขืจื™ ืคึฟืึธืจืžืึทื˜ ื•ื•ื™ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘, ืื•ืŸ ืื™ืŸ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืขืก ืงืขืจื˜ ื“ื™ ืคืึทืจื’ืœื™ื™ึทืš ืจืขื–ื•ืœื˜ืึทื˜: ื•ื•ื™ื™ื ื™ืงืขืจ ื•ื•ื™ (-1), ื’ืจืขืกืขืจ ื•ื•ื™ (1) ืึธื“ืขืจ ื’ืœื™ื™ึทืš ืฆื• (0). ืคึผืกืขื•ื•ื“ืึธืงืึธื“ืข ืคึฟืึทืจ NodeKey ื–ืขื˜ ืื•ื™ืก ืื–ื•ื™.

int compare(MDB_val * const a, MDB_val * const b) {โ€‹
    NodeKey * const aKey = (NodeKey * const)a->mv_data;โ€‹
    NodeKey * const bKey = (NodeKey * const)b->mv_data;โ€‹
    return // ...
}โ€‹

ื•ื•ื™ ืœืึทื ื’ ื•ื•ื™ ืึทืœืข ื“ื™ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื–ืขื ืขืŸ ืคื•ืŸ ื“ื™ ื–ืขืœื‘ืข ื˜ื™ืคึผ, ืึทื ืงืึทื ื“ื™ืฉื ืึทืœื™ ืงืึทืกื˜ื™ื ื’ ื–ื™ื™ืขืจ ื‘ื™ื™ื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืฆื• ื“ืขื ื˜ื™ืคึผ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืฉืœื™ืกืœ ืกื˜ืจื•ืงื˜ื•ืจ ืื™ื– ืœืขื’ืึทืœ. ืขืก ืื™ื– ืื™ื™ืŸ ื ื•ืึทื ืก ื“ืึธ, ืึธื‘ืขืจ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ืกืงืึทืกื˜ ืื•ื ื˜ืŸ ืื™ืŸ ื“ื™ "ืœื™ื™ืขื ืขืŸ ืจืขืงืึธืจื“ืก" ืกืึทื‘ืกืขืงืฉืึทืŸ.

ืกื™ืจื™ืึทืœื™ื™ื–ื™ื ื’ ื•ื•ืึทืœื•ืขืก

LMDB ืึทืจื‘ืขื˜ ื’ืึธืจ ื™ื ื˜ืขื ืกื™ื•ื•ืœื™ ืžื™ื˜ ื“ื™ ืฉืœื™ืกืœืขืŸ ืคื•ืŸ ืกื˜ืึธืจื“ ืจืขืงืึธืจื“ืก. ื–ื™ื™ืขืจ ืคืึทืจื’ืœื™ื™ึทืš ืžื™ื˜ ื™ืขื“ืขืจ ืื ื“ืขืจืข ืึทืงืขืจื– ืื™ืŸ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ืคื•ืŸ ืงื™ื™ืŸ ื’ืขื•ื•ืขื ื“ื˜ ืึธืคึผืขืจืึทืฆื™ืข, ืื•ืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื“ื™ ื’ืื ืฆืข ืœื™ื™ื–ื•ื ื’ ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ื™ ื’ื™ื›ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืงืึทืžืคึผืขืจืึทื˜ืึธืจ. ืื™ืŸ ืึทืŸ ืื™ื“ืขืืœ ื•ื•ืขืœื˜, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื‘ื™ื™ื ืขืจื™ ืคืึทืจื’ืœื™ื™ึทืš ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขื ื•ื’ ืฆื• ืคืึทืจื’ืœื™ื™ึทื›ืŸ ืฉืœื™ืกืœืขืŸ, ืึธื‘ืขืจ ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ื ื•ืฆืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข, ื“ืขืจ ืคึผืจืึธืฆืขื“ื•ืจ ืคึฟืึทืจ ื“ื™ืกืขืจื™ืึทืœื™ื–ื™ื ื’ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ื•ื•ื™ ืฉื ืขืœ ื•ื•ื™ ืžืขื’ืœืขืš.

ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ื– ื ื™ืฉื˜ ื“ืขืจ ื”ื•ื™ืคึผื˜ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ื“ื™ ื•ื•ืขืจื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืจืขืงืึธืจื“ (ื•ื•ืขืจื˜). ื–ื™ื™ืŸ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ืคื•ืŸ ืึท ื‘ื™ื™ื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืฆื• ืึท ื›ื™ื™ืคืขืฅ ืึทืงืขืจื– ื‘ืœื•ื™ื– ื•ื•ืขืŸ ืขืก ืื™ื– ืฉื•ื™ืŸ ืคืืจืœืื ื’ื˜ ื“ื•ืจืš ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึธื“, ืœืžืฉืœ, ืฆื• ื•ื•ื™ื™ึทื–ืŸ ืขืก ืื•ื™ืฃ ื“ืขื ืขืงืจืึทืŸ. ื–ื™ื ื˜ ื“ืขื ื›ืึทืคึผืึทื ื– ืœืขืคื™ืขืจืขืš ืจืึทืจืขืœื™, ื“ื™ ื’ื™ื›ืงื™ื™ึทื˜ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืคึฟืึทืจ ื“ืขื ืคึผืจืึธืฆืขื“ื•ืจ ื–ืขื ืขืŸ ื ื™ืฉื˜ ืึทื–ื•ื™ ืงืจื™ื˜ื™ืฉ, ืื•ืŸ ืื™ืŸ ื–ื™ื™ึทืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, ืžื™ืจ ื–ืขื ืขืŸ ืคื™ืœ ืžืขืจ ืคืจื™ื™ ืฆื• ืคืึธืงื•ืก ืื•ื™ืฃ ืงืึทื ื•ื•ื™ื ื™ืึทื ืก. NSKeyedArchiver.

NSData *data = serialize(object);โ€‹
MDB_val value = {โ€‹
    .mv_size = data.length,โ€‹
    .mv_data = (void *)data.bytesโ€‹
};

ืึธื‘ืขืจ, ืขืก ื–ืขื ืขืŸ ืฆื™ื™ื˜ ื•ื•ืขืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื ืึธืš ืขื ื™ื ื™ื. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ืขืŸ ืฉืคึผืึธืจืŸ ืžืขื˜ืึท ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ื˜ืขืงืข ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ืึท ื‘ืึทื ื™ืฆืขืจ ื•ื•ืึธืœืงืŸ, ืžื™ืจ ื ื•ืฆืŸ ื“ื™ ื–ืขืœื‘ืข ื–ื›ึผืจื•ืŸ ื“ืึทืžืคึผ ืคื•ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ. ื“ืขืจ ื”ื•ื™ื›ืคึผื•ื ืงื˜ ืคื•ืŸ ื“ืขืจ ืึทืจื‘ืขื˜ ืคื•ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืึท ืกื™ืจื™ืึทืœื™ื–ืขื“ ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืคื•ืŸ ื–ื™ื™ ืื™ื– ื“ืขืจ ืคืึทืงื˜ ืึทื– ื“ื™ ื™ืกื•ื“ื•ืช ืคื•ืŸ ืึท ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื–ืขื ืขืŸ ืžืึธื“ืขืœืขื“ ื“ื•ืจืš ืึท ื›ื™ื™ืขืจืึทืจืงื™ ืคื•ืŸ ืงืœืืกืŸ.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืขืก ืื™ืŸ ื“ื™ C ืฉืคึผืจืึทืš, ืกืคึผืขืฆื™ืคื™ืฉ ืคืขืœื“ืขืจ ืคื•ืŸ ื“ื™ ื™ื•ืจืฉื™ื ื–ืขื ืขืŸ ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืกื˜ืจืึทืงื˜ืฉืขืจื–, ืื•ืŸ ื–ื™ื™ืขืจ ืงืฉืจ ืžื™ื˜ ื“ื™ ื‘ืึทื–ืข ืื™ื™ื ืขืจ ืื™ื– ืกืคึผืขืกื™ืคื™ืขื“ ื“ื•ืจืš ืึท ืคืขืœื“ ืคื•ืŸ ื˜ื™ืคึผ ืคืึทืจื‘ืึทื ื“. ื“ื™ ืคืึทืงื˜ื™ืฉ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ืขื ืคืึทืจื‘ืึทื ื“ ืื™ื– ืกืคึผืขืกื™ืคื™ืขื“ ื“ื•ืจืš ื“ื™ ื˜ืขื›ื ื™ืฉ ืึทื˜ืจื™ื‘ื™ื•ื˜ ื˜ื™ืคึผ.

typedef struct NodeValue {โ€‹
    EntityId localId;โ€‹
    EntityType type;โ€‹
    union {โ€‹
        FileInfo file;โ€‹
        DirectoryInfo directory;โ€‹
    } info;โ€‹
    uint8_t nameLength;โ€‹
    uint8_t nameBuffer[256];โ€‹
} NodeValue;โ€‹

ืึทื“ื™ื ื’ ืื•ืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ืจืขืงืึธืจื“ืก

ื“ื™ ืกื™ืจื™ืึทืœื™ื–ืขื“ ืฉืœื™ืกืœ ืื•ืŸ ื•ื•ืขืจื˜ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืฆื• ื“ื™ ืงืจืึธื. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ื ื•ืฆืŸ ื“ื™ ืคื•ื ืงืฆื™ืข mdb_put.

// key ะธ value ะธะผะตัŽั‚ ั‚ะธะฟ MDB_valโ€‹
mdb_put(..., &key, &value, MDB_NOOVERWRITE);

ืื™ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื‘ื™ื ืข, ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืขืจืœื•ื™ื‘ื˜ ืึธื“ืขืจ ืคึผืจืึธื•ื›ื™ื‘ืึทื˜ืึทื“ ืคื•ืŸ ืกื˜ืึธืจื™ื ื’ ืงื™ื™ืคืœ ืจืขืงืึธืจื“ืก ืžื™ื˜ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฉืœื™ืกืœ.ืื•ื™ื‘ ื“ื•ืคึผืœื™ืงืึทื˜ื™ืึธืŸ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืื™ื– ืคึผืจืึธื•ื›ื™ื‘ืึทื˜ืึทื“, ื“ืขืžืึธืœื˜ ื•ื•ืขืŸ ื™ื ืกืขืจื˜ื™ื ื’ ืึท ืจืขืงืึธืจื“, ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืฉืœื™ืกืŸ ืฆื™ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ืึท ื™ื’ื–ื™ืกื˜ื™ื ื’ ืจืขืงืึธืจื“ ืื™ื– ืขืจืœื•ื™ื‘ื˜ ืึธื“ืขืจ ื ื™ืฉื˜. ืื•ื™ื‘ ืคืจื™ื™ื™ื ื’ ืงืขืŸ ืคึผืึทืกื™ืจืŸ ื‘ืœื•ื™ื– ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืึท ื˜ืขื•ืช ืื™ืŸ ื“ื™ ืงืึธื“, ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืฉื™ืฆืŸ ื–ื™ืš ืคื•ืŸ ืขืก ื“ื•ืจืš ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื“ื™ ืคืึธืŸ NOOVERWRITE.

ืœื™ื™ืขื ืขืŸ ืึทืจื˜ื™ืงืœืขืŸ

ืฆื• ืœื™ื™ืขื ืขืŸ ืจืขืงืึธืจื“ืก ืื™ืŸ LMDB, ื ื•ืฆืŸ ื“ื™ ืคึฟื•ื ืงืฆื™ืข mdb_get. ืื•ื™ื‘ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืคึผืึธืจ ืื™ื– ืจืขืคึผืจื™ื–ืขื ื˜ื™ื“ ื“ื•ืจืš ืคืจื™ืขืจ ื“ืึทืžืคึผื˜ ืกื˜ืจืึทืงื˜ืฉืขืจื–, ื“ื™ ืคึผืจืึธืฆืขื“ื•ืจ ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก.

NodeValue * const readNode(..., NodeKey * const key) {โ€‹
    MDB_val rawKey = serialize(key);โ€‹
    MDB_val rawValue;โ€‹
    mdb_get(..., &rawKey, &rawValue);โ€‹
    return (NodeValue * const)rawValue.mv_data;โ€‹
}

ื“ื™ ื“ืขืจืœืื ื’ื˜ ืœื™ืกื˜ื™ื ื’ ื•ื•ื™ื™ื–ื˜ ื•ื•ื™ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ื“ื•ืจืš ืกื˜ืจื•ืงื˜ื•ืจ ื“ืึทืžืคึผ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืคืจื™ื™ึทืขืŸ ืคื•ืŸ ื“ื™ื ืึทืžื™ืฉ ืึทืœืึทืงื™ื™ืฉืึทื ื– ื ื™ื˜ ื‘ืœื•ื™ื– ื•ื•ืขืŸ ืฉืจื™ื™ื‘ืŸ, ืึธื‘ืขืจ ื•ื•ืขืŸ ืœื™ื™ืขื ืขืŸ ื“ืึทื˜ืŸ. ื“ืขืจื™ื™ื•ื•ื“ ืคื•ืŸ ืคึฟื•ื ืงืฆื™ืข mdb_get ื“ืขืจ ื˜ื™ื™ึทื˜ืœ ืงื•ืงื˜ ืคึผื•ื ืงื˜ ืื™ืŸ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ื–ื›ึผืจื•ืŸ ืึทื“ืจืขืก ื•ื•ื• ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกื˜ืึธืจื– ื“ื™ ื‘ื™ื™ื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืคื•ืŸ ื“ื™ ื›ื™ื™ืคืขืฅ. ืื™ืŸ ืคืึทืงื˜, ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ืžื™ืŸ ืคื•ืŸ ORM ื•ื•ืึธืก ื’ื™ื˜ ื–ื™ื™ืขืจ ื”ื•ื™ืš ื“ืึทื˜ืŸ ืœื™ื™ืขื ืขืŸ ื’ื™ื›ืงื™ื™ึทื˜ ื›ึผืžืขื˜ ืคืจื™ื™. ื˜ืจืึธืฅ ืึทืœืข ื“ื™ ืฉื™ื™ื ืงื™ื™ื˜ ืคื•ืŸ ื“ืขื ืฆื•ื’ืึทื ื’, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื’ืขื“ืขื ืงืขืŸ ืขื˜ืœืขื›ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืื™ื.

  1. ืคึฟืึทืจ ืึท ื‘ืœื•ื™ื– ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ, ื“ืขืจ ื˜ื™ื™ึทื˜ืœ ืฆื• ื“ื™ ื•ื•ืขืจื˜ ืกื˜ืจื•ืงื˜ื•ืจ ืื™ื– ื’ืขืจืึทื ื˜ื™ื“ ืฆื• ื‘ืœื™ื™ื‘ืŸ ื’ื™ืœื˜ื™ืง ื‘ืœื•ื™ื– ื‘ื™ื– ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื™ื– ืคืืจืžืื›ื˜. ื•ื•ื™ ืคืจื™ืขืจ ื‘ืืžืขืจืงื˜, ื“ื™ ื‘-ื‘ื•ื™ื ื‘ืœืขื˜ืขืจ ืื•ื™ืฃ ื•ื•ืึธืก ืึท ื›ื™ื™ืคืขืฅ ืื™ื– ืœื™ื’ืŸ, ื“ืึทื ืง ืฆื• ื“ื™ ืงืึธืคึผื™ืข-ืื•ื™ืฃ-ืฉืจื™ื™ื‘ ืคึผืจื™ื ืฆื™ืคึผ, ื‘ืœื™ื™ื‘ืŸ ืึทื ื˜ืฉื™ื™ื ื“ื–ืฉื“ ืึทื–ื•ื™ ืœืึทื ื’ ื•ื•ื™ ื–ื™ื™ ื–ืขื ืขืŸ ืจืขืคืขืจืขื ืกื˜ ื“ื•ืจืš ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืื™ื™ืŸ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ื“ื™ ืœืขืฆื˜ืข ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื–ื™ื™ ืงืึทืžืคึผืœื™ืฅ, ื“ื™ ื‘ืœืขื˜ืขืจ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืจื™ื•ื–ื“ ืคึฟืึทืจ ื ื™ื™ึทืข ื“ืึทื˜ืŸ. ืื•ื™ื‘ ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืคึฟืึทืจ ืึทื‘ื“ื–ืฉืขืงืฅ ืฆื• ื‘ืœื™ื™ึทื‘ื  ืœืขื‘ืŸ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื•ื•ืึธืก ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื–ื™ื™, ื–ื™ื™ ื ืึธืš ื”ืึธื‘ืŸ ืฆื• ื–ื™ื™ืŸ ืงืึทืคึผื™ื“.
  2. ืคึฟืึทืจ ืึท ืœื™ื™ืขื ืขืŸ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ, ื“ืขืจ ื˜ื™ื™ึทื˜ืœ ืฆื• ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ื•ื•ืขืจื˜ ืกื˜ืจื•ืงื˜ื•ืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ื™ืœื˜ื™ืง ื‘ืœื•ื™ื– ื‘ื™ื– ื“ืขืจ ืขืจืฉื˜ืขืจ ืžืึทื“ืึทืคื™ื™ื™ื ื’ ืคึผืจืึธืฆืขื“ื•ืจ (ืฉืจื™ื™ื‘ืŸ ืึธื“ืขืจ ื•ื™ืกืžืขืงืŸ ื“ืึทื˜ืŸ).
  3. ื›ืึธื˜ืฉ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ NodeValue ื ื™ื˜ ืคื•ืœ-ืคืœืขื“ื–ืฉื“, ืึธื‘ืขืจ ื˜ืจื™ืžืžืขื“ (ื–ืขืŸ ืกืึทื‘ืกืขืงืฉืึทืŸ "ืึธืจื“ืขืจื™ื ื’ ืงื™ื– ื ื™ืฆืŸ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืงืึทืžืคึผืขืจืึทื˜ืึธืจ"), ืื™ืจ ืงืขื ืขืŸ ื‘ืขืฉืึธืœืขื ืึทืงืกืขืก ื“ื™ ืคืขืœื“ืขืจ ื“ื•ืจืš ื“ื™ ื˜ื™ื™ึทื˜ืœ. ื“ื™ ื”ื•ื™ืคึผื˜ ื–ืึทืš ืื™ื– ื ื™ืฉื˜ ืฆื• ื“ืขืจืงืขื ืขืŸ ืขืก!
  4. ืื™ืŸ ืงื™ื™ืŸ ืฆื•ืฉื˜ืื ื“ืŸ ื–ืึธืœ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ื–ื™ื™ืŸ ืžืึทื“ืึทืคื™ื™ื“ ื“ื•ืจืš ื“ื™ ื‘ืืงื•ืžืขืŸ ื˜ื™ื™ึทื˜ืœ. ืึทืœืข ืขื ื“ืขืจื•ื ื’ืขืŸ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขืžืื›ื˜ ื‘ืœื•ื™ื– ื“ื•ืจืš ื“ืขื ืื•ืคึฟืŸ mdb_put. ืึธื‘ืขืจ, ืงื™ื™ืŸ ืขื ื™ืŸ ื•ื•ื™ ืฉื•ื•ืขืจ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืขืก ื•ื•ืขื˜ ื ื™ื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš, ื•ื•ื™ื™ึทืœ ื“ื™ ื–ื›ึผืจื•ืŸ ื’ืขื’ื ื˜ ื•ื•ื• ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืื™ื– ืœื™ื’ืŸ ืื™ื– ืžืึทืคึผื˜ ืื™ืŸ ื‘ืœื•ื™ื– ืœื™ื™ืขื ืขืŸ ืžืึธื“ืข.
  5. ืจื™ืžืึทืคึผ ืึท ื˜ืขืงืข ืฆื• ื“ืขื ืคึผืจืึธืฆืขืก ืึทื“ืจืขืก ืคึผืœืึทืฅ ืคึฟืึทืจ, ืœืžืฉืœ, ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืžืึทืงืกื™ืžื•ื ืกื˜ืึธืจื™ื“ื–ืฉ ื’ืจื™ื™ืก ืžื™ื˜ ื“ื™ ืคื•ื ืงืฆื™ืข mdb_env_set_map_size ื’ืึธืจ ื™ื ื•ื•ืึทืœืึทื“ื™ื™ืฅ ืึทืœืข ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืื•ืŸ ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ืขื ื˜ื™ื˜ื™ื– ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ืื•ืŸ ืคึผื•ื™ื ื˜ืขืจื– ืฆื• ื–ื™ื›ืขืจ ืึทื‘ื“ื–ืฉืขืงืฅ ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ.

ืฆื•ื ืกื•ืฃ, ืืŸ ืื ื“ืขืจ ืฉื˜ืจื™ืš ืื™ื– ืึทื–ื•ื™ ื™ื ืกื™ื“ื™ืึทืก ืึทื– ืจื™ื•ื•ื™ืœื™ื ื’ ื–ื™ื™ึทืŸ ืขืกืึทื ืก ืื™ื– ื ื™ืฉื˜ ืคึผืึทืกื™ืง ืื™ืŸ ื‘ืœื•ื™ื– ืืŸ ืื ื“ืขืจ ืคึผืึทืจืึทื’ืจืึทืฃ. ืื™ืŸ ื“ืขื ืงืึทืคึผื™ื˜ืœ ื•ื•ืขื’ืŸ ื“ืขื ื‘-ื‘ื•ื™ื ื”ืึธื‘ ืื™ืš ื’ืขื’ืขื‘ืŸ ืึท ื“ื™ืึทื’ืจืึทืžืข ื•ื•ื™ ืื™ืจืข ื‘ืœืขื˜ืขืจ ื–ืขื ืขืŸ ืขืจื™ื™ื ื“ื–ืฉื“ ืื™ืŸ ื–ื›ึผืจื•ืŸ. ืขืก ื’ื™ื™ื˜ ืคื•ืŸ ื“ืขื ืึทื– ื“ื™ ืึทื“ืจืขืก ืคื•ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ื‘ืึทืคืขืจ ืžื™ื˜ ืกื™ืจื™ืึทืœื™ื–ืขื“ ื“ืึทื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœืขื’ืึทืžืจืข ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ. ื•ื•ื™ื™ึทืœ ืคื•ืŸ ื“ืขื, ื“ื™ ื˜ื™ื™ึทื˜ืœ ืฆื• ื–ื™ื™ ื‘ืืงื•ืžืขืŸ ืื™ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ MDB_val ืื•ืŸ ืจื™ื“ื•ืกื˜ ืฆื• ืึท ืึธื ื•ื•ื™ื™ึทื– ืฆื• ืึท ืกื˜ืจื•ืงื˜ื•ืจ, ืขืก ื•ื•ื™ื™ื–ืŸ ืื™ืŸ ื“ื™ ืึทืœื’ืขืžื™ื™ื ืข ืคืึทืœ. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื– ืคื•ืŸ ืขื˜ืœืขื›ืข ื˜ืฉื™ืคึผืก (ืื™ืŸ ื“ื™ ืคืึทืœ ืคื•ืŸ ื™ืึธืก ื“ืึธืก ืื™ื– armv7) ื“ืึทืจืคืŸ ืึทื– ื“ื™ ืึทื“ืจืขืก ืคื•ืŸ ืงื™ื™ืŸ ื“ืึทื˜ืŸ ืื™ื– ืึท ืงื™ื™ืคืœ ืคื•ืŸ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ืžืึทืฉื™ืŸ ื•ื•ืึธืจื˜ ืึธื“ืขืจ, ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ื“ื™ ื‘ื™ืกืœ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื ( ืคึฟืึทืจ Armv7 ืขืก ืื™ื– 32 ื‘ื™ืฅ). ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ืึทืŸ ืึธืคึผืขืจืึทืฆื™ืข ื•ื•ื™ *(int *foo)0x800002 ืื•ื™ืฃ ื–ื™ื™ ืื™ื– ืขืงื•ื•ื™ื•ื•ืึทืœืขื ื˜ ืฆื• ืึทื ื˜ืœื•ื™ืคืŸ ืื•ืŸ ืคื™ืจื˜ ืฆื• ื“ื•ืจื›ืคื™ืจื•ื ื’ ืžื™ื˜ ืึท ื•ื•ืขืจื“ื™ืงื˜ EXC_ARM_DA_ALIGN. ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื•ื•ืขื’ืŸ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืึทื–ืึท ืึท ื˜ืจื•ื™ืขืจื™ืง ื’ื•ืจืœ.

ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ื•ื™ืœื– ืึทืจืึธืคึผ ืฆื• ืคึผืจื™ืœื™ืžืึทื ืขืจื™ ืงืึทืคึผื™ื™ื ื’ ื“ืึทื˜ืŸ ืื™ืŸ ืึท ื“ืึธืš ืึทืœื™ื™ื ื“ ืกื˜ืจื•ืงื˜ื•ืจ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื•ื™ืฃ ืึท ืžื ื”ื’ ืงืึธืžืคึผืึทืจืึทื˜ืึธืจ ื“ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืฉืคื™ื’ืœื˜ ื•ื•ื™ ื’ื™ื™ื˜.

int compare(MDB_val * const a, MDB_val * const b) {
    NodeKey aKey, bKey;
    memcpy(&aKey, a->mv_data, a->mv_size);
    memcpy(&bKey, b->mv_data, b->mv_size);
    return // ...
}

ืึทืŸ ืึทืœื˜ืขืจื ืึทื˜ื™ื•ื•ืข ื•ื•ืขื’ ืื™ื– ืฆื• ื’ืขื‘ื  ืฆื• ื•ื•ื™ืกืŸ ื“ืขื ืงืึทืžืคึผื™ื™ืœืขืจ ืื™ืŸ ืฉื˜ื™ื™ึทื’ืŸ ืึทื– ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืกื˜ืจืึทืงื˜ืฉืขืจื– ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืึทื˜ืจื™ื‘ื™ื•ื˜-ืึทืœื™ื™ื ื“. aligned(1). ืื•ื™ืฃ ARM ืื™ืจ ืงืขื ืขืŸ ื”ืึธื‘ืŸ ื“ื™ ื–ืขืœื‘ืข ื•ื•ื™ืจืงื•ื ื’ ื“ืขืจื’ืจื™ื™ื›ืŸ ืื•ืŸ ื ื™ืฆืŸ ื“ื™ ืคึผืึทืงื˜ ืึทื˜ืจื™ื‘ื™ื•ื˜. ืงืึทื ืกื™ื“ืขืจื™ื ื’ ืึทื– ืขืก ืื•ื™ืš ื”ืขืœืคึผืก ืฆื• ืึทืคึผื˜ืึทืžื™ื™ื– ื“ื™ ืคึผืœืึทืฅ ืคืึทืจื ื•ืžืขืŸ ื“ื•ืจืš ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ, ื“ืขื ืื•ืคึฟืŸ ืžื™ื™ื ื˜ ื‘ื™ืœื›ืขืจ ืฆื• ืžื™ืจ, ื›ืึธื˜ืฉ ะฟั€ะธะฒะพะดะธั‚ ืฆื• ืึท ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ื“ื™ ืคึผืจื™ื™ึทื– ืคื•ืŸ ื“ืึทื˜ืŸ ืึทืงืกืขืก ืึทืคึผืขืจื™ื™ืฉืึทื ื–.

typedef struct __attribute__((packed)) NodeKey {
    uint8_t parentId;
    uint8_t type;
    uint8_t nameLength;
    uint8_t nameBuffer[256];
} NodeKey;

ืงื™ื™ื˜ ืคึฟืจืื’ืŸ

ืฆื• ื™ื˜ืขืจื™ื™ื˜ ืื™ื‘ืขืจ ืึท ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืจืขืงืึธืจื“ืก, LMDB ื’ื™ื˜ ืึท ืœื•ื™ืคึฟืขืจ ืึทื‘ืกื˜ืจืึทืงืฆื™ืข. ื–ืืœ ืก ืงื•ืง ื•ื•ื™ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ืขืก ืžื™ื˜ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืึท ื˜ื™ืฉ ืžื™ื˜ ื‘ืึทื ื™ืฆืขืจ ื•ื•ืึธืœืงืŸ ืžืขื˜ืึทื“ืึทื˜ืึท ืฉื•ื™ืŸ ื‘ืึทืงืึทื ื˜ ืฆื• ืื•ื ื“ื–.

ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื•ื•ื™ื™ึทื–ื ื“ื™ืง ืึท ืจืฉื™ืžื” ืคื•ืŸ ื˜ืขืงืขืก ืื™ืŸ ืึท ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืึทืœืข ื“ื™ ืฉืœื™ืกืœืขืŸ ืžื™ื˜ ื•ื•ืึธืก ื“ื™ ืงื™ื ื“ ื˜ืขืงืขืก ืื•ืŸ ืคืึธืœื“ืขืจืก ื–ืขื ืขืŸ ืคืืจื‘ื•ื ื“ืŸ. ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืกืึทื‘ืกืขืงืฉืึทื ื– ืžื™ืจ ืื•ื™ืกื’ืขืฉื˜ืขืœื˜ ื“ื™ ืฉืœื™ืกืœืขืŸ NodeKey ืึทื–ื•ื™ ืึทื– ื–ื™ื™ ื–ืขื ืขืŸ ื‘ืคึฟืจื˜ ืึธืจื“ืขืจื“ ื“ื•ืจืš ื“ื™ ืฉื™ื™ึทืŸ ืคื•ืŸ ื“ื™ ืคืึธื˜ืขืจ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ืื–ื•ื™, ื˜ืขืงื ื™ืงืœื™, ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ืจื™ื˜ืจื™ื•ื•ื™ื ื’ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืึท ื˜ืขืงืข ืงื•ืžื˜ ืึทืจืึธืคึผ ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ืœื•ื™ืคึฟืขืจ ืื•ื™ืฃ ื“ืขืจ ืื•ื™ื‘ืขืจืฉื˜ืขืจ ื’ืจืขื ืขืฅ ืคื•ืŸ ื“ื™ ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืฉืœื™ืกืœืขืŸ ืžื™ื˜ ืึท ื’ืขื’ืขื‘ืŸ ืคึผืจืขืคื™ืงืก ืื•ืŸ ื“ืขืžืึธืœื˜ ื™ื˜ืขืจื™ื™ื˜ื™ื ื’ ืฆื• ื“ืขืจ ื ื™ื“ืขืจื™ืงืขืจ ื’ืจืขื ืขืฅ.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ืขืจ ืื•ื™ื‘ืขืจืฉื˜ืขืจ ื‘ื•ื ื“ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ ื’ืœื™ื™ึทืš ื“ื•ืจืš ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœ ื–ื•ื›ืŸ. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ื“ื™ ืœื•ื™ืคึฟืขืจ ืื™ื– ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ื’ืื ืฆืข ืจืฉื™ืžื” ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ ื™ื ืงืจืึทืžืึทื ื˜ื™ื“ ื ืึธืš ืึท ืฉืœื™ืกืœ ืžื™ื˜ ื“ื™ ื™ื™ื“ืขื ืึทืคื™ื™ื“ ื™ื™ื“ืขื ืึทืคื™ื™ื“ ืคืึธื˜ืขืจ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืื•ื ื˜ืขืจ ืื™ื. ื“ืขื ืฆื•ื’ืึทื ื’ ื”ืื˜ 2 ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื–:

  1. ืœื™ื ืขืึทืจ ื–ื•ื›ืŸ ืงืึทืžืคึผืœืขืงืกื™ื˜ื™, ื›ืึธื˜ืฉ, ื•ื•ื™ ื‘ืืงืื ื˜, ืื™ืŸ ื‘ื™ื™ืžืขืจ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ืื•ืŸ ืื™ืŸ ืึท ื‘-ื‘ื•ื™ื ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ืœืึธื’ืึทืจื™ื˜ื”ืžื™ืง ืฆื™ื™ื˜.
  2. ืื•ืžื–ื™ืกื˜, ืึทืœืข ื‘ืœืขื˜ืขืจ ื•ื•ืึธืก ื–ืขื ืขืŸ ืคืึธืจื•ื™ืก ืฆื• ื“ืขื ื•ื•ืึธืก ืžืขืŸ ื–ื•ื›ื˜ ื–ืขื ืขืŸ ืื•ื™ืคื’ืขื”ื•ื™ื‘ืŸ ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข ืฆื• ื“ื™ ื”ื•ื™ืคึผื˜ ื–ื›ึผืจื•ืŸ, ื•ื•ืึธืก ืื™ื– ื’ืึธืจ ื˜ื™ื™ึทืขืจ.

ืฆื•ืž ื’ืœื™ืง, ื“ื™ LMDB API ื’ื™ื˜ ืึทืŸ ืขืคืขืงื˜ื™ื•ื• ื•ื•ืขื’ ืฆื• ืขืจืฉื˜ ืฉื˜ืขืœืข ื“ื™ ืœื•ื™ืคึฟืขืจ. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืึท ืฉืœื™ืกืœ ื•ื•ืขืžืขื ืก ื•ื•ืขืจื˜ ืื™ื– ื“ืึธืš ื•ื•ื™ื™ื ื™ืงืขืจ ื•ื•ื™ ืึธื“ืขืจ ื’ืœื™ื™ึทืš ืฆื• ื“ื™ ืฉืœื™ืกืœ ื•ื•ืึธืก ืื™ื– ืœื™ื’ืŸ ืื™ืŸ ื“ืขืจ ืื•ื™ื‘ืขืจืฉื˜ืขืจ ื’ืจืขื ืขืฅ ืคื•ืŸ ื“ื™ ื™ื ื˜ืขืจื•ื•ืึทืœ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ ื‘ืึทืฆื™ื•ื ื’ ืฆื• ื“ืขืจ ืจืฉื™ืžื” ืื™ืŸ ื“ื™ ืคื™ื’ื•ืจ ืื•ื™ื‘ืŸ, ืžื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืึท ืฉืœื™ืกืœ ืื™ืŸ ื•ื•ืึธืก ื“ื™ ืคืขืœื“ parentId ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืœื™ื™ึทืš ืฆื• 2, ืื•ืŸ ืึทืœืข ื“ื™ ืžื ื•ื—ื” ื–ืขื ืขืŸ ืึธื ื’ืขืคื™ืœื˜ ืžื™ื˜ ื–ืขืจืึธืก. ืึทื–ืึท ืึท ื˜ื™ื™ืœ ืึธื ื’ืขืคื™ืœื˜ ืฉืœื™ืกืœ ืื™ื– ืกืึทืคึผืœื™ื™ื“ ืฆื• ื“ื™ ืคื•ื ืงืฆื™ืข ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ mdb_cursor_get ื™ื ื“ืึทืงื™ื™ื˜ื™ื ื’ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข MDB_SET_RANGE.

NodeKey upperBoundSearchKey = {โ€‹
    .parentId = 2,โ€‹
    .type = 0,โ€‹
    .nameLength = 0โ€‹
};โ€‹
MDB_val value, key = serialize(upperBoundSearchKey);โ€‹
MDB_cursor *cursor;โ€‹
mdb_cursor_open(..., &cursor);โ€‹
mdb_cursor_get(cursor, &key, &value, MDB_SET_RANGE);

ืื•ื™ื‘ ื“ืขืจ ืื•ื™ื‘ืขืจืฉื˜ืขืจ ื’ืจืขื ืขืฅ ืคื•ืŸ ืึท ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืฉืœื™ืกืœืขืŸ ืื™ื– ื’ืขืคื•ื ืขืŸ, ืžื™ืจ ื™ื˜ืขืจื™ื™ื˜ ืื™ื‘ืขืจ ืขืก ื‘ื™ื– ืึธื“ืขืจ ืžื™ืจ ื˜ืจืขืคืŸ ืึธื“ืขืจ ื“ืขืจ ืฉืœื™ืกืœ ื˜ืจืขืคืŸ ืื ื“ืขืจืŸ parentId, ืึธื“ืขืจ ื“ื™ ืฉืœื™ืกืœืขืŸ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ืœื•ื™ืคืŸ ืื•ื™ืก ืื™ืŸ ืึทืœืข

do {โ€‹
    rc = mdb_cursor_get(cursor, &key, &value, MDB_NEXT);โ€‹
    // processing...โ€‹
} while (MDB_NOTFOUND != rc && // check end of tableโ€‹
         IsTargetKey(key));    // check end of keys groupโ€‹โ€‹

ื•ื•ืึธืก ืื™ื– ืคื™ื™ึทืŸ ืื™ื– ืึทื– ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ื™ื˜ืขืจืึทื˜ื™ืึธืŸ ื ื™ืฆืŸ mdb_cursor_get, ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ื ื™ื˜ ื‘ืœื•ื™ื– ื“ื™ ืฉืœื™ืกืœ, ืึธื‘ืขืจ ืื•ื™ืš ื“ื™ ื•ื•ืขืจื˜. ืื•ื™ื‘, ืื™ืŸ ืกื“ืจ ืฆื• ืžืงื™ื™ื ื“ื™ ืžื•ืกื˜ืขืจื•ื ื’ ื˜ื ืึธื™ื, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ, ืฆื•ื•ื™ืฉืŸ ืื ื“ืขืจืข, ื“ื™ ืคืขืœื“ืขืจ ืคื•ืŸ ื“ื™ ื•ื•ืขืจื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืจืขืงืึธืจื“, ื–ื™ื™ ื–ืขื ืขืŸ ื’ืึทื ืฅ ืฆื•ื˜ืจื™ื˜ืœืขืš ืึธืŸ ื ืึธืš ื“ื–ืฉืขืกื˜ืฉืขืจื–.

4.3. ืžืึธื“ืขืœื™ื ื’ ื‘ืึทืฆื™ื•ื ื’ืขืŸ ืฆื•ื•ื™ืฉืŸ ื˜ื™ืฉืŸ

ืื™ืฆื˜, ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืจืื˜ืŸ ืฆื• ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืึทืœืข ืึทืกืคึผืขืงืฅ ืคื•ืŸ ื“ื™ื–ื™ื™ื ื™ื ื’ ืื•ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืึท ืื™ื™ืŸ-ื˜ื™ืฉ ื“ืึทื˜ืึทื‘ื™ื™ืก. ืžื™ืจ ืงืขื ืขืŸ ื–ืึธื’ืŸ ืึทื– ืึท ื˜ื™ืฉ ืื™ื– ืึท ืกื›ื•ื ืคื•ืŸ ืื•ื™ืกื’ืขืฉื˜ืขืœื˜ ืจืขืงืึธืจื“ืก ื•ื•ืึธืก ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ื“ื™ ื–ืขืœื‘ืข ื˜ื™ืคึผ ืคื•ืŸ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืคึผืขืจื–. ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ื™ึทื–ืŸ ืึท ืฉืœื™ืกืœ ื•ื•ื™ ืึท ื’ืจืึธื“ืขืง ืื•ืŸ ื“ื™ ืคึฟืึทืจื‘ื•ื ื“ืŸ ื•ื•ืขืจื˜ ื•ื•ื™ ืึท ืคึผืึทืจืึทืœืขืœืขืคึผื™ืคึผืขื“, ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ื•ื•ื™ื–ืฉืึทื•ื•ืึทืœ ื“ื™ืึทื’ืจืึทืžืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก.

โ€‹

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืึธื‘ืขืจ, ืื™ืŸ ืคืึทืงื˜ื™ืฉ ืœืขื‘ืŸ ืขืก ืื™ื– ืจืึทืจืขืœื™ ืžืขื’ืœืขืš ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื•ืจืš ืžื™ื˜ ืึทื–ื•ื™ ืงืœื™ื™ืŸ ื‘ืœืึทื“ืฉืขื“. ืึธืคื˜ ืื™ืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ืขืก ืื™ื– ืคืืจืœืื ื’ื˜, ืขืจืฉื˜ืขืจ, ืฆื• ื”ืึธื‘ืŸ ืขื˜ืœืขื›ืข ื˜ื™ืฉืŸ, ืื•ืŸ ืฆื•ื•ื™ื™ื˜ื ืก, ืฆื• ืžืึทื›ืŸ ืกืขืœืขืงืฉืึทื ื– ืื™ืŸ ื–ื™ื™ ืื™ืŸ ืึท ืกื“ืจ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ื™ ืขืจืฉื˜ื™ืง ืฉืœื™ืกืœ. ื“ืขืจ ืœืขืฆื˜ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืื™ื– ื’ืขื•ื•ื™ื“ืžืขื˜ ื“ื™ ืขื ื™ื ื™ื ืคื•ืŸ ื–ื™ื™ืขืจ ืฉืึทืคื•ื ื’ ืื•ืŸ ื™ื ื˜ืขืจืงืึทื ืขืงืฉืึทืŸ.

ืื™ื ื“ืขืงืก ื˜ื™ืฉืŸ

ื“ื™ ื•ื•ืึธืœืงืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื”ืื˜ ืึท "ื’ืึทืœืขืจื™" ืึธืคึผื˜ื™ื™ืœื•ื ื’. ืขืก ื“ื™ืกืคึผืœื™ื™ื– ืžืขื“ื™ืข ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ ื’ืื ืฆืข ื•ื•ืึธืœืงืŸ, ืื•ื™ืกื’ืขืฉื˜ืขืœื˜ ืœื•ื™ื˜ ื“ืึทื˜ืข. ืฆื• ืึธืคึผื˜ื™ืžืึทืœ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึทื–ืึท ืึท ืกืขืœืขืงืฆื™ืข, ื•ื•ื™ื™ึทื˜ืขืจ ืฆื• ื“ื™ ื”ื•ื™ืคึผื˜ ื˜ื™ืฉ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืึทืคึฟืŸ ืืŸ ืื ื“ืขืจ ืื™ื™ื ืขืจ ืžื™ื˜ ืึท ื ื™ื™ึทืข ื˜ื™ืคึผ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ. ื–ื™ื™ ื•ื•ืขืœืŸ ืึทื ื˜ื”ืึทืœื˜ืŸ ืึท ืคืขืœื“ ืžื™ื˜ ื“ื™ ื“ืึทื˜ืข ื•ื•ืึธืก ื“ื™ ื˜ืขืงืข ืื™ื– ื‘ืืฉืืคืŸ, ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ ืขืจืฉื˜ื™ืง ืกืึธืจื˜ื™ื ื’ ืงืจื™ื˜ืขืจื™ืึธืŸ. ื•ื•ื™ื™ึทืœ ื“ื™ ื ื™ื™ึทืข ืฉืœื™ืกืœืขืŸ ื“ืขืจืžืึธื ืขืŸ ื“ื™ ื–ืขืœื‘ืข ื“ืึทื˜ืŸ ื•ื•ื™ ื“ื™ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื˜ื™ืฉ, ื–ื™ื™ ื–ืขื ืขืŸ ื’ืขืจื•ืคืŸ ืื™ื ื“ืขืงืก ืฉืœื™ืกืœืขืŸ. ืื™ืŸ ื“ื™ ื‘ื™ืœื“ ืื•ื ื˜ืŸ ื–ื™ื™ ื–ืขื ืขืŸ ื›ื™ื™ืœื™ื™ื˜ื™ื“ ืื™ืŸ ืžืึทืจืึทื ืฅ.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืื™ืŸ ืกื“ืจ ืฆื• ืฆืขื˜ื™ื™ืœืŸ ื“ื™ ืฉืœื™ืกืœืขืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ืฉืŸ ืคื•ืŸ ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก, ืึทืŸ ื ืึธืš ื˜ืขื›ื ื™ืฉ ืคืขืœื“ ื˜ืึทื‘ืœืขื™ื“ ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ืึทืœืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื–ื™ื™. ื“ื•ืจืš ืžืื›ืŸ ืขืก ื“ื™ ื”ืขื›ืกื˜ืŸ ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜ ืคึฟืึทืจ ืกืึธืจื˜ื™ื ื’, ืžื™ืจ ื•ื•ืขืœืŸ ื“ืขืจื’ืจื™ื™ื›ืŸ ื’ืจื•ืคึผื™ื ื’ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ ืขืจืฉื˜ืขืจ ื“ื•ืจืš ื˜ื™ืฉืŸ ืื•ืŸ ืื™ืŸ ื˜ื™ืฉืŸ - ืœื•ื™ื˜ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ื›ึผืœืœื™ื.

ื“ืขืจ ืื™ื ื“ืขืงืก ืฉืœื™ืกืœ ืจืขืคืขืจืขื ืฆืŸ ื“ื™ ื–ืขืœื‘ืข ื“ืึทื˜ืŸ ื•ื•ื™ ื“ื™ ืขืจืฉื˜ื™ืง ืฉืœื™ืกืœ. ื ืกื˜ืจื™ื™ื˜ืคืึธืจื•ื•ืขืจื“ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ืขื ืคืึทืจืžืึธื’ ื“ื•ืจืš ืึทืกืกืึธืกื™ืึทื˜ื™ืึธืŸ ืžื™ื˜ ืื™ื ืึท ืงืึธืคึผื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื•ื•ืขืจื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืขืจืฉื˜ื™ืง ืฉืœื™ืกืœ ืื™ื– ื ื™ืฉื˜ ืึธืคึผื˜ื™ืžืึทืœ ืคึฟื•ืŸ ืขื˜ืœืขื›ืข ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’:

  1. ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ืคึผืœืึทืฅ ื’ืขื ื•ืžืขืŸ, ื“ื™ ืžืขื˜ืึทื“ืึทื˜ืึท ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืึทื ืฅ ืจื™ื™ึทืš.
  2. ืคึฟื•ืŸ ืึท ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’, ื–ื™ื ื˜ ื•ื•ืขืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ื“ื™ ืžืขื˜ืึทื“ืึทื˜ืึท ืคื•ืŸ ืึท ื ืึธื“ืข, ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืจื™ืจื™ื™ื˜ ืขืก ืžื™ื˜ ืฆื•ื•ื™ื™ ืฉืœื™ืกืœืขืŸ.
  3. ืคึฟื•ืŸ ื“ื™ ืžื™ื™ื ื•ื ื’ ืคื•ืŸ ืงืึธื“ ืฉื˜ื™ืฆืŸ, ืื•ื™ื‘ ืžื™ืจ ืคืึทืจื’ืขืกืŸ ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ื“ืึทื˜ืŸ ืคึฟืึทืจ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœืขืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทืงื•ืžืขืŸ ืึท ื™ืœื•ืกื™ื•ื• ื–ืฉื•ืง ืคื•ืŸ ื“ืึทื˜ืŸ ื™ื ืงืึทื ืกื™ืกื˜ืึทื ืกื™ ืื™ืŸ ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ.

ื•ื•ื™ื™ึทื˜ืขืจ, ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื•ื•ื™ ืฆื• ืขืœื™ืžื™ื ื™ืจืŸ ื“ื™ ืฉืึธืจื˜ืงืึธืžื™ื ื’ืก.

ืึธืจื’ืึทื ื™ื™ื–ื™ื ื’ ื‘ืึทืฆื™ื•ื ื’ืขืŸ ืฆื•ื•ื™ืฉืŸ ื˜ื™ืฉืŸ

ื“ืขืจ ืžื•ืกื˜ืขืจ ืื™ื– ื’ืขื–ื•ื ื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ื“ื™ ืื™ื ื“ืขืงืก ื˜ื™ืฉ ืžื™ื˜ ื“ื™ ื”ื•ื™ืคึผื˜ ื˜ื™ืฉ "ืฉืœื™ืกืœ ื•ื•ื™ ื•ื•ืขืจื˜". ื•ื•ื™ ื–ื™ื™ืŸ ื ืึธืžืขืŸ ืกืึทื’ื“ื–ืฉืขืก, ื“ื™ ื•ื•ืขืจื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืื™ื ื“ืขืงืก ืจืขืงืึธืจื“ ืื™ื– ืึท ืงืึธืคึผื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืขืจืฉื˜ื™ืง ืฉืœื™ืกืœ ื•ื•ืขืจื˜. ื“ืขืจ ืฆื•ื’ืึทื ื’ ื™ืœื™ืžืึทื ื™ื™ืฅ ืึทืœืข ื“ื™ ืื•ื™ื‘ืŸ-ื“ืขืจืžืื ื˜ ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืกื˜ืึธืจื™ื ื’ ืึท ืงืึธืคึผื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื•ื•ืขืจื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืขืจืฉื˜ื™ืง ืจืขืงืึธืจื“. ื“ืขืจ ื‘ืœื•ื™ื– ืคึผืจื™ื™ึทื– ืื™ื– ืึทื– ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึท ื•ื•ืขืจื˜ ื“ื•ืจืš ืื™ื ื“ืขืงืก ืฉืœื™ืกืœ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืžืึทื›ืŸ 2 ืงื•ื•ื™ืจื™ื– ืฆื• ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืื™ื™ืŸ. ืกื›ืขืžืึทื˜ื™ืฉ, ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกื˜ืฉืขืžืึท ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืืŸ ืื ื“ืขืจ ืžื•ืกื˜ืขืจ ืคึฟืึทืจ ืึธืจื’ืึทื ื™ื™ื–ื™ื ื’ ื‘ืึทืฆื™ื•ื ื’ืขืŸ ืฆื•ื•ื™ืฉืŸ ื˜ื™ืฉืŸ ืื™ื– "ื™ื‘ืขืจื™ืง ืฉืœื™ืกืœ". ื–ื™ื™ืŸ ืขืกืึทื ืก ืื™ื– ืฆื• ืœื™ื™ื’ืŸ ื ืึธืš ืึทื˜ืจื™ื‘ื™ื•ืฅ ืฆื• ื“ืขื ืฉืœื™ืกืœ, ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื“ืืจืฃ ืคึฟืึทืจ ืกืึธืจื˜ื™ื ื’, ืึธื‘ืขืจ ืคึฟืึทืจ ืจื™ืงืจื™ื™ื™ื˜ื™ื ื’ ื“ื™ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืฉืœื™ืกืœ. ืื™ืŸ ื“ื™ Mail.ru ืงืœืึธื•ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืขืก ื–ืขื ืขืŸ ืคืึทืงื˜ื™ืฉ ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ื–ื™ื™ึทืŸ ื ื•ืฆืŸ, ืึธื‘ืขืจ, ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืึท ื˜ื™ืฃ ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš ืื™ืŸ. ื“ื™ ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ ืกืคึผืขืฆื™ืคื™ืฉ ื™ืึธืก ืคืจืึทืžืขื•ื•ืึธืจืงืก, ืื™ืš ื•ื•ืขืœ ื’ืขื‘ืŸ ืึท ืคื™ืงื˜ื™ืฉืึทืก, ืึธื‘ืขืจ ืึท ืงืœื™ืจืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ

ื•ื•ืึธืœืงืŸ ืจื™ืจืขื•ื•ื“ื™ืง ืงืœื™ื™ืึทื ืฅ ื”ืึธื‘ืŸ ืึท ื‘ืœืึทื˜ ื•ื•ืึธืก ื“ื™ืกืคึผืœื™ื™ื– ืึทืœืข ื“ื™ ื˜ืขืงืขืก ืื•ืŸ ืคืึธืœื“ืขืจืก ื•ื•ืึธืก ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื”ืื˜ ืฉืขืจื“ ืžื™ื˜ ืื ื“ืขืจืข ืžืขื ื˜ืฉืŸ. ื–ื™ื ื˜ ืขืก ื–ืขื ืขืŸ ืœืขืคื™ืขืจืขืš ื•ื•ื™ื™ื ื™ืง ืึทื–ืึท ื˜ืขืงืขืก, ืื•ืŸ ืขืก ื–ืขื ืขืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืกืคึผืขืฆื™ืคื™ืฉ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื–ื™ื™ (ื•ื•ืขืจ ืื™ื– ื“ืขืจืœื•ื™ื‘ื˜ ืึทืงืกืขืก, ืžื™ื˜ ื•ื•ืึธืก ืจืขื›ื˜, ืืื–"ื• ื•), ืขืก ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืจืึทืฉืึทื ืึทืœ ืฆื• ืžืึทืกืข ื“ื™ ื•ื•ืขืจื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืจืขืงืึธืจื“ ืื™ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื˜ื™ืฉ ืžื™ื˜ ืื™ื. ืึธื‘ืขืจ, ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื•ื•ื™ื™ึทื–ืŸ ืึทื–ืึท ื˜ืขืงืขืก ืึธืคืคืœื™ื ืข, ืื™ืจ ื ืึธืš ื“ืึทืจืคึฟืŸ ืฆื• ืงืจืึธื ืขืก ืขืจื’ืขืฅ. ื ื ืึทื˜ื™ืจืœืขืš ืœื™ื™ื–ื•ื ื’ ืื™ื– ืฆื• ืฉืึทืคึฟืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื˜ื™ืฉ ืคึฟืึทืจ ืื™ื. ืื™ืŸ ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ืื•ื ื˜ืŸ, ื–ื™ื™ืŸ ืฉืœื™ืกืœ ืื™ื– ืคึผืจืขืคื™ืงืกืขื“ ืžื™ื˜ "ืคึผ", ืื•ืŸ ื“ื™ ืึธืจื˜ื”ืึธืœื“ืขืจ "ืคึผืจืึธืคึผื ืึทืžืข" ืงืขื ืขืŸ ื–ื™ื™ืŸ ืจื™ืคึผืœื™ื™ืกื˜ ืžื™ื˜ ื“ื™ ืžืขืจ ืกืคึผืขืฆื™ืคื™ืฉ ื•ื•ืขืจื˜ "ืฆื™ื‘ื•ืจ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข".

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ืึทืœืข ื™ื™ื ืฆื™ืง ืžืขื˜ืึทื“ืึทื˜ืึท, ืคึฟืึทืจ ื“ื™ ืกื˜ืึธืจื™ื ื’ ื•ื•ืึธืก ื“ื™ ื ื™ื™ึทืข ื˜ื™ืฉ ืื™ื– ื‘ืืฉืืคืŸ, ืื™ื– ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื“ื™ ื•ื•ืขืจื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืจืขืงืึธืจื“. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืื™ืจ ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ื“ื•ืคึผืœื™ืงืึทื˜ ื“ื™ ื“ืึทื˜ืŸ ื•ื•ืขื’ืŸ ื˜ืขืงืขืก ืื•ืŸ ืคืึธืœื“ืขืจืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืฉื•ื™ืŸ ืกื˜ืึธืจื“ ืื™ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื˜ื™ืฉ. ืึทื ืฉื˜ืึธื˜, ื™ื‘ืขืจื™ืง ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืžื•ืกื™ืฃ ืฆื• ื“ื™ "ืคึผ" ืฉืœื™ืกืœ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ื“ื™ "ื ืึธื“ืข ืฉื™ื™ึทืŸ" ืื•ืŸ "ื˜ื™ืžืขืกื˜ืึทืžืคึผ" ืคืขืœื“ืขืจ. ื“ืึทื ืง ืฆื• ื–ื™ื™, ืื™ืจ ืงืขื ืขืŸ ื‘ื•ื™ืขืŸ ืึทืŸ ืื™ื ื“ืขืงืก ืฉืœื™ืกืœ, ืคึฟื•ืŸ ื•ื•ืึธืก ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ืึท ืขืจืฉื˜ื™ืง ืฉืœื™ืกืœ, ืคึฟื•ืŸ ื•ื•ืึธืก ืื™ืจ ืœืขืกืึธืฃ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ืžืขื˜ืึทื“ืึทื˜ืึท ืคื•ืŸ ื ืึธื“ืข.

ืžืกืงื ื

ืžื™ืจ ืึทืกืกืขืกืก ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ LMDB ื“ื•ืจื›ื•ื™ืก. ื ืึธืš ืขืก, ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื“ื™ ืคืจื™ื–ื™ื– ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ื– ืจื™ื“ื•ืกื˜ ืžื™ื˜ 30%.

ื“ื™ ืฉื™ื™ึทื ืขืŸ ืื•ืŸ ืึธืจืขืžืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก LMDB ืื™ืŸ ื™ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–

ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืึทืจื‘ืขื˜ ืจื™ื–ืึทื ื™ื™ื˜ื™ื“ ื•ื•ื™ื™ึทื˜ืขืจ ืคื•ืŸ ื“ื™ ื™ืึธืก ืžืึทื ืฉืึทืคึฟื˜. ื“ืขืจื•ื•ื™ื™ึทืœ, ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ "Files" ืกืขืงืฉืึทื ื– ืื™ืŸ ื“ื™ ืึทื ื“ืจื•ื™ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ื– ืื•ื™ืš ืกื•ื•ื™ื˜ืฉื˜ ืฆื• ื ื™ืฆืŸ LMDB, ืื•ืŸ ืื ื“ืขืจืข ืคึผืึทืจืฅ ื–ืขื ืขืŸ ืื•ื™ืฃ ื“ื™ ื•ื•ืขื’. ื“ื™ C ืฉืคึผืจืึทืš, ืื™ืŸ ื•ื•ืึธืก ื“ื™ ืฉืœื™ืกืœ-ื•ื•ืขืจื˜ ืงืจืึธื ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“, ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ื’ื•ื˜ืข ื”ื™ืœืฃ ืฆื• ื˜ื›ื™ืœืขืก ืฉืึทืคึฟืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคืจื™ื™ืžื•ื•ืขืจืง ืึทืจื•ื ืขืก ืงืจื™ื™ึทื–-ืคึผืœืึทื˜ืคืึธืจืžืข ืื™ืŸ C ++. ื ืงืึธื“ ื’ืขื ืขืจืึทื˜ืึธืจ ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืกื™ืžืœืึทืกืœื™ ืคืึทืจื‘ื™ื ื“ืŸ ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ C ++ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืžื™ื˜ ืคึผืœืึทื˜ืคืึธืจืžืข ืงืึธื“ ืื™ืŸ ืึธื‘ื™ืขืงื˜ื™ื•ื•-C ืื•ืŸ ืงืึธื˜ืœื™ืŸ ื“ื–ืฉื™ื ื™ ืคึฟื•ืŸ ื“ืจืึธืคึผื‘ืึธืงืก, ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ืึท ื’ืึธืจ ืึทื ื“ืขืจืฉ ื’ืขืฉื™ื›ื˜ืข.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’