いつもどおりメモメモ。ちょいちょいにまとめなおしているので、そのままではありません。 適当に随時更新します。
スケールさせるためには
方法論を変えないといけない。 ツールだけ変えてもだめ(RDBMS→KVS)。
Bigtable?
ぶっちゃけHashMap。
- Distributed
- Sorted
- Map(Array) Sorted Mapってなんぞ?
Available Operation
- Get
- Put
- Delete
- Prefix scan(キーに対する検索)
- 前方一致
- Range scan(キーに対する検索)
- 範囲検索 ポイント
- 1つのプロパティに対してしかfilterできない
- 使えるフィルタは
<, <=, ==, =>, >
の5つ - OR, INがない
- Joinできない
- 集約関数使えない
Transaction
Single row transaction
- Atomic Put
- Read committed timestamp
- Write journal
- Apply journal
- Update committed timestamp
- Atomic Get
- Read committed timestamp
- Read entity by timestamp
Datastore
parallelでoperationできる。 スケールを出すためには、このParallelをうまく使うことが必要不可欠
- Table
- Get(+Parallel)
- Put(+Parallel)
- Delete(+Parallel)
- Prefix scan(Ancestor query)
- Index
- Prefix scan
- Range scan
Ancestor query
子テーブル(dataset)の操作にしても、親テーブル(dataset)のtimestampを更新したりしないといかん。
Single property index
kind, property name, valueのセットでindexingされる。 もともとsortされているので、orderすると実質selectが走る。
- only equality filters
- only inequality filter(which can only be of a single property)
- no filters and only one sort order on a property composit indexはあるにはあるけど、お勧めしないそうな。
See also
- #isucon 初回から参加しているベテラン選手が40代前半のいま本選当日に向けて準備したこと
- #isucon チーム「ウー馬場ーイーツ・ザ・ファイナル」でISUCON14本選に参加し21位になりました
- #isucon チーム「ウー馬場ーイー222」でISUCON13本選に参加し30位になりました
- 「SRE≠インフラなんだけどもう誤解されちゃってるから、DevOps新実装としてSite Production Engineeringはいかがでしょう?」でJAWS DAYS 2022に登壇しました #jawsdays #jawsug
- #isucon チーム「シン・ウー馬場ーイー2」でISUCON12本選に進出し12位になりました