Setsu Yuki

Japanese things and life.

緩く同期しながら複数端末でデータベース共有したい時の構成方法

緩く同期

  • 常時ネット接続のサーバーはクラウドデータだけ。簡単に言えばdropbox
  • 他の端末はしばらくネットに繋がなかったりしつつ、各端末ができるだけ最新のDBと同期しながら更新を続けていく。

  • -> これはまさしくgit リポジトリだと思う。git の仕組みを使いたい。

git の内側

qiita.com

  • 解説記事。わかりやすい。git はcommit, tree, blobのオブジェクトをハッシュ化してできている。
  • commit は誰・いつ、コミットメッセージ、親のコミットメッセージ(前回コミット)、treeを持つ
  • treeはファイル集合。パースできる。
  • blobはファイル。
  • 全員、ファイル名は自身のハッシュ

残課題

  • git のコミットは編集を構成するオブジェクト(commit, tree, blob)の集合であることがわかった。
  • あとは、push と pull, fetch mergeの仕組みがわかれば、ファイルオブジェクトだけでなくレコード管理するDBにも応用可能
  • こっちに少し書いてある。fast-fowardの話とかはないし、まだわからない部分ある。 Git - Gitの参照

  • fast-foward の話

linux.keicode.com

https://www.kernel.org/pub/software/scm/git/docs/user-manual.html#_git_user_manual