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

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

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

ืœื•ื™ื˜ DB-Engines ืจืึทื ืงื™ื ื’, ื“ื™ ืฆื•ื•ื™ื™ ืžืขืจืกื˜ ืคืึธืœืงืก NoSQL ืงืึธืœื•ืžื ืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื–ืขื ืขืŸ Cassandra (ื“ืขืจื ืึธืš CS) ืื•ืŸ HBase (HB).

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

ืœื•ื™ื˜ ื“ืขื ื’ื•ืจืœ ืคื•ืŸ ื’ื•ืจืœ, ืื•ื ื“ื–ืขืจ ื“ืึทื˜ืŸ ืœืึธื•ื“ื™ื ื’ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืžืึทื ืฉืึทืคึฟื˜ ืื™ืŸ ืกื‘ืขืจื‘ืึทื ืง ื”ืื˜ ืฉื•ื™ืŸ ืœืึทื ื’ ืฆื•ืจื™ืง ืื•ืŸ ืึทืจื‘ืขื˜ ืขื ื’ ืžื™ื˜ HB. ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜, ืžื™ืจ ื’ืขืœืขืจื ื˜ ื–ื™ื™ืขืจ ืฉื˜ืึทืจืงื™ื™ื˜ ืื•ืŸ ื•ื•ื™ืงื ืึทืกืึทื– ื’ืึทื ืฅ ื’ื•ื˜ ืื•ืŸ ื’ืขืœืขืจื ื˜ ื•ื•ื™ ืฆื• ืงืึธื›ืŸ ืขืก. ืึธื‘ืขืจ, ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืึทืŸ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืงืก ืฉื˜ืขื ื“ื™ืง ื’ืขืฆื•ื•ื•ื ื’ืขืŸ ืื•ื ื“ื– ืฆื• ืžืึทื˜ืขืจืŸ ื–ื™ืš ืึท ื‘ื™ืกืœ ืžื™ื˜ ืฆื•ื•ื™ื™ืคืœ: ื”ืึธื‘ืŸ ืžื™ืจ ื’ืขืžืื›ื˜ ื“ื™ ืจืขื›ื˜ ื‘ืจื™ืจื”? ื“ืขืจืฆื•, ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืงืึทืžืคึผืขืจืึทืกืึทื ื–, ื’ืขื˜ืืŸ ื“ื•ืจืš DataStax, ื–ื™ื™ ื’ืขื–ืื’ื˜ ืึทื– CS ืœื™ื™ื›ื˜ ื‘ื™ืฅ HB ืžื™ื˜ ื›ึผืžืขื˜ ืึท ืงืจืึทืฉื™ื ื’ ื›ืขื–ืฉื‘ืŸ. ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, DataStax ืื™ื– ืึทืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืคึผืึทืจื˜ื™ื™, ืื•ืŸ ืื™ืจ ื–ืึธืœ ื ื™ืฉื˜ ื ืขืžืขืŸ ื–ื™ื™ืขืจ ื•ื•ืึธืจื˜ ืคึฟืึทืจ ืื™ื. ืžื™ืจ ื–ืขื ืขืŸ ืื•ื™ืš ืฆืขืžื™ืฉื˜ ื“ื•ืจืš ื“ื™ ื’ืึทื ืฅ ืงืœื™ื™ืŸ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ื˜ืขืกื˜ื™ื ื’ ื˜ื ืึธื™ื, ืึทื–ื•ื™ ืžื™ืจ ื‘ืึทืฉืœืึธืกืŸ ืฆื• ื’ืขืคึฟื™ื ืขืŸ ื–ื™ืš ืึทืœื™ื™ืŸ ื•ื•ืขืจ ืื™ื– ื“ืขืจ ืžืœืš ืคื•ืŸ BigData NoSql, ืื•ืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ื–ื™ื™ืขืจ ื˜ืฉื™ืงืึทื•ื•ืข.

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

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

CREATE KEYSPACE ks WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3};

ื•ื•ื™ื™ึทื˜ืขืจ, ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื•ื•ืขื’ืŸ ืฆื• ืขื ืฉื•ืจ ื“ื™ ืคืืจืœืื ื’ื˜ ืžื“ืจื’ื” ืคื•ืŸ ืงืึธื ืกื™ืกื˜ืขื ืกื™. ืึทืœื’ืขืžื™ื™ื ืข ื”ืขืจืฉืŸ:
ื ื•ื• + ื ืจ > ืจืฃ

ื•ื•ืึธืก ืžื™ื˜ืœ ืึทื– ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืคื•ืŸ ื ืึธื•ื“ื– ื•ื•ืขืŸ ืฉืจื™ื™ื‘ืŸ (NW) ืคึผืœื•ืก ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืคื•ืŸ ื ืึธื•ื“ื– ื•ื•ืขืŸ ืœื™ื™ืขื ืขืŸ (NR) ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืจืขืกืขืจ ื•ื•ื™ ื“ื™ ืจืขืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคืึทืงื˜ืึธืจ. ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, RF = 3, ื•ื•ืึธืก ืžื™ื˜ืœ ื“ื™ ืคืืœื’ืขื ื“ืข ืึธืคึผืฆื™ืขืก ื–ืขื ืขืŸ ืคึผืึทืกื™ืง:
2 + 2 > 3
3 + 1 > 3

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

ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ืื ื’ืขื•ื•ื™ื–ืŸ ืึทื– DataStax ื”ืื˜ ื“ื™ ืคืึทืจืงืขืจื˜ ืื™ืŸ ื–ื™ื™ืขืจ ืœืขืจื ืขืŸ, ื–ื™ื™ ืฉื˜ืขืœืŸ RF = 1 ืคึฟืึทืจ ื‘ื™ื™ื“ืข CS ืื•ืŸ HB (ืคึฟืึทืจ ื“ื™ ื™ืขื ืขืจ ื“ื•ืจืš ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ HDFS ืกืขื˜ื˜ื™ื ื’ืก). ื“ืึธืก ืื™ื– ืึท ื˜ืึทืงืข ื•ื•ื™ื›ื˜ื™ืง ืึทืกืคึผืขืงื˜ ื•ื•ื™ื™ึทืœ ื“ื™ ืคึผืจืึทืœ ืื•ื™ืฃ CS ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื™ืŸ ื“ืขื ืคืึทืœ ืื™ื– ืจื™ื–ื™ืง. ืฆื•ื ื‘ื™ื™ืฉืคึผื™ืœ, ื“ื™ ื‘ื™ืœื“ ืื•ื ื˜ืŸ ื•ื•ื™ื™ื–ื˜ ื“ื™ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ื“ื™ ืฆื™ื™ื˜ ืคืืจืœืื ื’ื˜ ืฆื• ืœืึธื“ืŸ ื“ืึทื˜ืŸ ืื™ืŸ CS:

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

ื“ืึธ ืžื™ืจ ื–ืขืŸ ื“ื™ ืคืืœื’ืขื ื“ืข: ื“ื™ ืžืขืจ ืงืึทืžืคึผื™ื˜ื™ื ื’ ืคึฟืขื“ืขื ืฉืจื™ื™ึทื‘ืŸ ื“ืึทื˜ืŸ, ื“ื™ ืžืขืจ ืขืก ื ืขืžื˜. ื“ืึธืก ืื™ื– ื ืึทื˜ื™ืจืœืขืš, ืึธื‘ืขืจ ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืึทื– ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื“ืขืจื ื™ื“ืขืจื™ืงื•ื ื’ ืคึฟืึทืจ RF=3 ืื™ื– ื‘ืื˜ื™ื™ื˜ื™ืง ื”ืขื›ืขืจ. ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ืื•ื™ื‘ ืžื™ืจ ืฉืจื™ื™ึทื‘ืŸ 4 ืคึฟืขื“ืขื ืื™ืŸ 5 ื˜ื™ืฉืŸ ื™ืขื“ืขืจ (20 ืื™ืŸ ื’ืึทื ืฅ), ื“ืขืžืึธืœื˜ RF=3 ืคืืจืœื™ืจื˜ ื•ื•ืขื’ืŸ 2 ืžืืœ (150 ืกืขืงื•ื ื“ืขืก ืคึฟืึทืจ ืจืฃ=3 ืงืขื’ืŸ 75 ืคึฟืึทืจ ืจืฃ=1). ืื‘ืขืจ ืื•ื™ื‘ ืžื™ืจ ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืžืึทืกืข ื“ื•ืจืš ืœืึธื•ื“ื™ื ื’ ื“ืึทื˜ืŸ ืื™ืŸ 8 ื˜ื™ืฉืŸ ืžื™ื˜ 5 ืคึฟืขื“ืขื ื™ืขื“ืขืจ (40 ืื™ืŸ ื’ืึทื ืฅ), ื“ื™ ืึธื ื•ื•ืขืจ ืคื•ืŸ RF=3 ืื™ื– ืฉื•ื™ืŸ 2,7 ืžืืœ (375 ืกืขืงื•ื ื“ืขืก ืงืขื’ืŸ 138).

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

ืึทืœืข ื˜ืขืกืฅ ื–ืขื ืขืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื•ื™ืฃ ืึท ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืงื ื•ื™ืœ ืงืึทื ืกื™ืกื˜ื™ื ื’ ืคื•ืŸ 4 ืกืขืจื•ื•ืขืจืก, ื™ืขื“ืขืจ ืžื™ื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ:

ืงืคึผื•: Xeon E5-2680 v4 @ 2.40GHz 64 ืคึฟืขื“ืขื.
ื“ื™ืกืงืก: 12 SATA HDD
Java ื•ื•ืขืจืกื™ืข: 1.8.0_111

CS ื•ื•ืขืจืกื™ืข: 3.11.5

cassandra.yml ืคึผืึทืจืึทืžืขื˜ืขืจืกื ื•ืžืขืจ_ื˜ืึธืงืขื ืก: 256
hinted_handoff_enabled: ืืžืช
hinted_handoff_throttle_in_kb: 1024
max_hints_delivery_threads: 2
ื”ื™ื ืฅ_directory: /data10/cassandra/hints
hints_flush_period_in_ms: 10000
max_hints_file_size_in_mb: 128
batchlog_replay_throttle_in_kb: 1024
Authenticator: AllowAllAuthenticator
Authorizer: AllowAllAuthorizer
role_manager: CassandraRoleManager
ืจืึธืœืขืก_ื•ื•ืึทืœื™ื“ื™ื˜ื™_ืื™ืŸ_ืžืก: 2000
permissions_validity_in_ms: 2000
ืงืจืึทื“ืขื ื˜ืฉืึทืœื–_ื•ื•ืึทืœื™ื“ื™ื˜ื™_ืื™ืŸ_ืžืก: 2000
ืฆืขื˜ื™ื™ืœื•ื ื’: org.apache.cassandra.dht.Murmur3Partitioner
ื“ืึทื˜ืŸ_ื˜ืขืงืข_ื“ื™ืจืขืงื˜ืึธืจื™ืขืก:
- /data1/cassandra/data # ื™ืขื“ืขืจ ื“ืึทื˜ืึท ืŸ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืื™ื– ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื“ื™ืกืง
- /data2/cassandra/data
- /data3/cassandra/data
- /data4/cassandra/data
- /data5/cassandra/data
- /data6/cassandra/data
- /data7/cassandra/data
- /data8/cassandra/data
commitlog_directory: /data9/cassandra/commitlog
cdc_enabled: ืคืึทืœืฉ
disk_failure_policy: ื”ืึทืœื˜ืŸ
commit_failure_policy: ื”ืึทืœื˜ืŸ
ready_statements_cache_size_mb:
thrift_prepared_statements_cache_size_mb:
key_cache_size_in_mb:
key_cache_save_period: 14400
row_cache_size_in_mb: 0
row_cache_save_period: 0
counter_cache_size_in_mb:
ืงืึธื•ื ื˜ืขืจ_ืงืึทื˜ืฉืข_ื”ื™ื˜_ืคึผืขืจื™ืึธื“: 7200
saved_caches_directory: /data10/cassandra/saved_caches
commitlog_sync: ืคึผืขืจื™ืึธื“ื™ืฉ
commitlog_sync_period_in_ms: 10000
commitlog_segment_size_in_mb: 32
ื–ื•ื™ืžืขืŸ_ืคืจืฒึทื“ืขืจ:
- ืงืœืึทืก_ื ืึทืžืข: org.apache.cassandra.locator.SimpleSeedProvider
ืคึผืึทืจืึทืžืขื˜ืขืจืก:
โ€” ื–ืืžืขืŸ: "*,*"
concurrent_reads: 256 # ื’ืขืคืจื•ื•ื•ื˜ 64 - ืงื™ื™ืŸ ื—ื™ืœื•ืง ื‘ืืžืขืจืงื˜
concurrent_writes: 256 # ื’ืขืคืจื•ื•ื•ื˜ 64 - ืงื™ื™ืŸ ื—ื™ืœื•ืง ื‘ืืžืขืจืงื˜
concurrent_counter_writes: 256 # ื’ืขืคืจื•ื•ื•ื˜ 64 - ืงื™ื™ืŸ ื—ื™ืœื•ืง ื‘ืืžืขืจืงื˜
ืงืึธื ืงื•ืจืขื ื˜_ืžืึทื˜ืขืจื™ืึทืœื™ื–ืขื“_ื•ื•ื™ืขื•ื•_ืฉืจื™ื™ื‘ื˜: 32
memtable_heap_space_in_mb: 2048 # ื’ืขืคืจื•ื•ื•ื˜ 16 ื’ื™ื’ืื‘ื™ื™ื˜ - ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืกืœืึธื•ืขืจ
memtable_allocation_type: heap_buffers
index_summary_capacity_in_mb:
index_summary_resize_interval_in_minutes: 60
trickle_fsync: ืคืึทืœืฉ
trickle_fsync_interval_in_kb: 10240
ืกื˜ืึธืจื™ื“ื–ืฉ_ืคึผืึธืจื˜: 7000
ssl_storage_port: 7001
ื”ืขืจืŸ_ืึทื“ืจืขืก: *
ื‘ืจืึธื“ืงืึทืกื˜_ืึทื“ืจืขืก: *
listen_on_broadcast_address: ืืžืช
internode_authenticator: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
start_native_transport: ืืžืช
ื’ืขื‘ื•ื™ืจืŸ_ื˜ืจืึทื ืกืคึผืึธืจื˜_ืคึผืึธืจื˜: 9042
start_rpc: ืืžืช
rpc_ืึทื“ืจืขืก: *
rpc_port: 9160
rpc_keepalive: ืืžืช
rpc_server_type: ืกื™ื ืง
thrift_framed_transport_size_in_mb: 15
ื™ื ืงืจืขืžืขื ื˜ืึทืœ_ื‘ืึทืงืึทืคึผืก: ืคืึทืœืฉ
snapshot_before_compaction: ืคืึทืœืฉ
auto_snapshot: ืืžืช
column_index_size_in_kb: 64
column_index_cache_size_in_kb: 2
ืงืึธื ืงื•ืจืจืขื ื˜_ืงืึธืžืคึผืึทืงื˜ืึธืจืก: 4
compaction_throughput_mb_per_sec: 1600
sstable_preemptive_open_interval_in_mb: 50
read_request_timeout_in_ms: 100000
range_request_timeout_in_ms: 200000
write_request_timeout_in_ms: 40000
counter_write_request_timeout_in_ms: 100000
cas_contention_timeout_in_ms: 20000
truncate_request_timeout_in_ms: 60000
request_timeout_in_ms: 200000
slow_query_log_timeout_in_ms: 500
cross_node_timeout: ืคืึทืœืฉ
endpoint_snitch: GossipingPropertyFileSnitch
dynamic_snitch_update_interval_in_ms: 100
dynamic_snitch_reset_interval_in_ms: 600000
dynamic_snitch_badness_threshold: 0.1
request_scheduler: org.apache.cassandra.scheduler.NoScheduler
ืกืขืจื•ื•ืขืจ_ืขื ืงืจื™ืคึผื˜ื™ืึธืŸ_ืึธืคึผืฆื™ืขืก:
internode_encryption: ื’ืึธืจื ื™ื˜
client_encryption_options:
ืขื ื™ื™ื‘ืึทืœื“: ืคืึทืœืฉ
internode_compression: ื“ืง
inter_dc_tcp_nodelay: ืคืึทืœืฉ
tracetype_query_ttl: 86400
tracetype_repair_ttl: 604800
enable_user_defined_functions: ืคืึทืœืฉ
enable_scripted_user_defined_functions: ืคืึทืœืฉ
windows_timer_interval: 1
ื˜ืจืึทื ืกืคึผืขืจืึทื ื˜_ื“ืึทื˜ืึท_ืขื ืงืจื™ืคึผื˜ื™ืึธืŸ_ืึธืคึผืฆื™ืขืก:
ืขื ื™ื™ื‘ืึทืœื“: ืคืึทืœืฉ
Tombstone_warn_threshold: 1000
Tombstone_failure_threshold: 100000
batch_size_warn_threshold_in_kb: 200
batch_size_fail_threshold_in_kb: 250
unlogged_batch_across_partitions_warn_threshold: 10
compaction_large_partition_warning_threshold_mb: 100
gc_warn_threshold_in_ms: 1000
back_pressure_enabled: ืคืึทืœืฉ
enable_materialized_views: ืืžืช
enable_sasi_indexes: ืืžืช

GC ืกืขื˜ื˜ื™ื ื’ืก:

### CMS ืกืขื˜ื˜ื™ื ื’ืก-ืงืกืงืก:+UseParNewGC
-ืงืกืงืก:+UseConcMarkSweepGC
-ืงืกืงืก:+CMSParallelRemarkEnabled
-ืงืกืงืก: ืกื•ืจื•ื•ื™ื•ื•ืึธืจ ืคืึทืจื”ืขืœื˜ืขื ื™ืฉ=8
-ืงืกืงืก: ืžืึทืงืกื˜ืขื ื•ืจื™ื ื’ื˜ื”ืจืขืฉืึธืœื“=1
-ืงืกืงืก:CMSInitiatingOccupancyFraction=75
-ืงืกืงืก:+ื ื•ืฆืŸ ื‘ืœื•ื™ื– CMSI-initiatingoccupancy
-XX:CMSWaitDuration=10000
-XX:+CMSParallelInitialMarkEnabled
-ืงืกืงืก: + ืงืžืกื“ืขื˜ืฉื•ื ืงืก ืจืขืงืึธืจื“ ืฉื˜ืขื ื“ื™ืง
-ืงืกืงืก:+CMSClassUnloadingEnabled

ื“ื™ jvm.options ื–ื™ืงืึธืจืŸ ืื™ื– ื’ืขื•ื•ืขืŸ ืึทืœืึทืงื™ื™ื˜ื™ื“ 16 ื’ื‘ (ืžื™ืจ ืื•ื™ืš ื’ืขืคืจื•ื•ื•ื˜ 32 ื’ื‘, ืงื™ื™ืŸ ื—ื™ืœื•ืง ืื™ื– ื‘ืืžืขืจืงื˜).

ื“ื™ ื˜ื™ืฉืŸ ื–ืขื ืขืŸ ื‘ืืฉืืคืŸ ืžื™ื˜ ื“ืขื ื‘ืึทืคึฟืขืœ:

CREATE TABLE ks.t1 (id bigint PRIMARY KEY, title text) WITH compression = {'sstable_compression': 'LZ4Compressor', 'chunk_length_kb': 64};

HB ื•ื•ืขืจืกื™ืข: 1.2.0-cdh5.14.2 (ืื™ืŸ ื“ื™ ืงืœืึทืก org.apache.hadoop.hbase.regionserver.HRegion ืžื™ืจ ื™ืงืกืงืœื•ื“ื™ื“ MetricsRegion ื•ื•ืึธืก ื’ืขืคื™ืจื˜ ืฆื• GC ื•ื•ืขืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืžืงื•ืžื•ืช ืื™ื– ื’ืขื•ื•ืขืŸ ืžืขืจ ื•ื•ื™ 1000 ืื•ื™ืฃ RegionServer)

ื ื™ื˜-ืคืขืœื™ืงื™ื™ึทื˜ HBase ืคึผืึทืจืึทืžืขื˜ืขืจืกzookeeper.session.timeout: 120000
hbase.rpc.timeout: 2 ืžื™ื ื•ื˜ (s)
hbase.client.scanner.timeout.period: 2 ืžื™ื ื•ื˜ (s)
hbase.master.handler.count: 10
hbase.regionserver.lease.period, hbase.client.scanner.timeout.period: 2 ืžื™ื ื•ื˜ (s)
hbase.regionserver.handler.count: 160
hbase.regionserver.metahandler.count: 30
hbase.regionserver.logroll.period: 4 ืฉืขื” (s)
hbase.regionserver.maxlogs: 200
hbase.hregion.memstore.flush.ื’ืจื™ื™ืก: 1 ื’ื™ื‘
hbase.hregion.memstore.block.multiplier: 6
hbase.hstore.compactionThreshold: 5
hbase.hstore.blockingStoreFiles: 200
hbase.hregion.majorcompaction: 1 ื˜ืึธื’ (s)
HBase Service Advanced Configuration Snippet (Safety Valve) ืคึฟืึทืจ hbase-site.xml:
hbase.regionserver.wal.codecorg.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
hbase.master.namespace.init.timeout3600000
hbase.regionserver.optionalcacheflushinterval18000000
hbase.regionserver.thread.compaction.large12
hbase.regionserver.wal.enablecompressiontrue
hbase.hstore.compaction.max.size1073741824
hbase.server.compactchecker.interval.multiplier200
Java ืงืึธื ืคื™ื’ื•ืจืึทื˜ื™ืึธืŸ ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ HBase RegionServer:
-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:ReservedCodeCacheSize=256m
hbase.snapshot.master.timeoutMillis: 2 ืžื™ื ื•ื˜ (s)
hbase.snapshot.region.timeout: 2 ืžื™ื ื•ื˜ (s)
hbase.snapshot.master.timeout.millis: 2 ืžื™ื ื•ื˜ (s)
HBase REST ืกืขืจื•ื•ื™ืจืขืจ ืžืึทืงืก ืœืึธื’ ื’ืจื™ื™ืก: 100 MiB
HBase REST ืกืขืจื•ื•ื™ืจืขืจ ืžืึทืงืกื™ืžื•ื ืงืœืึธืฅ ื˜ืขืงืข ื‘ืึทืงืึทืคึผืก: 5
HBase Thrift Server ืžืึทืงืก ืœืึธื’ ื’ืจื™ื™ืก: 100 MiB
HBase Thrift Server ืžืึทืงืกื™ืžื•ื ืœืึธื’ ื˜ืขืงืข ื‘ืึทืงืึทืคึผืก: 5
ื‘ืขืœ ืžืึทืงืก ืงืœืึธืฅ ื’ืจื™ื™ืก: 100 ืžื™ื‘
ื‘ืขืœ ืžืึทืงืกื™ืžื•ื ืงืœืึธืฅ ื˜ืขืงืข ื‘ืึทืงืึทืคึผืก: 5
ืจืขื’ื™ืึธื ืึทืœืกืขืจื•ื•ืขืจ ืžืึทืงืก ืœืึธื’ ื’ืจื™ื™ืก: 100 ืžื™ื‘
RegionServer ืžืึทืงืกื™ืžื•ื ืงืœืึธืฅ ื˜ืขืงืข ื‘ืึทืงืึทืคึผืก: 5
HBase ืึทืงื˜ื™ื•ื• ื”ืืจ ื“ืขื˜ืขืงืฉืึทืŸ ืคึฟืขื ืฆื˜ืขืจ: 4 ืžื™ื ื•ื˜ (s)
dfs.client.hedged.read.threadpool.ื’ืจื™ื™ืก: 40
dfs.client.hedged.read.threshold.millis: 10 ืžื™ืœื™ืกืขืงื•ื ื“ืŸ (s)
hbase.rest.threads.min: 8
hbase.rest.threads.max: 150
ืžืึทืงืกื™ืžื•ื ืคึผืจืึธืฆืขืก ื˜ืขืงืข ื“ื™ืกืงืจื™ืคึผื˜ืึธืจืก: 180000
hbase.thrift.minWorkerThreads: 200
hbase.master.executor.openregion.threads: 30
hbase.master.executor.closeregion.threads: 30
hbase.master.executor.serverops.threads: 60
hbase.regionserver.thread.compaction.small: 6
hbase.ipc.server.read.threadpool.ื’ืจื™ื™ืก: 20
ื’ืขื’ื ื˜ ืžืึธื•ื•ืขืจ ืคึฟืขื“ืขื: 6
ืงืœื™ืขื ื˜ Java ื”ื™ืคึผ ื’ืจื™ื™ืก ืื™ืŸ ื‘ื™ื˜ืขืก: 1 ื’ื™ื‘
HBase REST ืกืขืจื•ื•ื™ืจืขืจ ืคืขืœื™ืงื™ื™ึทื˜ ื’ืจื•ืคืข: 3 GiB
HBase Thrift Server Default Group: 3 GiB
Java ื”ื™ืคึผ ื’ืจื™ื™ืก ืคื•ืŸ HBase ื”ืืจ ืื™ืŸ ื‘ื™ื˜ืขืก: 16 GiB
Java ื”ืขืึทืคึผ ื’ืจื™ื™ืก ืคื•ืŸ HBase RegionServer ืื™ืŸ ื‘ื™ื˜ืขืก: 32 GiB

+ ื–ื•ืึธืงืขืขืคึผืขืจ
maxClientCnxns: 601
ืžืึทืงืกื™ืžื•ื ืกืขืฉืึทืŸ ืฆื™ื™ื˜: 120000
ืฉืืคืŸ ื˜ื™ืฉืŸ:
hbase org.apache.hadoop.hbase.util.RegionSplitter ns:t1 UniformSplit -c 64 -f cf
ื˜ื•ื™ืฉืŸ 'ns:t1', {NAME => 'cf', DATA_BLOCK_ENCODING => 'FAST_DIFF', COMPRESSION => 'GZ'}

ืขืก ืื™ื– ืื™ื™ืŸ ื•ื•ื™ื›ื˜ื™ืง ืคื•ื ื˜ ื“ืึธ - ื“ื™ DataStax ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื˜ื•ื˜ ื ื™ืฉื˜ ื–ืึธื’ืŸ ื•ื•ื™ ืคื™ืœืข ืžืงื•ืžื•ืช ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ืฆื• ืฉืึทืคึฟืŸ ื“ื™ HB ื˜ื™ืฉืŸ, ื›ืึธื˜ืฉ ื“ืึธืก ืื™ื– ืงืจื™ื˜ื™ืฉ ืคึฟืึทืจ ื’ืจื•ื™ืก ื•ื•ืึทืœื™ื•ืžื–. ื“ืขืจื™ื‘ืขืจ, ืคึฟืึทืจ ื“ื™ ื˜ืขืกืฅ, ืงื•ื•ืึทื ื˜ื™ื˜ื™ = 64 ืื™ื– ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜, ื•ื•ืึธืก ืึทืœืึทื•ื– ืกื˜ืึธืจื™ื ื’ ืึทืจื•ื™ืฃ ืฆื• 640 ื’ื™ื’ืื‘ื™ื™ื˜, ื™.ืข. ืžื™ื˜ืœ ื’ืจื™ื™ืก ื˜ื™ืฉ.

ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื™ ืคึผืจืึธื‘ืข, HBase ื”ืื˜ 22 ื˜ื•ื™ื–ื ื˜ ื˜ื™ืฉืŸ ืื•ืŸ 67 ื˜ื•ื™ื–ื ื˜ ืžืงื•ืžื•ืช (ื“ืึธืก ื•ื•ืึธืœื˜ ื’ืขื•ื•ืขืŸ ื˜ื•ื™ื˜ืœืขืš ืคึฟืึทืจ ื•ื•ืขืจืกื™ืข 1.2.0 ืื•ื™ื‘ ื ื™ืฉื˜ ืคึฟืึทืจ ื“ื™ ืœืึทื˜ืข ื“ืขืจืžืื ื˜ ืื•ื™ื‘ืŸ).

ืื™ืฆื˜ ืคึฟืึทืจ ื“ื™ ืงืึธื“. ื–ื™ื ื˜ ืขืก ืื™ื– ื ื™ืฉื˜ ืงืœืึธืจ ื•ื•ืึธืก ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ื–ืขื ืขืŸ ืžืขืจ ืึทื“ื•ื•ืึทื ื˜ื™ื™ื“ื–ืฉืึทืก ืคึฟืึทืจ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก, ื˜ืขืกืฅ ื–ืขื ืขืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ืคืึทืจืฉื™ื“ืŸ ืงืึทืžื‘ืึทื ื™ื™ืฉืึทื ื–. ื™ืขื ืข. ืื™ืŸ ืขื˜ืœืขื›ืข ื˜ืขืกืฅ, 4 ื˜ื™ืฉืŸ ื–ืขื ืขืŸ ืœืึธื•ื“ื™ื“ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ (ืึทืœืข 4 ื ืึธื•ื“ื– ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืงืฉืจ). ืื™ืŸ ืื ื“ืขืจืข ื˜ืขืกืฅ ืžื™ืจ ื’ืขืืจื‘ืขื˜ ืžื™ื˜ 8 ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ืฉืŸ. ืื™ืŸ ืขื˜ืœืขื›ืข ืงืึทืกืขืก, ื“ื™ ืคึผืขืงืœ ื’ืจื™ื™ืก ืื™ื– ื’ืขื•ื•ืขืŸ 100, ืื™ืŸ ืื ื“ืขืจืข 200 (ืคึผืึทืจืขืžืข ืคึผืึทืจืึทืžืขื˜ืขืจ - ื–ืขืŸ ืงืึธื“ ืื•ื ื˜ืŸ). ื“ื™ ื“ืึทื˜ืŸ ื’ืจื™ื™ืก ืคึฟืึทืจ ื•ื•ืขืจื˜ ืื™ื– 10 ื‘ื™ื˜ืขืก ืึธื“ืขืจ 100 ื‘ื™ื˜ืขืก (ื“ืึทื˜ืึทืกื™ื™ื–). ืื™ืŸ ื’ืึทื ืฅ, 5 ืžื™ืœื™ืึธืŸ ืจืขืงืึธืจื“ืก ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ืื•ืŸ ืœื™ื™ืขื ืขืŸ ืื™ืŸ ื™ืขื“ืขืจ ื˜ื™ืฉ ื™ืขื“ืขืจ ืžืึธืœ. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, 5 ืคึฟืขื“ืขื ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ / ืœื™ื™ืขื ืขืŸ ืฆื• ื™ืขื“ืขืจ ื˜ื™ืฉ (ืคืึธื“ืขื ื ื•ืžืขืจ - thNum), ื™ืขื“ืขืจ ืคื•ืŸ ื•ื•ืึธืก ื’ืขื•ื•ื™ื™ื ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืงื™ื™ื˜ ืคื•ืŸ ืฉืœื™ืกืœืขืŸ (ืฆื™ื™ืœืŸ = 1 ืžื™ืœื™ืึธืŸ):

if (opType.equals("insert")) {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        StringBuilder sb = new StringBuilder("BEGIN BATCH ");
        for (int i = 0; i < batch; i++) {
            String value = RandomStringUtils.random(dataSize, true, true);
            sb.append("INSERT INTO ")
                    .append(tableName)
                    .append("(id, title) ")
                    .append("VALUES (")
                    .append(key)
                    .append(", '")
                    .append(value)
                    .append("');");
            key++;
        }
        sb.append("APPLY BATCH;");
        final String query = sb.toString();
        session.execute(query);
    }
} else {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        StringBuilder sb = new StringBuilder("SELECT * FROM ").append(tableName).append(" WHERE id IN (");
        for (int i = 0; i < batch; i++) {
            sb = sb.append(key);
            if (i+1 < batch)
                sb.append(",");
            key++;
        }
        sb = sb.append(");");
        final String query = sb.toString();
        ResultSet rs = session.execute(query);
    }
}

ืึทืงืงืึธืจื“ื™ื ื’ืœื™, ืขื ืœืขืš ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ืคึฟืึทืจ HB:

Configuration conf = getConf();
HTable table = new HTable(conf, keyspace + ":" + tableName);
table.setAutoFlush(false, false);
List<Get> lGet = new ArrayList<>();
List<Put> lPut = new ArrayList<>();
byte[] cf = Bytes.toBytes("cf");
byte[] qf = Bytes.toBytes("value");
if (opType.equals("insert")) {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        lPut.clear();
        for (int i = 0; i < batch; i++) {
            Put p = new Put(makeHbaseRowKey(key));
            String value = RandomStringUtils.random(dataSize, true, true);
            p.addColumn(cf, qf, value.getBytes());
            lPut.add(p);
            key++;
        }
        table.put(lPut);
        table.flushCommits();
    }
} else {
    for (Long key = count * thNum; key < count * (thNum + 1); key += 0) {
        lGet.clear();
        for (int i = 0; i < batch; i++) {
            Get g = new Get(makeHbaseRowKey(key));
            lGet.add(g);
            key++;
        }
        Result[] rs = table.get(lGet);
    }
}

ื–ื™ื ื˜ ืื™ืŸ HB ื“ืขืจ ืงืœื™ืขื ื˜ ืžื•ื–ืŸ ื ืขืžืขืŸ ืงืขื™ืจ ืคื•ืŸ ื“ื™ ืžื•ื ื“ื™ืจ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืคื•ืŸ ื“ืึทื˜ืŸ, ื“ื™ ืฉืœื™ืกืœ ืกืึธืœื˜ื™ื ื’ ืคึฟื•ื ืงืฆื™ืข ื’ืขืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก:

public static byte[] makeHbaseRowKey(long key) {
    byte[] nonSaltedRowKey = Bytes.toBytes(key);
    CRC32 crc32 = new CRC32();
    crc32.update(nonSaltedRowKey);
    long crc32Value = crc32.getValue();
    byte[] salt = Arrays.copyOfRange(Bytes.toBytes(crc32Value), 5, 7);
    return ArrayUtils.addAll(salt, nonSaltedRowKey);
}

ืื™ืฆื˜ ื“ื™ ืžืขืจืกื˜ ื˜ืฉื™ืงืึทื•ื•ืข ื˜ื™ื™ืœ - ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ:

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

ื“ื™ ื–ืขืœื‘ืข ื–ืึทืš ืื™ืŸ ื’ืจืึทืคื™ืง ืคืึธืจืขื:

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

ื“ื™ ืžื™ื™ึทืœืข ืคื•ืŸ โ€‹โ€‹HB ืื™ื– ืึทื–ื•ื™ ื—ื™ื“ื•ืฉ ืึทื– ืขืก ืื™ื– ืึท ื—ืฉื“ ืึทื– ืขืก ืื™ื– ืึท ืžื™ืŸ ืคื•ืŸ ื‘ืึทื˜ืึทืœื ืขืง ืื™ืŸ ื“ื™ CS ืกืขื˜ืึทืคึผ. ืึธื‘ืขืจ, ื’ืึธื’ืœื™ื ื’ ืื•ืŸ ื–ื•ื›ืŸ ืคึฟืึทืจ ื“ื™ ืžืขืจืกื˜ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืคึผืึทืจืึทืžืขื˜ืขืจืก (ื•ื•ื™ concurrent_writes ืึธื“ืขืจ memtable_heap_space_in_mb) ื”ืื˜ ื ื™ืฉื˜ ืคืึทืจื’ื™ื›ืขืจืŸ ื“ื™ ื˜ื™ื ื’ื–. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ึทื˜, ื“ื™ ืœืึธื’ืก ื–ืขื ืขืŸ ืจื™ื™ืŸ ืื•ืŸ ื˜ืึธืŸ ื ื™ื˜ ืฉื•ื•ืขืจืŸ ืื™ืŸ ืขืคึผืขืก.

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

ื“ืึธืก ืื™ื– ื•ื•ื™ ื“ื™ ื˜ื™ืฉ ืกื˜ืึทื˜ื™ืกื˜ื™ืง ืงื•ืง ื•ื•ื™ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื ืึธื•ื“ื–Keyspace: ks
ืœื™ื™ืขื ืขืŸ ื’ืจืืฃ: 9383707
ืœื™ื™ืขื ืขืŸ ืœื™ื™ื˜ืึทื ืกื™: 0.04287025042448576 ืžื™ื–
ืฉืจื™ื™ื‘ ื’ืจืืฃ: 15462012
ืฉืจื™ื™ื‘ ืœื™ื™ื˜ืึทื ืก: 0.1350068438699957 ืžื™ื–
ืคึผืขื ื“ื™ื ื’ ืคืœื•ืฉืขืก: 0
ื˜ื™ืฉ: ื˜1
ืกื˜ืึทื‘ื™ืœ ืฆื™ื™ืœืŸ: 16
ืกืคืขื™ืก ื’ืขื ื™ืฆื˜ (ืœืขื‘ืŸ): 148.59 MiB
ืคึผืœืึทืฅ ื’ืขื ื™ืฆื˜ (ื’ืึทื ืฅ): 148.59 ืžื™ื‘
ืคึผืœืึทืฅ ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ืกื ืึทืคึผืฉืึทืฅ (ื’ืึทื ืฅ): 0 ื‘ื™ื˜ืขืก
ืื•ื™ืกื’ืขืœืืฉืŸ ืงื•ืคึผืข ื–ื™ืงืึธืจืŸ ื’ืขื•ื•ื™ื™ื ื˜ (ื’ืึทื ืฅ): 5.17 MiB
SSTable ืงืึทืžืคึผืจืขืฉืึทืŸ ืคืึทืจื”ืขืœื˜ืขื ื™ืฉ: 0.5720989576459437
ื ื•ืžืขืจ ืคื•ืŸ ืคึผืึทืจื˜ื™ืฉืึทื ื– (ืึธืคึผืฉืึทืฆื•ื ื’): 3970323
ืžืขืžืึทื‘ืœืข ืฆืขืœ ืฆื™ื™ืœืŸ: 0
ืžืขืžื˜ืึทื‘ืœืข ื“ืึทื˜ืŸ ื’ืจื™ื™ืก: 0 ื‘ื™ื˜ืขืก
ืžืขืžื˜ืึทื‘ืœืข ืึทื•ื•ืขืง ืงื•ืคึผืข ื–ื™ืงืึธืจืŸ ื’ืขื•ื•ื™ื™ื ื˜: 0 ื‘ื™ื˜ืขืก
ืžืขืžืึทื‘ืœืข ื‘ืึทืฉื˜ื™ืžืขืŸ ืฆื™ื™ืœืŸ: 5
ืœืืงืืœืข ืœื™ื™ืขื ืขืŸ ืฆื™ื™ืœืŸ: 2346045
ืœืืงืืœืข ืœื™ื™ืขื ืขืŸ ืœื™ื™ื˜ืึทื ืกื™: NaN ms
ืœืืงืืœืข ืฉืจื™ื™ื‘ืŸ ืฆื™ื™ืœืŸ: 3865503
ืœืืงืืœืข ืฉืจื™ื™ื‘ืŸ ืœื™ื™ื˜ืึทื ืกื™: NaN ms
ืคึผืขื ื“ื™ื ื’ ืคืœืึทืฉื™ื–: 0
ืคึผืจืึธืฆืขื ื˜ ืจื™ืคึผืขืจื“: 0.0
ื‘ืœื•ื ืคื™ืœื˜ืขืจ ืคืึทืœืฉ ืคึผืึทื–ืึทื˜ื™ื•ื•ื–: 25
ื‘ืœื™ืขืŸ ืคื™ืœื˜ืขืจ ืคืึทืœืฉ ืคืึทืจื”ืขืœื˜ืขื ื™ืฉ: 0.00000
ื‘ืœื™ืขืŸ ืคื™ืœื˜ืขืจ ืคึผืœืึทืฅ ื’ืขื ื™ืฆื˜: 4.57 MiB
ื‘ืœื™ืขืŸ ืคื™ืœื˜ืขืจ ืึทื•ื•ืขืง ืงื•ืคึผืข ื–ื™ืงืึธืจืŸ ื’ืขื•ื•ื™ื™ื ื˜: 4.57 MiB
ืื™ื ื“ืขืงืก ืงื™ืฆืขืจ ืคื•ืŸ ืงื•ืคึผืข ื–ื™ืงืึธืจืŸ ื’ืขื•ื•ื™ื™ื ื˜: 590.02 ืงื™ื‘
ืงืึทืžืคึผืจืขืฉืึทืŸ ืžืขื˜ืึทื“ืึทื˜ืึท ืคื•ืŸ ืงื•ืคึผืข ื–ื™ืงืึธืจืŸ ื’ืขื ื™ืฆื˜: 19.45 ืงื™ื‘
ืงืึธืžืคึผืึทืงื˜ื™ื“ ืฆืขื˜ื™ื™ืœื•ื ื’ ืžื™ื ื™ืžื•ื ื‘ื™ื˜ืขืก: 36
ืงืึธืžืคึผืึทืงื˜ื™ื“ ืฆืขื˜ื™ื™ืœื•ื ื’ ืžืึทืงืกื™ืžื•ื ื‘ื™ื˜ืขืก: 42
ืงืึธืžืคึผืึทืงื˜ื™ื“ ืฆืขื˜ื™ื™ืœื•ื ื’ ืžื™ื˜ืœ ื‘ื™ื˜ืขืก: 42
ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ืœืขื‘ืŸ ืกืขืœื– ืคึผืขืจ ืจืขืคื˜ืœ (ืœืขืฆื˜ืข ืคื™ื ืฃ ืžื™ื ื•ื˜): NaN
ืžืึทืงืกื™ืžื•ื ืœืขื‘ืŸ ืกืขืœื– ืคึผืขืจ ืจืขืคื˜ืœ (ืœืขืฆื˜ืข ืคื™ื ืฃ ืžื™ื ื•ื˜): 0
ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ื˜ืึธืžื‘ืกื˜ืึธื•ื ื– ืคึผืขืจ ืจืขืคื˜ืœ (ืœืขืฆื˜ืข ืคื™ื ืฃ ืžื™ื ื•ื˜): NaN
ืžืึทืงืกื™ืžื•ื ื˜ืึธืžื‘ืกื˜ืึธื•ื ื– ืคึผืขืจ ืจืขืคื˜ืœ (ืœืขืฆื˜ืข ืคื™ื ืฃ ืžื™ื ื•ื˜): 0
ื“ืจืึทืคึผื˜ ืžื™ื•ื˜ื™ื™ืฉืึทื ื–: 0 ื‘ื™ื˜ืขืก

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

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

ื•ื•ืขื’ืŸ HB ืก ืฉื˜ืึทืจืง ืœื™ื™ืขื ืขืŸ ืžื™ื™ึทืœืข. ื“ืึธ ืื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ืึทื– ืคึฟืึทืจ ื‘ื™ื™ื“ืข ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–, ื“ื™ืกืง ื™ื•ื˜ืึทืœืึทื–ื™ื™ืฉืึทืŸ ื‘ืขืฉืึทืก ืœื™ื™ืขื ืขืŸ ืื™ื– ื’ืึธืจ ื ื™ื“ืขืจื™ืง (ืœื™ื™ืขื ืขืŸ ื˜ืขืกืฅ ื–ืขื ืขืŸ ื“ื™ ืœืขืฆื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ื˜ืขืกื˜ื™ื ื’ ืฆื™ืงืœ ืคึฟืึทืจ ื™ืขื“ืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก, ืœืžืฉืœ ืคึฟืึทืจ CS ื“ืึธืก ืื™ื– ืคึฟื•ืŸ 15:20 ืฆื• 15:40). ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ HB, ื“ื™ ืกื™ื‘ื” ืื™ื– ืงืœืึธืจ - ืจื•ื‘ึฟ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ื›ืึทื ื’ื– ืื™ืŸ ื–ื›ึผืจื•ืŸ, ืื™ืŸ ื“ื™ ืžืขืžืกื˜ืึธืจ, ืื•ืŸ ืขื˜ืœืขื›ืข ืื™ื– ืงืึทืฉื˜ ืื™ืŸ ื‘ืœืึธืงืงืึทื˜ืฉืข. ื•ื•ื™ ืคึฟืึทืจ CS, ืขืก ืื™ื– ื ื™ืฉื˜ ื–ื™ื™ืขืจ ืงืœืึธืจ ื•ื•ื™ ืขืก ืึทืจื‘ืขื˜, ืึธื‘ืขืจ ื“ื™ืกืง ืจื™ืกื™ื™ืงืœื™ื ื’ ืื™ื– ืื•ื™ืš ื ื™ืฉื˜ ืงืขื ื˜ื™ืง, ืึธื‘ืขืจ ื ืึธืจ ืื™ืŸ ืคืึทืœ, ืึทืŸ ืคึผืจื•ื•ื•ืŸ ืื™ื– ื’ืขืžืื›ื˜ ืฆื• ื’ืขื‘ืŸ ื“ื™ ืงืึทืฉ row_cache_size_in_mb = 2048 ืื•ืŸ ืฉื˜ืขืœืŸ ืงืึทื˜ืฉื™ื ื’ = {'keys': 'ALL', 'rows_per_partition': '2000000'}, ืึธื‘ืขืจ ื“ืึธืก ื”ืึธื˜ ืขืก ืืคื™ืœื• ืึท ื‘ื™ืกืœ ืขืจื’ืขืจ.

ืขืก ืื™ื– ืื•ื™ืš ื›ื“ืื™ ืฆื• ื“ืขืจืžืึธื ืขืŸ ืึทืžืึธืœ ื•ื•ื™ื“ืขืจ ืึท ื•ื•ื™ื›ื˜ื™ืง ืคื•ื ื˜ ื•ื•ืขื’ืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืžืงื•ืžื•ืช ืื™ืŸ ื”ื‘. ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ื“ื™ ื•ื•ืขืจื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ืกืคึผืขืกื™ืคื™ืขื“ ื•ื•ื™ 64. ืื•ื™ื‘ ืื™ืจ ืจืขื“ื•ืฆื™ืจืŸ ืขืก ืื•ืŸ ืžืึทื›ืŸ ืขืก ื’ืœื™ื™ึทืš ืฆื•, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, 4, ื“ืขืžืึธืœื˜ ื•ื•ืขืŸ ืœื™ื™ืขื ืขืŸ, ื“ื™ ื’ื™ื›ืงื™ื™ึทื˜ ื˜ืจืืคื ืก ื“ื•ืจืš 2 ืžืืœ. ื“ื™ ืกื™ื‘ื” ืื™ื– ืึทื– ืžืขืžืกื˜ืึธืจ ื•ื•ืขื˜ ืคึผืœืึธืžื‘ื™ืจืŸ ื–ื™ืš ืคืึทืกื˜ืขืจ ืื•ืŸ ื˜ืขืงืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืœืึทืฉื˜ ืžืขืจ ืึธืคื˜ ืื•ืŸ ื•ื•ืขืŸ ืœื™ื™ืขื ืขืŸ, ืžืขืจ ื˜ืขืงืขืก ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ืคึผืจืึทืกืขืกื˜, ื•ื•ืึธืก ืื™ื– ืึท ื’ืึทื ืฅ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืึธืคึผืขืจืึทืฆื™ืข ืคึฟืึทืจ HB. ืื™ืŸ ืคืึทืงื˜ื™ืฉ ื˜ื ืึธื™ื, ื“ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืื”ืื ื“ืœื˜ ื“ื•ืจืš ื˜ืจืื›ื˜ืŸ ื“ื•ืจืš ืึท ืคึผืจื™ืกืคึผืœื™ื˜ื˜ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืึทืงื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืกื˜ืจืึทื˜ืขื’ื™ืข; ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ืžื™ืจ ื ื•ืฆืŸ ืึท ื–ื™ืš-ื’ืขืฉืจื™ื‘ืŸ ื ื•ืฆืŸ ื•ื•ืึธืก ืงืึทืœืขืงืฅ ืžื™ืกื˜ ืื•ืŸ ืงืึทืžืคึผืจืขืกื™ื– HFiles ืงืขืกื™ื™ื“ืขืจ ืื™ืŸ ื“ืขืจ ื”ื™ื ื˜ืขืจื’ืจื•ื ื˜. ืขืก ืื™ื– ื’ืึทื ืฅ ืžืขื’ืœืขืš ืึทื– ืคึฟืึทืจ DataStax ื˜ืขืกืฅ ื–ื™ื™ ืึทืœืึทืงื™ื™ื˜ื™ื“ ื‘ืœื•ื™ื– 1 ื’ืขื’ื ื˜ ืคึผืขืจ ื˜ื™ืฉ (ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืจื™ื›ื˜ื™ืง) ืื•ืŸ ื“ืึธืก ื•ื•ืึธืœื˜ ืึท ื‘ื™ืกืœ ื“ืขืจืงืœืขืจืŸ ื•ื•ืึธืก HB ืื™ื– ื’ืขื•ื•ืขืŸ ืึทื–ื•ื™ ืขืจื’ืขืจ ืื™ืŸ ื–ื™ื™ืขืจ ืœื™ื™ืขื ืขืŸ ื˜ืขืกืฅ.

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

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

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

UPD: ื“ืึทื ืง ืฆื• ื“ื™ ืขืฆื” ืคื•ืŸ ืงืึทืžืจืึทื“ื–, ืื™ืš ื’ืขืจืื˜ืŸ ืฆื• ืคืึทืจื’ื™ื›ืขืจืŸ ื“ื™ ืœื™ื™ืขื ืขืŸ. ืื™ื– ื’ืขื•ื•ืขืŸ:
159 ืึธืคึผืก (644 ื˜ื™ืฉืŸ, 4 ืกื˜ืจื™ืžื–, ืคึผืขืงืœ 5).
ืฆื•ื’ืขื’ืขื‘ืŸ:
.withLoadBalancingPolicy(new TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().build()))
ืื•ืŸ ืื™ืš ื”ืึธื‘ ื–ื™ืš ื’ืขืฉืคึผื™ืœื˜ ืžื™ื˜ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื. ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ื“ื™ ืคืืœื’ืขื ื“ืข:
4 ื˜ื™ืฉืŸ, 100 ืคึฟืขื“ืขื, ืคึผืขืงืœ = 1 (ืฉื˜ื™ืง ื“ื•ืจืš ืฉื˜ื™ืง): 301 ืึธืคึผืก
4 ื˜ื™ืฉืŸ, 100 ืคึฟืขื“ืขื, ืคึผืขืงืœ = 10: 447 ืึธืคึผืก
4 ื˜ื™ืฉืŸ, 100 ืคึฟืขื“ืขื, ืคึผืขืงืœ = 100: 625 ืึธืคึผืก

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

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

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