雨季のバンコク2泊4日旅行記 夏は苦手と言いながら、春先の憂鬱を吹き飛ばしたくて、今年も海外旅行の予定をいれてしまった。昨年20年以上ぶりに海外に足を伸ばし、旅をすると人生の栞が増えることを実感してから、だんだん旅が好きになってきたように思う。 今年の行先は雨季まっさかりのタイ・バ…
Datastoreのトランザクション エンティティグループ単位でACIDを保証 Bigtableは行単位のACIDしか保証しない。Datastoreではエンティティグループ単位でのACIDを保証している 楽観的排他制御(optimistic lock)を実装 エンティティグループのrootエンティティにて、トランザクションの最終コミット時間のタイムスタンプを記録 トランザクションの開始時に同タイムスタンプを確認し、コミット時にタイムスタンプを再度確認する タイムスタンプが変化していなければ、更新内容を保存して、タイムスタンプを更新する タイムスタンプが変化してれば、他のトランザクションとの競合が発生しているので、トランザクションをロールバックする RDBの悲観的排他制御(SELECT FOR UPDATE)のようにエンティティをロックしないので、スループットは高いが、競合時のリトライが必要
Send feedback Entities, Properties, and Keys Stay organized with collections Save and categorize content based on your preferences. Data objects in Firestore in Datastore mode are known as entities. An entity has one or more named properties, each of which can have one or more values. Entities of the same kind don't need to have the same properties, and an entity's values for a given property don'
GAE/J+Slim3の語彙・知識を元にここに解説を書く。 GAE/Goの知識とGo言語の知識が混ぜこぜで書かれているかあまり気にしてはいけない。 以下の調査結果を得るためのテストコードはここに置いた。 EntityにKeyは付属してこない structを定義する時に、そのstructに自分自身のKeyを持たせる方法はない。 EntityにIdまたはNameを自分で定義して、Putする時、Getした後にそこに忘れずにId, Nameを取り出したり移し替えたりして頑張る。 これを自動でやってくれるライブラリがgoonである。 IncompleteKeyはPutした後でも値は変わらない key := datastore.NewIncompleteKey(c, "Test", nil) newKey, err := datastore.Put(c, key, foo) // keyはIncomp
GoのフレームワークginでのBindingとValidationの挙動を調査したので忘れないうちにアウトプットしとく。 環境 Mac:OS X Mavericks Go:v1.4.2 gin:v1.0rc1 Binding&Validationのやり方 type TestForm struct { Name string `json:"name" binding:"required"` Text string `json:"text" binding:"required,max=1000"` } まず、Formを格納する構造体を定義してタグにBinding用の定義とValidation用の定義を書く。 Bindingタグの中に実施するValidationを列挙する。複数ある場合はカンマ区切りで書く。 ※評価は左から順に行い、Errorがあった場合それ以降の評価は行わない ※利用できるVa
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く