แƒ‘แƒ แƒซแƒแƒšแƒ แƒแƒ แƒ˜ แƒ˜แƒแƒ™แƒแƒซแƒฃแƒœแƒ, แƒแƒœ แƒ™แƒแƒกแƒแƒœแƒ“แƒ แƒ vs HBase. แƒกแƒ‘แƒ”แƒ แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒ”แƒก แƒฎแƒฃแƒ›แƒ แƒแƒ‘แƒแƒช แƒ™แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ”แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒแƒกแƒแƒฎแƒแƒ•แƒก แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒกแƒก แƒ“แƒ แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ’แƒแƒ˜แƒ แƒ™แƒ•แƒ”แƒ•แƒ, แƒ แƒแƒขแƒแƒ›:

แƒ‘แƒ แƒซแƒแƒšแƒ แƒแƒ แƒ˜ แƒ˜แƒแƒ™แƒแƒซแƒฃแƒœแƒ, แƒแƒœ แƒ™แƒแƒกแƒแƒœแƒ“แƒ แƒ vs HBase. แƒกแƒ‘แƒ”แƒ แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

DB-Engines Ranking-แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒแƒ แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ NoSQL แƒกแƒ•แƒ”แƒขแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒ Cassandra (แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒจแƒ˜ CS) แƒ“แƒ HBase (HB).

แƒ‘แƒ แƒซแƒแƒšแƒ แƒแƒ แƒ˜ แƒ˜แƒแƒ™แƒแƒซแƒฃแƒœแƒ, แƒแƒœ แƒ™แƒแƒกแƒแƒœแƒ“แƒ แƒ vs HBase. แƒกแƒ‘แƒ”แƒ แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒ‘แƒ”แƒ“แƒ˜แƒก แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒกแƒ‘แƒ”แƒ แƒ‘แƒแƒœแƒ™แƒจแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ›แƒ แƒ’แƒฃแƒœแƒ“แƒ›แƒ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ ะดะฐะฒะฝะพ แƒ“แƒ แƒ›แƒญแƒ˜แƒ“แƒ แƒแƒ“ แƒ—แƒแƒœแƒแƒ›แƒจแƒ แƒแƒ›แƒšแƒแƒ‘แƒก HB-แƒ—แƒแƒœ. แƒแƒ› แƒฎแƒœแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒจแƒ”แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒซแƒšแƒ˜แƒ”แƒ แƒ˜ แƒ“แƒ แƒกแƒฃแƒกแƒขแƒ˜ แƒ›แƒฎแƒแƒ แƒ”แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ. แƒ—แƒฃแƒ›แƒชแƒ, แƒแƒšแƒขแƒ”แƒ แƒœแƒแƒขแƒ˜แƒ•แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ CS-แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ’แƒ•แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒ“แƒ แƒชแƒแƒขแƒแƒ—แƒ˜ แƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒฏแƒแƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ—แƒแƒ•แƒ˜ แƒ”แƒญแƒ•แƒ˜แƒ—: แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ— แƒกแƒฌแƒแƒ แƒ˜ แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜? แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ”แƒ‘แƒ˜DataStax-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒก, แƒ แƒแƒ› CS แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒแƒฏแƒแƒ‘แƒ HB-แƒก แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒœแƒแƒ“แƒ’แƒฃแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฅแƒฃแƒšแƒ˜แƒ—. แƒ›แƒ”แƒแƒ แƒ”แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, DataStax แƒแƒ แƒ˜แƒก แƒ“แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒฎแƒแƒ แƒ” แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ— แƒ›แƒแƒ—แƒ˜ แƒกแƒ˜แƒขแƒงแƒ•แƒ. แƒฉแƒ•แƒ”แƒœแƒช แƒ“แƒแƒ’แƒ•แƒแƒ‘แƒœแƒ˜แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒชแƒ˜แƒ แƒ” แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒ› แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ’แƒ•แƒ”แƒ แƒ™แƒ•แƒ˜แƒ แƒ•แƒ˜แƒœ แƒแƒ แƒ˜แƒก BigData NoSql-แƒ˜แƒก แƒ›แƒ”แƒคแƒ” แƒ“แƒ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ.

แƒ—แƒฃแƒ›แƒชแƒ, แƒกแƒแƒœแƒแƒ› แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ–แƒ” แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒแƒ“แƒ”แƒ—, แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒแƒกแƒžแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ. แƒคแƒแƒฅแƒขแƒ˜แƒ, แƒ แƒแƒ› CS แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ“แƒแƒ™แƒแƒ แƒ’แƒ•แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก. แƒ˜แƒ›แƒแƒ—. แƒ”แƒก แƒ›แƒแƒจแƒ˜แƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ (แƒ™แƒ•แƒแƒœแƒซแƒ˜) แƒแƒ แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒ—แƒฃ แƒ แƒแƒ˜แƒ›แƒ” แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒ— แƒ˜แƒก แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒแƒ› แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ“แƒแƒ˜แƒ™แƒแƒ แƒ’แƒ”แƒ‘แƒ. แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒ‘แƒแƒœแƒ™แƒ แƒกแƒ”แƒฅแƒขแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒœแƒแƒ™แƒšแƒ˜แƒกแƒ˜ แƒ“แƒ แƒแƒ แƒ แƒฌแƒ”แƒกแƒ˜. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒกแƒšแƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ แƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒ‘แƒแƒ“แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ CS แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜ แƒกแƒแƒ›แƒ›แƒแƒ’แƒ˜ แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜, แƒ”.แƒ˜. แƒกแƒแƒฅแƒ›แƒ”แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—:

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

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒแƒ แƒ˜ แƒ’แƒ–แƒ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ‘แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒแƒœแƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“. แฒ–แƒแƒ’แƒแƒ“แƒ˜ แƒฌแƒ”แƒกแƒ˜:
NW + NR > RF

แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒกแƒแƒก (NW) แƒžแƒšแƒฃแƒก แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒแƒก (NR) แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒฅแƒขแƒแƒ แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, RF = 3, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜แƒ:
2 + 2 > 3
3 + 1 > 3

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒคแƒฃแƒœแƒ“แƒแƒ›แƒ”แƒœแƒขแƒฃแƒ แƒแƒ“ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒแƒ“ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ, แƒแƒ แƒฉแƒ”แƒฃแƒšแƒ˜แƒ 3+1 แƒกแƒฅแƒ”แƒ›แƒ. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, HB แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ˜แƒ—, แƒ”.แƒ˜. แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ แƒฃแƒคแƒ แƒ แƒกแƒแƒ›แƒแƒ แƒ—แƒšแƒ˜แƒแƒœแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.

แƒฃแƒœแƒ“แƒ แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒแƒก, แƒ แƒแƒ› DataStax-แƒ›แƒ แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ แƒ›แƒแƒ— แƒ™แƒ•แƒšแƒ”แƒ•แƒแƒจแƒ˜, แƒ›แƒแƒ— แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒก RF = 1 แƒ แƒแƒ’แƒแƒ แƒช CS-แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒกแƒ”แƒ•แƒ” HB-แƒกแƒ—แƒ•แƒ˜แƒก (แƒแƒ› แƒฃแƒ™แƒแƒœแƒแƒกแƒ™แƒœแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก HDFS แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒ—). แƒ”แƒก แƒ›แƒแƒ แƒ—แƒšแƒแƒช แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒ CS-แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ–แƒ” แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฃแƒ–แƒแƒ แƒ›แƒแƒ–แƒแƒ แƒ˜แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒ’แƒ•แƒ˜แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก CS-แƒจแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒกแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒแƒ˜แƒก แƒ–แƒ แƒ“แƒแƒก:

แƒ‘แƒ แƒซแƒแƒšแƒ แƒแƒ แƒ˜ แƒ˜แƒแƒ™แƒแƒซแƒฃแƒœแƒ, แƒแƒœ แƒ™แƒแƒกแƒแƒœแƒ“แƒ แƒ vs HBase. แƒกแƒ‘แƒ”แƒ แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒก: แƒ แƒแƒช แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜ แƒ™แƒแƒœแƒ™แƒฃแƒ แƒ”แƒœแƒขแƒ˜ แƒซแƒแƒคแƒ”แƒ‘แƒ˜ แƒฌแƒ”แƒ แƒ”แƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก, แƒ›แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒ”แƒก แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ, แƒ แƒแƒ› RF=3-แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ”แƒ’แƒ แƒแƒ“แƒแƒชแƒ˜แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒ˜แƒงแƒแƒก. แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ แƒแƒ› แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ—แƒฃ แƒฉแƒแƒ•แƒฌแƒ”แƒ แƒ— 4 แƒซแƒแƒคแƒก 5 แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒจแƒ˜ (แƒกแƒฃแƒš 20), แƒ›แƒแƒจแƒ˜แƒœ RF=3 แƒ™แƒแƒ แƒ’แƒแƒ•แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 2-แƒฏแƒ”แƒ  (150 แƒฌแƒแƒ›แƒ˜ RF=3-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก 75-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก RF=1-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก). แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ’แƒแƒ•แƒ–แƒ แƒ“แƒ˜แƒ— แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ— 8 แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ 5 แƒซแƒแƒคแƒ˜แƒ— (แƒกแƒฃแƒš 40), แƒ›แƒแƒจแƒ˜แƒœ RF=3-แƒ˜แƒก แƒ“แƒแƒ™แƒแƒ แƒ’แƒ•แƒ แƒฃแƒ™แƒ•แƒ” 2,7-แƒฏแƒ”แƒ  (375 แƒฌแƒแƒ›แƒ˜ 138-แƒ˜แƒก แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’).

แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ, แƒœแƒแƒฌแƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ• แƒ”แƒก แƒแƒ แƒ˜แƒก DataStax-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  CS-แƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒแƒขแƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœแƒก แƒกแƒขแƒ”แƒœแƒ“แƒ–แƒ” HB-แƒกแƒ—แƒ•แƒ˜แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒก 2-แƒ“แƒแƒœ 3-แƒ›แƒ“แƒ” แƒจแƒ”แƒชแƒ•แƒšแƒแƒก แƒแƒ แƒแƒœแƒแƒ˜แƒ แƒ˜ แƒ”แƒคแƒ”แƒฅแƒขแƒ˜ แƒแƒ  แƒ›แƒแƒฐแƒงแƒแƒšแƒ˜แƒ. แƒ˜แƒ›แƒแƒ—. แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก HB แƒ‘แƒแƒ—แƒšแƒ˜. แƒ—แƒฃแƒ›แƒชแƒ แƒแƒฅ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒกแƒฎแƒ•แƒ แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฃแƒœแƒ“แƒ แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒแƒก, แƒ แƒแƒ› HB-แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒ˜แƒงแƒ แƒแƒ“แƒœแƒแƒ• แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ’แƒแƒ แƒ”แƒ›แƒ แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ.แƒจ. แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ แƒ˜แƒกแƒ˜แƒช, แƒ แƒแƒ› แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ  แƒ•แƒ˜แƒชแƒ˜ แƒ แƒแƒ’แƒแƒ  แƒ›แƒแƒ•แƒแƒ›แƒ–แƒแƒ“แƒ CS แƒกแƒฌแƒแƒ แƒแƒ“ แƒ“แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฃแƒคแƒ แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒ’แƒ–แƒ”แƒ‘แƒ˜ แƒ›แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ˜แƒ›แƒ”แƒ“แƒ˜แƒ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ”แƒ•แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜.

แƒงแƒ•แƒ”แƒšแƒ แƒขแƒ”แƒกแƒขแƒ˜ แƒฉแƒแƒขแƒแƒ แƒ“แƒ แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ“แƒ’แƒ”แƒ‘แƒแƒ“แƒ 4 แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒกแƒ’แƒแƒœ, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒ—:

แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜: Xeon E5-2680 v4 @ 2.40 GHz 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
hints_directory: /data10/cassandra/hints
แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜_flush_period_in_ms: 10000
max_hints_file_size_in_mb: 128
batchlog_replay_throttle_in_kb: 1024
แƒแƒ•แƒ—แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜: AllowAllAuthenticator
แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜: AllowAllAuthorizer
role_manager: CassandraRoleManager
roles_validity_in_ms: 2000
permissions_validity_in_ms: 2000
credentials_validity_in_ms: 2000
partitioner: org.apache.cassandra.dht.Murmur3Partitioner
data_file_directories:
- /data1/cassandra/data # แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ dataN แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒชแƒแƒšแƒ™แƒ” แƒ“แƒ˜แƒกแƒ™แƒ˜แƒ
- /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: false
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:
counter_cache_save_period: 7200
saved_caches_directory: /data10/cassandra/saved_caches
commitlog_sync: แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒฃแƒšแƒ˜
commitlog_sync_period_in_ms: 10000
commitlog_segment_size_in_mb: 32
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ—:
- แƒ—แƒ”แƒกแƒšแƒ˜: "*,*"
แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“_แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒ˜: 256 # แƒกแƒชแƒแƒ“แƒ 64 - แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒแƒ  แƒจแƒ”แƒ˜แƒ›แƒฉแƒœแƒ”แƒ•แƒ
concurrent_แƒฌแƒ”แƒ แƒก: 256 # แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ 64 - แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒแƒ  แƒจแƒ”แƒ˜แƒ›แƒฉแƒœแƒ”แƒ•แƒ
concurrent_counter_write: 256 # แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ 64 - แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒแƒ  แƒจแƒ”แƒ˜แƒ›แƒฉแƒœแƒ”แƒ•แƒ
concurrent_materialized_view_แƒฌแƒ”แƒ แƒก: 32
memtable_heap_space_in_mb: 2048 # แƒกแƒชแƒแƒ“แƒ” 16 แƒ’แƒ‘ - แƒฃแƒคแƒ แƒ แƒœแƒ”แƒšแƒ˜ แƒ˜แƒงแƒ
memtable_allocation_type: heap_buffers
index_summary_capacity_in_mb:
index_summary_resize_interval_in_แƒฌแƒฃแƒ—แƒ”แƒ‘แƒจแƒ˜: 60
trickle_fsync: แƒ›แƒชแƒ“แƒแƒ แƒ˜
trickle_fsync_interval_in_kb: 10240
แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก_แƒžแƒแƒ แƒขแƒ˜: 7000
ssl_storage_port: 7001
listen_address: *
แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก_แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜: *
listen_on_broadcast_address: แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ
internode_authenticator: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
start_native_transport: แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ
แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜_แƒขแƒ แƒแƒœแƒกแƒžแƒแƒ แƒขแƒ˜_แƒžแƒแƒ แƒขแƒ˜: 9042
start_rpc: แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ
rpc_address: *
rpc_port: 9160
rpc_keepalive: แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ
rpc_server_type: แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ
thrift_framed_transport_size_in_mb: 15
incremental_backups: false
snapshot_before_compaction: false
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
server_encryption_options:
internode_encryption: แƒแƒ แƒชแƒ”แƒ แƒ—แƒ˜
client_encryption_options:
แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ: แƒงแƒแƒšแƒ‘แƒ˜
internode_compression: dc
inter_dc_tcp_nodelay: แƒ›แƒชแƒ“แƒแƒ แƒ˜
tracetype_query_ttl: 86400
tracetype_repair_ttl: 604800
enable_user_defined_functions: false
enable_scripted_user_defined_functions: false
windows_timer_interval: 1
transparent_data_encryption_options:
แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ: แƒงแƒแƒšแƒ‘แƒ˜
แƒกแƒแƒคแƒšแƒแƒ•แƒ˜แƒก แƒฅแƒ•แƒ_แƒ’แƒแƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก_แƒ–แƒฆแƒฃแƒ แƒ‘แƒšแƒ˜: 1000
แƒกแƒแƒคแƒšแƒแƒ•แƒ˜แƒก แƒฅแƒ•แƒ_แƒฉแƒแƒ•แƒแƒ แƒ“แƒœแƒ˜แƒก_แƒ–แƒฆแƒฃแƒ แƒ‘แƒšแƒ˜: 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: false
enable_materialized_views: แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ
enable_sasi_indexes: true

GC แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜:

### CMS แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜-XX:+UseParNewGC
-XX:+แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”ConcMarkSweepGC
-XX:+CMSParallelRemark แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ
-XX:Survivor Ratio=8
-XX:MaxTenuringThreshold=1
-XX:CMSInitiating OccupancyFraction=75
-XX:+UseCMSInitiating OccupancyOnly
-XX:CMSWaitDuration=10000
-XX:+CMSParallelInitialMarkEnabled
-XX:+CMSEdenChunksRecordAlways
-XX:+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 แƒฌแƒฃแƒ—แƒ˜
hbase.client.scanner.timeout.แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜: 2 แƒฌแƒฃแƒ—แƒ˜
hbase.master.handler.count: 10
hbase.regionserver.lease.period, hbase.client.scanner.timeout.แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜: 2 แƒฌแƒฃแƒ—แƒ˜
hbase.regionserver.handler.count: 160
hbase.regionserver.metahandler.count: 30
hbase.regionserver.logroll.แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜: 4 แƒกแƒแƒแƒ—แƒ˜
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.major compaction: 1 แƒ“แƒฆแƒ”(แƒ”แƒ‘แƒ˜)
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:+CMSParallelRemark แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜แƒ -XX:ReservedCodeCacheSize=256m
hbase.snapshot.master.timeoutMillis: 2 แƒฌแƒฃแƒ—แƒ˜
hbase.snapshot.region.timeout: 2 แƒฌแƒฃแƒ—แƒ˜
hbase.snapshot.master.timeout.millis: 2 แƒฌแƒฃแƒ—แƒ˜
HBase REST แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒ–แƒแƒ›แƒ: 100 MiB
HBase REST แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒšแƒแƒ’แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ แƒแƒกแƒšแƒ”แƒ‘แƒ˜: 5
HBase Thrift Server Max Log แƒ–แƒแƒ›แƒ: 100 MiB
HBase Thrift แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒšแƒแƒ’แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ แƒแƒกแƒšแƒ”แƒ‘แƒ˜: 5
Master Max Log แƒ–แƒแƒ›แƒ: 100 MiB
แƒšแƒแƒ’แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒ›แƒแƒ’แƒ˜แƒกแƒขแƒ แƒ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ แƒแƒกแƒšแƒ”แƒ‘แƒ˜: 5
RegionServer Max Log แƒ–แƒแƒ›แƒ: 100 MiB
RegionServer แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ แƒแƒกแƒšแƒ”แƒ‘แƒ˜: 5
HBase Active Master Detection Window: 4 แƒฌแƒฃแƒ—แƒ˜
dfs.client.hedged.read.threadpool.size: 40
dfs.client.hedged.read.threshold.millis: 10 แƒ›แƒ˜แƒšแƒ˜แƒฌแƒแƒ›(แƒ”แƒ‘แƒ˜)
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.size: 20
แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒงแƒ•แƒแƒœแƒ˜ แƒ—แƒ”แƒ›แƒ”แƒ‘แƒ˜: 6
แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก Java Heap แƒ–แƒแƒ›แƒ แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒจแƒ˜: 1 แƒ’แƒ˜แƒ‘แƒแƒ˜แƒขแƒ˜
HBase REST แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒฏแƒ’แƒฃแƒคแƒ˜: 3 แƒ’แƒ˜แƒ‘แƒแƒ˜แƒขแƒ˜
HBase Thrift แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒฏแƒ’แƒฃแƒคแƒ˜: 3 แƒ’แƒ˜แƒ‘แƒแƒ˜แƒขแƒ˜
Java Heap HBase Master-แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒจแƒ˜: 16 แƒ’แƒ˜แƒ‘แƒแƒ˜แƒขแƒ˜
Java Heap HBase RegionServer-แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒจแƒ˜: 32 แƒ’แƒ˜แƒ‘แƒแƒ˜แƒขแƒ˜

+ZooKeeper
maxClientCnxns: 601
maxSessionTimeout: 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 แƒ‘แƒแƒ˜แƒขแƒ˜ (dataSize). แƒกแƒแƒ”แƒ แƒ—แƒ แƒฏแƒแƒ›แƒจแƒ˜, แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ” 100 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒแƒ“แƒ แƒ“แƒ แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒแƒ“แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ›แƒแƒ’แƒ˜แƒ“แƒแƒ–แƒ” แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒ/แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ 5 แƒ—แƒ”แƒ›แƒ (แƒซแƒแƒคแƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜ - thNum), แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒ’แƒแƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ›แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ“แƒ˜แƒแƒžแƒแƒ–แƒแƒœแƒ˜ (แƒ—แƒ•แƒšแƒ = 5 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜):

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);
}

แƒแƒฎแƒšแƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ - แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜:

แƒ‘แƒ แƒซแƒแƒšแƒ แƒแƒ แƒ˜ แƒ˜แƒแƒ™แƒแƒซแƒฃแƒœแƒ, แƒแƒœ แƒ™แƒแƒกแƒแƒœแƒ“แƒ แƒ vs HBase. แƒกแƒ‘แƒ”แƒ แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—:

แƒ‘แƒ แƒซแƒแƒšแƒ แƒแƒ แƒ˜ แƒ˜แƒแƒ™แƒแƒซแƒฃแƒœแƒ, แƒแƒœ แƒ™แƒแƒกแƒแƒœแƒ“แƒ แƒ vs HBase. แƒกแƒ‘แƒ”แƒ แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

HB-แƒ˜แƒก แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ แƒ˜แƒ›แƒ“แƒ”แƒœแƒแƒ“ แƒ’แƒแƒกแƒแƒ™แƒ•แƒ˜แƒ แƒ˜แƒ, แƒ แƒแƒ› แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ”แƒญแƒ•แƒ˜, แƒ แƒแƒ› CS-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ. แƒ—แƒฃแƒ›แƒชแƒ, Google-แƒ›แƒ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒจแƒ™แƒแƒ แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒแƒ› (แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ concurrent_writes แƒแƒœ memtable_heap_space_in_mb) แƒแƒ  แƒ“แƒแƒแƒฉแƒฅแƒแƒ แƒ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒ›แƒแƒ แƒ”แƒ‘แƒ˜ แƒกแƒฃแƒคแƒ—แƒแƒ แƒ“แƒ แƒแƒ แƒแƒคแƒ”แƒ แƒ–แƒ” แƒ’แƒ”แƒคแƒ˜แƒชแƒ”แƒ‘แƒ˜.

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ—แƒแƒœแƒแƒ‘แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒœแƒแƒฌแƒ˜แƒšแƒ“แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒจแƒ˜, แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒ“แƒแƒœ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒ”แƒ แƒ—แƒœแƒแƒ˜แƒ แƒ˜ แƒ˜แƒงแƒ.

แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒ“แƒแƒœKeyspace: ks
แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ: 9383707
แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒงแƒแƒ•แƒœแƒ”แƒ‘แƒ: 0.04287025042448576 ms
แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ: 15462012
แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒงแƒแƒ•แƒœแƒ”แƒ‘แƒ: 0.1350068438699957 ms
แƒ›แƒแƒ›แƒšแƒแƒ“แƒ˜แƒœแƒ” แƒ’แƒแƒ›แƒแƒฌแƒฃแƒ แƒ•แƒ”แƒ‘แƒ˜: 0
แƒชแƒฎแƒ แƒ˜แƒšแƒ˜: t1
SST-แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ: 16
แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒแƒ แƒ—แƒ˜ (แƒšแƒแƒ˜แƒ•แƒจแƒ˜): 148.59 MiB
แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒแƒ แƒ—แƒ˜ (แƒกแƒฃแƒš): 148.59 MiB
แƒกแƒœแƒ”แƒžแƒจแƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ•แƒ แƒชแƒ” (แƒกแƒฃแƒš): 0 แƒ‘แƒแƒ˜แƒขแƒ˜
แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ (แƒกแƒฃแƒš): 5.17 MiB
SSTable แƒจแƒ”แƒ™แƒฃแƒ›แƒจแƒ•แƒ˜แƒก แƒ™แƒแƒ”แƒคแƒ˜แƒชแƒ˜แƒ”แƒœแƒขแƒ˜: 0.5720989576459437
แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ (แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ): 3970323
Memtable แƒฃแƒฏแƒ แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ: 0
Memtable แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ–แƒแƒ›แƒ: 0 แƒ‘แƒแƒ˜แƒขแƒ˜
แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ Memtable off heap แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ: 0 แƒ‘แƒแƒ˜แƒขแƒ˜
Memtable แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ: 5
แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ: 2346045
แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒจแƒ”แƒงแƒแƒ•แƒœแƒ”แƒ‘แƒ: NaN ms
แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ: 3865503
แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒšแƒแƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒงแƒแƒ•แƒœแƒ”แƒ‘แƒ: NaN ms
แƒ›แƒแƒ›แƒšแƒแƒ“แƒ˜แƒœแƒ” แƒ’แƒแƒ›แƒแƒฌแƒฃแƒ แƒ•แƒ”แƒ‘แƒ˜: 0
แƒžแƒ แƒแƒชแƒ”แƒœแƒขแƒ˜ แƒ’แƒแƒ แƒ”แƒ›แƒแƒœแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜: 0.0
Bloom filter แƒชแƒ แƒฃ แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜: 25
แƒแƒงแƒ•แƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒชแƒ แƒฃ แƒ—แƒแƒœแƒแƒคแƒแƒ แƒ“แƒแƒ‘แƒ: 0.00000
แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ Bloom แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”: 4.57 MiB
Bloom filter off heap memory แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜: 4.57 MiB
แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ แƒแƒ•แƒ˜แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒก แƒจแƒ”แƒฏแƒแƒ›แƒ”แƒ‘แƒ: 590.02 KiB
แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ™แƒฃแƒ›แƒจแƒ•แƒ˜แƒก แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒ แƒแƒ•แƒ˜แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ: 19.45 KiB
แƒ™แƒแƒ›แƒžแƒแƒฅแƒขแƒฃแƒ แƒ˜ แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜: 36
แƒ™แƒแƒ›แƒžแƒแƒฅแƒขแƒฃแƒ แƒ˜ แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜: 42
แƒ™แƒแƒ›แƒžแƒแƒฅแƒขแƒฃแƒ แƒ˜ แƒ“แƒแƒœแƒแƒงแƒแƒคแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒ‘แƒแƒ˜แƒขแƒ˜: 42
แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒชแƒแƒชแƒฎแƒแƒšแƒ˜ แƒฃแƒฏแƒ แƒ”แƒ“แƒ”แƒ‘แƒ˜ แƒ—แƒ˜แƒ—แƒ แƒœแƒแƒญแƒ”แƒ แƒ–แƒ” (แƒ‘แƒแƒšแƒ แƒฎแƒฃแƒ—แƒ˜ แƒฌแƒฃแƒ—แƒ˜): NaN
แƒชแƒแƒชแƒฎแƒแƒšแƒ˜ แƒฃแƒฏแƒ แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ—แƒ˜แƒ—แƒ แƒœแƒแƒญแƒ”แƒ แƒ–แƒ” (แƒ‘แƒแƒšแƒ แƒฎแƒฃแƒ—แƒ˜ แƒฌแƒฃแƒ—แƒ˜): 0
แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒกแƒแƒคแƒšแƒแƒ•แƒ˜แƒก แƒฅแƒ•แƒ”แƒ‘แƒ˜ แƒ—แƒ˜แƒ—แƒ แƒœแƒแƒญแƒ”แƒ แƒ–แƒ” (แƒ‘แƒแƒšแƒ แƒฎแƒฃแƒ—แƒ˜ แƒฌแƒฃแƒ—แƒ˜): NaN
แƒกแƒแƒคแƒšแƒแƒ•แƒ˜แƒก แƒฅแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒ—แƒ˜แƒ—แƒ แƒœแƒแƒญแƒ”แƒ แƒ–แƒ” (แƒ‘แƒแƒšแƒ แƒฎแƒฃแƒ—แƒ˜ แƒฌแƒฃแƒ—แƒ˜): 0
แƒแƒ›แƒแƒ•แƒแƒ แƒ“แƒœแƒ˜แƒšแƒ˜ แƒ›แƒฃแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜: 0 แƒ‘แƒแƒ˜แƒขแƒ˜

แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒแƒ› (แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ˜แƒœแƒ“แƒ˜แƒ•แƒ˜แƒ“แƒฃแƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ) แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒแƒ  แƒ›แƒแƒฐแƒงแƒแƒšแƒ˜แƒ, แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒแƒฃแƒแƒ แƒ”แƒกแƒ“แƒ. แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒšแƒแƒช แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ CS-แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ CS-แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜แƒ DataStax-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒก - แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒแƒ—แƒแƒกแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ แƒฌแƒแƒ›แƒจแƒ˜. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก, แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ—, แƒ แƒแƒ› CS แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒ›แƒ”แƒข CPU-แƒก แƒ“แƒ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒก:

แƒ‘แƒ แƒซแƒแƒšแƒ แƒแƒ แƒ˜ แƒ˜แƒแƒ™แƒแƒซแƒฃแƒœแƒ, แƒแƒœ แƒ™แƒแƒกแƒแƒœแƒ“แƒ แƒ vs HBase. แƒกแƒ‘แƒ”แƒ แƒ‘แƒแƒœแƒ™แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ
แƒคแƒ˜แƒ’แƒฃแƒ แƒแƒจแƒ˜ แƒœแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒ แƒ–แƒ”แƒ“แƒ˜แƒ–แƒ”แƒ“ แƒงแƒ•แƒ”แƒšแƒ แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒ•แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ HB-แƒ˜แƒก แƒ›แƒซแƒšแƒแƒ•แƒ  แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒแƒก. แƒแƒฅ แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ แƒแƒ› แƒแƒ แƒ˜แƒ•แƒ” แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒ“แƒ แƒแƒก แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒกแƒแƒ“ แƒ“แƒแƒ‘แƒแƒšแƒ˜แƒ (แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒชแƒ˜แƒ™แƒšแƒ˜แƒก แƒ‘แƒแƒšแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“ CS-แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒแƒ แƒ˜แƒก 15:20-แƒ“แƒแƒœ 15:40-แƒ›แƒ“แƒ”). HB-แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜แƒ โ€“ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜, memstore-แƒจแƒ˜ แƒ™แƒ˜แƒ“แƒ˜แƒ, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ™แƒ˜ แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ‘แƒšแƒแƒ™แƒฅแƒ”แƒจแƒจแƒ˜. แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ CS-แƒก, แƒแƒ แƒช แƒ˜แƒกแƒ” แƒœแƒแƒ—แƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ  แƒฉแƒแƒœแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ แƒ˜แƒงแƒ แƒฉแƒแƒ แƒ—แƒแƒ— แƒฅแƒ”แƒจแƒ˜ row_cache_size_in_mb = 2048 แƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ = {'keys': 'ALL', 'rows_per_partition': '2000000'}, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒแƒœ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒ’แƒแƒแƒฃแƒแƒ แƒ”แƒกแƒ.

แƒแƒกแƒ”แƒ•แƒ”, แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒฃแƒœแƒ“แƒ แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒแƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜ HB-แƒจแƒ˜ แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ˜แƒงแƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช 64. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ“แƒ แƒ’แƒแƒฃแƒขแƒแƒšแƒ”แƒ‘แƒ—, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, 4-แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒแƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ” แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ 2-แƒฏแƒ”แƒ . แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› memstore แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ˜แƒ•แƒกแƒ”แƒ‘แƒ แƒ“แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒฃแƒคแƒ แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ˜แƒ แƒ”แƒชแƒฎแƒ”แƒ‘แƒ แƒ“แƒ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒแƒก แƒ›แƒ”แƒขแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒแƒญแƒ˜แƒ แƒ, แƒ แƒแƒช แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ แƒ—แƒฃแƒšแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒ HB-แƒกแƒ—แƒ•แƒ˜แƒก. แƒ แƒ”แƒแƒšแƒฃแƒ  แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒจแƒ˜, แƒแƒ›แƒ˜แƒก แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ’แƒแƒงแƒแƒคแƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒแƒ›แƒžแƒแƒฅแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒขแƒ แƒแƒขแƒ”แƒ’แƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—; แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ—แƒ•แƒ˜แƒ—แƒœแƒแƒฌแƒ”แƒ แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒก แƒœแƒแƒ’แƒแƒ•แƒก แƒ“แƒ แƒแƒ™แƒฃแƒ›แƒจแƒแƒ•แƒก HFiles แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒแƒ“ แƒคแƒแƒœแƒ–แƒ”. แƒกแƒแƒ•แƒกแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ› DataStax แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ— แƒ’แƒแƒ›แƒแƒ”แƒงแƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ 1 แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ˜ แƒ—แƒ˜แƒ—แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ–แƒ” (แƒ แƒแƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒฌแƒแƒ แƒ˜) แƒ“แƒ แƒ”แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒฌแƒ˜แƒšแƒแƒ“ แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒแƒ•แƒก, แƒ—แƒฃ แƒ แƒแƒขแƒแƒ› แƒ˜แƒงแƒ HB แƒแƒกแƒ” แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒจแƒ˜.

แƒแƒฅแƒ”แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”แƒแƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ แƒ˜ แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜. แƒ—แƒฃ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ™แƒแƒกแƒแƒœแƒ“แƒ แƒ แƒฐแƒ’แƒแƒ•แƒก แƒ™แƒแƒšแƒแƒกแƒก แƒ—แƒ˜แƒฎแƒ˜แƒก แƒขแƒ”แƒ แƒคแƒ”แƒ‘แƒ˜แƒ—. แƒฃแƒคแƒ แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒก แƒ”แƒ แƒ— แƒคแƒ”แƒฎแƒ–แƒ” แƒ‘แƒแƒšแƒแƒœแƒกแƒก แƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ”, แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒ แƒ’ แƒจแƒ”แƒ“แƒ”แƒ’แƒก แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒ›แƒแƒ•แƒ” แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒฉแƒฎแƒฃแƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ˜แƒก แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒแƒ’แƒ”แƒ‘แƒก. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœแƒก แƒแƒžแƒแƒ แƒแƒขแƒฃแƒ แƒแƒ–แƒ” CPU-แƒ˜แƒก แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— แƒแƒ แƒ˜ RegionServer HB-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒ แƒฐแƒแƒกแƒขแƒ–แƒ” แƒ“แƒ แƒแƒ›แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒแƒ แƒ›แƒแƒ’แƒ”แƒ— แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ. แƒ˜แƒ›แƒแƒ—. แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ—, 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

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ