Bigtableã¨Smalltable
App Engineã«ããè¨è¨ææ³ã§ã²ã¨ã¤ç§ãå®æ¡ä»¶ã§è©¦ãã¦ãªããªããã¾ããã£ãã¨æã£ãã®ã¯ããSmalltableãã£ã¦ç§ãåæã«å¼ãã§ããã¢ã¼ããã¯ãã£ã§ããç°¡åã«ããã¨ããè¤æ°ã¯ã©ã¤ã¢ã³ãã®ãã¼ã«ã«ã®SQLiteéãDatastoreãä»ãã¦åæãããä»çµã¿ã§ãï¼ããããã®ä¸è¬ã«ä½ãã¿ã¼ã³ã¨è¨ãã®ã§ãããâ¦æãã¦ãã ããï¼ï¼ã
- ã¯ã©ã¤ã¢ã³ãã¯HTML5ãAIRãiPhoneãAndroidçã®ãªããã¯ã©ã¤ã¢ã³ãã§ï¼å®éã«å®è£ ããã®ã¯AIRã¨iPhoneã§ãï¼ãSQLiteçã®å°è¦æ¨¡RDBï¼ä»¥ä¸ãSmalltableï¼ããã¼ã«ã«ã«æã¤ãã¨ãåæ
- Smalltableã¯ãDatastoreãä¿æãããã¹ã¦ã®ãã¼ã¿ã®ãã¡ããã®ã¦ã¼ã¶ã¼ã常æ使ç¨ãããã¼ã¿ã®ã¿ä¿æãããµãã»ãã
- ã¢ããªã±ã¼ã·ã§ã³ã®å¤§åã®ãã¸ãã¯ããªããã¯ã©ã¤ã¢ã³ãå
ã®Smalltableã ãã§å®è£
ãã
- ãã¹ã¦ã®ã¬ã³ã¼ãã«ã¯ã¯ã©ã¤ã¢ã³ãå´ã§GUID/UUIDãå²ãæ¯ããã¾ããµã¼ãã¼ã¨åæããæã®ã¿ã¤ã ã¹ã¿ã³ããæããã
- ãµã¼ãã¼ã¨åæãã¨ãã¦ãªãdirtyãªã¬ã³ã¼ãã¯ãã¼ã¯
- Smalltableã¨ãµã¼ãã¼ã®Datastoreéãé©åãªã¿ã¤ãã³ã°ã§åæãã
- ãµã¼ãã¼å´ã§ã¯Oracleã®SCNã«ç¸å½ããã°ãã¼ãã«ãªã¿ã¤ã ã¹ã¿ã³ããåå¾ãåææç¹ã®ã¿ã¤ã ã¹ã¿ã³ããTnowã¨ãã
- ãµã¼ãã¼å´ã«ã¯ã¯ã©ã¤ã¢ã³ãå´ã¨åãã¹ãã¼ãã§ãã¼ãã«ï¼ã«ã¤ã³ãï¼ãç¨æãã¦ãã
- ãµã¼ãã¼âã¯ã©ã¤ã¢ã³ãã®åæ
- ã¯ã©ã¤ã¢ã³ãã®ååã®åææç¹ToldããTnowã¾ã§ã«æ´æ°ãããã¬ã³ã¼ããã¯ã©ã¤ã¢ã³ãã«éä¿¡ãã
- ã¯ã©ã¤ã¢ã³ãâãµã¼ãã¼ã®åæ
- Smalltableä¸ã®dirtyãªã¬ã³ã¼ãããµã¼ãã¼ã«éä¿¡ãã
- ã¯ã©ã¤ã¢ã³ãããåä¿¡ããdirtyãªã¬ã³ã¼ããã¹ã¦ã«Tnowãä»ãã¦Datastoreã«ä¿åããããã ããåãGUIDã®ã¬ã³ã¼ããDatastoreã«åå¨ãããããTold以éã®ã¿ã¤ã ã¹ã¿ã³ããæã¤å ´åã¯ãä»ã¯ã©ã¤ã¢ã³ãã¨ç«¶åãã¦ããã®ã§åæããªãï¼æ¥½è¦³æä»ï¼
- ä»txã¨ã®ç«¶åãæ¤åºãããªããã°ãåæãæåããã¬ã³ã¼ãã®GUIDä¸è¦§ãã¯ã©ã¤ã¢ã³ãã«è¿ã
- ã¯ã©ã¤ã¢ã³ãã§ã¯åææ¸ã¿GUIDä¸è¦§ã«åºã¥ãã¦dirtyãã¼ã¯ãå¤ãã¦Tnowãè¨é²ãããdirtyãªã¾ã¾æ®ã£ãã¬ã³ã¼ãï¼ï¼ç«¶åããã¬ã³ã¼ãï¼ã¯ã¦ã¼ã¶ã¼ã«æ示çã«ãã¼ã¸ããã
ãã®æ¹æ³ã®ã¡ãªããï¼
- ã¢ããªã±ã¼ã·ã§ã³ãã¸ãã¯ã®å¤§åã¯å¾æ¥éãSQLãjoinããªããªä½¿ã£ã¦æ¸ãããDatastoreã®å¶éã«æ©ãå±é¢ãå°ãªããªã
- ãµã¼ãã¹å ¨ä½ã¯Datastoreã®ã¹ã±ã¼ã©ããªãã£ãä½ã³ã¹ãæ§ãé«å¯ç¨æ§ããã®ã¾ã¾äº«åã§ãã
- ã¢ããªã±ã¼ã·ã§ã³æ©è½ã®å¤§åããªãã©ã¤ã³ã§ã使ãã
- ã¢ããªã±ã¼ã·ã§ã³ã®ãã¸ãã¯ã¯SQLiteã«å¾éãããããããããããµã¼ãã¼ã®ç¶æ³ã«ä¾åããããããåã
- ãã¼ã«ã«ã®SQLiteããã©ã³ã¶ã¯ã·ã§ãã«ãªåæ£ãã£ãã·ã¥ã¨ãã¦ä½¿ãã
- ä¸è¬çãªWebã¢ããªã«æ¯ã¹ã¦ãµã¼ãã¼ã¸ã®ãªã¯ã¨ã¹ãæ°ã1ã±ã¿ä»¥ä¸å°ãªããªãï¼åæãªã¯ã¨ã¹ãã®ã¿ï¼
ä¸æ¹ãã¡ãªããã¯ï¼
- ã¦ã¼ã¶ã¼ãã¢ã¯ã»ã¹ãããã¼ã¿å¯¾è±¡ãç¹å®ç¯å²ã«çµãããããªç¨éã«ã®ã¿æå¹ï¼ãã¨ãã°twitterã®TLã¨ãï¼
- ããµã¼ãã¹ä¸ã®å ¨ãã¼ã¿ã対象ã«æ¤ç´¢ãçã®ãã¸ãã¯ã¯ãµã¼ãã¼å´ã§ã®å®è£ ãä¸å¯æ¬
- æ´æ°ã®ç«¶åãçºçããããç¨éãé »ç¹ãªæä»ãå¿ è¦ãªç¨éï¼ä¾ãã°å¨åº«ç®¡çãé£çªã®æ¡çªãã¦ãã¼ã¯å¶ç´ã¨ãï¼ãåæ§
- Smalltableã¯ã¹ã±ã¼ã«ããªãããã¼ã«ã«ã®ãã¼ã¿ã大ãããªãã¨é ããªã
- Smalltableã®ã¹ãã¼ãå¤æ´ãé¢å
- ã¯ã©ã¤ã¢ã³ãã¢ããªã®åã¤ã³ã¹ãã¼ã«çã§Smalltableã«ãã¼ã¿ãä¸æ¬ãã¦ã³ãã¼ãããã®ã«æéãããã
- åé¤ã¯è«çåé¤ã®ã¿ã§ãã¼ã¿ãã©ãã©ããã¾ã
â¦ã£ã¦æãã§ããHTML5/AIR/iPhone/Androidçã®ãªããã¯ã©ã¤ã¢ã³ãã§App Engineé£æºããå ´åã¯ãªããªã便å©ãªä»çµã¿ã¨æãã¾ãã
Smalltableã¯ãã©ã³ã¶ã¯ã·ã§ãã«ãªåæ£ãã£ãã·ã¥ï¼12/27追è¨ï¼
å¤æ©ããã®ãRDBに代わるスケーラブルなデータモデルの必要性ããèªãã§æãã¾ããããSmalltableã«ã¯ããã©ã³ã¶ã¯ã·ã§ãã«ï¼ï¼ACIDç¹æ§ãåããï¼ãªåæ£ãã£ãã·ã¥ãã¨ããå´é¢ãããã¾ããããã¡ããSQLiteã¯memcachedçã«æ¯ã¹ã¦ããéãã«é ãï¼ã®ã§AIRå®è£ ã§ã¯ããã«DAOã§ãã£ãã·ã¥ã¨ããã¦ãï¼ã§ãããã¤ã³ã¿ã¼ãããã®åããã«ãããµã¼ãã¼ã«å¯¾ããã¯ã©ã¤ã¢ã³ãå´ã®ãã£ãã·ã¥ã¨ãã¦å¤§ããªå¹æãããã¾ããå®éã«ãã®æ¹å¼ã§å®è£ ããã¢ããªã®ã¬ã¹ãã³ã¹æ§ã¯ããããã¯ã¼ã¯æ¥ç¶ç¶æ³çã«ä¾ããã¤ãã«ä¸å®ãã¦ãããã¾ããµã¼ãã¼ã¸ã®ãªã¯ã¨ã¹ãæ°ãä¸è¬çãªWebã¢ããªãã1ã±ã¿ä»¥ä¸å°ãªãã§ãï¼åæãªã¯ã¨ã¹ãã®ã¿ï¼ã
ã¾ãæ®éã®ã¡ã¢ãªãã¼ã¹ã®ãã£ãã·ã¥ã§ã¯ãå½ç¶ã¢ããªãè½ã¨ãã¨ãã£ãã·ã¥å 容ã¯å¤±ãããã¾ããã¸ãã¯ããã£ãã·ã¥ã®é害æãæ´æ°ã®éä¸æã«ã¯ãã£ãã·ã¥å 容ãä¸æ´åã«ãªãå¯è½æ§ãããã¾ãï¼STMçãé¤ãï¼ãSmalltableã®å ´åã¯ã¢ããªåèµ·åå¾ããã£ãã·ã¥å 容ã¯ç¶æãããã¾ãã¢ããªã±ã¼ã·ã§ã³ãã¸ãã¯å ã§commit/rollbackãè¨è¿°ãããtxæä»ãå®è£ ã§ãããã©ã³ã¶ã¯ã·ã§ãã«ãªãã£ãã·ã¥ã«ãªã£ã¦ãã¾ãã