[Bps-public-commit] r11711 - in Prophet/trunk: .

jesse at bestpractical.com jesse at bestpractical.com
Sat Apr 12 16:51:42 EDT 2008


Author: jesse
Date: Sat Apr 12 16:51:42 2008
New Revision: 11711

Modified:
   Prophet/trunk/   (props changed)
   Prophet/trunk/talks/2008/osdc.tw.txt

Log:
 r29637 at 68-246-76-26:  jesse | 2008-04-12 16:51:17 -0400
 more slides


Modified: Prophet/trunk/talks/2008/osdc.tw.txt
==============================================================================
--- Prophet/trunk/talks/2008/osdc.tw.txt	(original)
+++ Prophet/trunk/talks/2008/osdc.tw.txt	Sat Apr 12 16:51:42 2008
@@ -35,12 +35,14 @@
 versioned
 ----
 * Compare a record to any point in the past
-* Full changelog
+* All changes fully logged
 * Undo changes
 * Use history to be smart
 ----
 property database
 ----
+* Atomic changes
+    - 'create', 'read', 'update', 'delete', 'search'
 * Records can have validation and canonicalization
 * Records do not NEED canonicalization and validation
 * Records of the same type do not need to have the same properties
@@ -174,23 +176,60 @@
 ----
 Merge Ticket
 ----
-PROPHET COMPONENTS
+REPLICA BACKENDS
 ----
-Replica Backends
-----
-- The Record Store
+The Record Store
+    Stores indivdual records by type
 ----
 - The Changeset Store
+    Stores each atomic change to a set of records
+    Replaying all changesets will create an exact clone of the replica
 ----
-Synchronization
-----
- - Publish
- - Pull
- - Push
+Current "native" replica backends
+    - Subversion: The initial backend. Slow, Steady, Robust. 
+                  Supports remote sync
+
+    - Filesystem: Readable. Flat files. Compact. Fast.
+                  Currently export-only. (Update coming soon!) 
+    - HTTP:       Flat-files, Currently read-only.
+                  Same format as the filesystem replica type.
+----
+"Foriegn" replica backends
+    - All current examples are in SD
+----
+SYNCHRONIZATION
+----
+Publish
+    Serialize and export all of a replica's resolutions and changesets
+Pull
+    Integrate unseen resolutions and then unseen changesets from a replica
+Push
+    Integrate new resolutions and changesets into a replica
 ----
 Conflicts and Resolutions
 ----
-
+When a new changeset would conflict, Prophet:
+    - Figures out the best resolution to the conflict
+    - "Nullifies" the conflict so the changeset can be cleanly integrated
+    - Integrates the conflicting changeset
+    - Records the resolution as a new changeset 
+    - Records the resolution decision in a resolution database
+----
+"Figure out the best resolution"  
+----
+Prophet has clever ways to figure out the best resolution.
+(as well as a few really stupid ones)
+- If there are previous resolutions for the same conflict AND
+  a majority of them agree, use that
+- If the merger has specified a "prefer this side" choice, use that
+- Prompt the user to make a decision, giving them info about previous decisions
+  for this conflict
+----
+We don't have a proof for the algorithm
+----
+We do have dozens of runs of randomized testing.
+So far, it always stabilizes sanely.
+----
 HOW DOES IT SCALE?
 ----
 * Vertical scale is boring



More information about the Bps-public-commit mailing list