Datomic是å¦å°†æ‰€æœ‰äº¤æ˜“å‘é€ç»™ï¼†ï¼ƒ34; commit"?

时间:2015-08-31 06:10:27

标签: datomic

Datomic transactor pushes live changes to all connected peersç»´æŒLive Index。

这是å¦æ„味ç€æ‰€æœ‰äº¤æ˜“的所有数æ®å°†å§‹ç»ˆå‘é€ç»™æ‰€æœ‰è¿žæŽ¥çš„对等体 - 对数æ®æ„Ÿå…´è¶£ä¸Žå¦ï¼Ÿæˆ–者它åªæ˜¯ä¾‹å¦‚最新的db事务ID?

1 个答案:

答案 0 :(得分:2)

æ ¹æ®ç»éªŒå¾—出答案:是的,所有交易的全部内容(以åŠæ›´å¤š*)都会æµå¼ä¼ è¾“到所有连接的åŒè¡Œã€‚

我确认通过将对等方A连接到交易者并让它æˆä¸º

  1. åªæ˜¯å在那里,ä¿æŒè”系或
  2. 通过tx-report-queue或
  3. 监控交易
  4. 监控交易并打å°åœ¨äº¤æ˜“中修改的所有实体的所有属性值
  5. 与上述æ¯ä¸ªæµ‹è¯•è¿è¡ŒåŒæ—¶ï¼Œå¯¹ç­‰ä½“B将执行4个事务,其中æ¯ä¸ªäº‹åŠ¡å°†æ”¹å˜å•ä¸ªå®žä½“的几个简å•å±žæ€§ï¼Œå…¶ä¸­ä¸€ä¸ªå±žæ€§æ˜¯å¤§çº¦5kéšæœºå­—符串数æ®ï¼Œå…¶ä»–属性åªæ˜¯éžå¸¸çŸ­çš„字符串。

    Wiresharkæ•èŽ·äº†å¯¹ç­‰æ–¹A和交易方之间的TCP连接,并且å¯ä»¥åœ¨ä¸‹è¡¨ä¸­çœ‹åˆ° tcp转储的总字节大å°ã€‚

    â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”
      case  tx-report-queue  print  bytes (5kB)  bytes (13kB) 
    ──────────────────────────────────────────────────────────
         1                                61348        127996 
         2  ✓                             61800        128084 
         3  ✓                ✓            61260        127652 
    ──────────────────────────────────────────────────────────
     no-tx                                13076         12988 
    â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”
    

    相对转储大å°çš„差异å°äºŽ500字节,远远低于4个已æ交事务中的一个,æ¯ä¸ªäº‹åŠ¡çš„å˜åŒ–超过5kB。

    然åŽæˆ‘还è¿è¡Œæµ‹è¯•è€Œä¸è¿›è¡Œä»»ä½•äº‹åŠ¡ï¼Œç„¶åŽtcp转储将缩å°åˆ°å¤§çº¦13kB。因此,我认为它是传输的交易数æ®ã€‚

    *)信å°èƒŒåŽï¼šäº¤æ˜“者的æ¯ç¬”交易æˆæœ¬ï¼†lt; - > PeerAæ•°æ®çº¦ä¸º(61kB-13kB)/4tx = 12kB/tx 。因此看起æ¥åœ¨æ›´æ”¹å±žæ€§æ—¶ï¼Œæ’¤å›žï¼ˆå¯¹äºŽé‚£ä¸€ä¸ªå­—符串为5kB)和加法(å†æ¬¡ä¸º5kB)都通过交易者的实时索引传输,这将æ供大约10kB,加上一点备用对于其他(å°å¾—多)修改属性,2kB的空间(加上一些心跳,æ¯5秒å‘生一次,并且在执行事务的测试用例中增加300字节,仅仅是因为我花了这些时间æ¥è¿è¡Œé‚£äº›æµ‹è¯•ï¼‰ã€‚

    编辑为了让我的推论更加åšå®žï¼Œæˆ‘用13kB字符串而ä¸æ˜¯åŽŸæ¥çš„5ké‡æ–°æµ‹è¯•ã€‚结果(添加到表中)似乎è¯å®žäº†æˆ‘çš„ç†è®ºï¼šçŽ°åœ¨æ¯ç¬”交易æˆæœ¬çº¦ä¸º(128kB-13kB)/4tx = 29kB/tx,因此13kB撤销+ 13kB增加+ 3kBæ¾å¼›ã€‚

    进一步编辑我è¿è¡Œäº†ä¸€äº›æµ‹è¯•ï¼Œç»˜åˆ¶äº†å„个PeerA *收到的字节。æ¥è‡ªäº¤æ˜“者的æµé‡ï¼ˆé€šè¿‡å•ä¸ªTCP连接完æˆï¼‰å’Œæ¥è‡ªdatomic:free://(å³H2)存储的æµé‡ï¼Œåœ¨æ‰€æœ‰æƒ…况下都涉åŠåˆ°åŒä¸€ä¸ªH2端å£çš„三个TCP连接。

    我忽略了交易者和存储方å‘çš„TCPæµé‡ï¼Œè¿™è¿œè¿œä¸å¤Ÿã€‚

    • PeerA1 以空数æ®åº“开头
      1. 通过[tx-report-queue]
      2. 监控交易
      3. 打å°åœ¨æ¯ä¸ªäº‹åŠ¡ä¸­ä¿®æ”¹çš„所有实体的所有属性值
      4. æ¯4秒查询数æ®åº“中的所有元素
    • PeerB 执行上述13kB字符串属性更改以åŠæ¯6秒进行一些其他éžå¸¸å°çš„属性更改
    • PeerA2 以填充的数æ®åº“å¯åŠ¨ï¼ŒPeerBä»åœ¨è¿è¡Œ
      1. 通过[tx-report-queue]
      2. 监控交易
      3. 打å°åœ¨æ¯ä¸ªäº‹åŠ¡ä¸­ä¿®æ”¹çš„所有实体的所有属性值
    • PeerA3 以填充的数æ®åº“å¯åŠ¨ï¼ŒPeerBä»åœ¨è¿è¡Œ
      1. 通过[tx-report-queue]
      2. 监控交易
    • PeerA4 以填充的数æ®åº“å¯åŠ¨ï¼ŒPeerBä»åœ¨è¿è¡Œ
        除了连接到datomic并等待之外,
      1. 什么都ä¸åš

    这是rxæµé‡å›¾è¡¨ï¼ˆPeerA *的):

    enter image description here

    我如何阅读图表:

    • 交易者总是在æ交时推é€txæ•°æ®ï¼Œæ— è®ºPeerA是å¦å¯¹å…¶æ„Ÿå…´è¶£
    • 除了数æ®â€œæ·»åŠ â€ä¹‹å¤–,事务数æ®è¿˜åŒ…å«éšå¼æ’¤æ¶ˆï¼ˆè¿™å°±æ˜¯ä¸ºä»€ä¹ˆå¯åŠ¨PeerBåŽç¬¬ä¸€ä¸ªäº¤æ˜“者峰值åªæ˜¯åŽæ¥å³°å€¼çš„ä¸€åŠ - 第一次没有数æ®ï¼Œå› æ­¤æ²¡æœ‰æ”¶å›žï¼‰
    • 存储最åˆåªç”¨äºŽè¯»å–(æ¥è‡ªå­˜å‚¨ä¸­çš„日志 - 而ä¸æ˜¯æ¥è‡ªç´¢å¼• - 因为数æ®åº“中的数æ®æ€»æ˜¯è¿œå°äºŽmemory-index-threshold=32m,å³ç´¢å¼•åœ¨æµ‹è¯•æœŸé—´ä¸ä¼šå¯åŠ¨ï¼‰< / LI> 当PeerA1查询数æ®åº“时,ä¸ä½¿ç”¨
    • 存储;实际上,查询ä¸ä¼šäº§ç”Ÿä»»ä½•æ˜Žæ˜¾çš„网络æµé‡
    • å¯åŠ¨å¯¹ç­‰ä½“时的存储读å–大å°éšç€db收集数æ®è€Œå¢žé•¿ï¼ˆæ— è®ºæ•°æ®æ˜¯å¦è¢«â€œè¦†ç›–†- >&gt; datomic history)