Pragmatic Core Data

務實 Core Data

3 Tier

Context Tier

  • In-memory
  • 非執行緒安全
  • lock-free

Coordinator Tier

  • In-memory
  • 執行緒安全
  • 潛在 lock 競爭

SQlite Tier

  • Disk I/O
  • 執行緒安全
  • 潛在 lock 競爭

平行 Context

g
不會 block 其他 Context queue
.

b
save 會在主線產生IO

多 Coordinator

g
Context 和 Coordinator 彼此互相獨立
競爭丟到 SQlite 層

b
沒有共享 row cache
不能共享 ObjectID

Nested Context

save IO 發生在 BG
del 沒有競爭問題