いつもどおりメモメモ。ちょいちょいにまとめなおしているので、そのままではありません。 適当に随時更新します。
スケールさせるためには
方法論を変えないといけない。 ツールだけ変えてもだめ(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はあるにはあるけど、お勧めしないそうな。