summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>2011-08-31 18:20:53 -0700
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>2011-08-31 18:09:52 -0700
commit2e63eace850dce3e4ab0337f111027bcde5cdea3 (patch)
treefeeae012361d9b4a8f52a83b829668083fdd6aea
parentd9eacb61048a43c191164f58f8498eeae1411a7f (diff)
downloadceph-2e63eace850dce3e4ab0337f111027bcde5cdea3.tar.gz
Add object store architecture overview picture
It requires graphviz / dot to be installed. It generates a nice graph of the dependencies between classes in the object store. Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
-rw-r--r--.gitignore1
-rwxr-xr-xadmin/build-doc2
-rw-r--r--doc/architecture.rst7
-rw-r--r--doc/object_store.dot61
4 files changed, 71 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 99560459d1e..73a8d86bd14 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,3 +53,4 @@ core
.project
.cproject
/build-doc
+/doc/object_store.png
diff --git a/admin/build-doc b/admin/build-doc
index aee1a48345c..347e7cbb1f4 100755
--- a/admin/build-doc
+++ b/admin/build-doc
@@ -10,6 +10,8 @@ if [ ! -e build-doc/doxygen/xml ]; then
fi
dia --filter=png-libart --export=doc/overview.png.tmp doc/overview.dia
+dot -Tpng < doc/object_store.dot > doc/object_store.png
+
mv -- doc/overview.png.tmp doc/overview.png
cd build-doc
diff --git a/doc/architecture.rst b/doc/architecture.rst
index f66cf3cd9b7..fb7a1ea15ee 100644
--- a/doc/architecture.rst
+++ b/doc/architecture.rst
@@ -25,6 +25,13 @@
.. todo:: write me
+====================================
+ Object Store Architecture Overview
+====================================
+.. image:: object_store.png
+
+.. todo:: write more here
+
=================================
Library architecture
=================================
diff --git a/doc/object_store.dot b/doc/object_store.dot
new file mode 100644
index 00000000000..eda3eb68f23
--- /dev/null
+++ b/doc/object_store.dot
@@ -0,0 +1,61 @@
+/*
+ * Rough outline of object store module dependencies
+ *
+ * build with
+ * dot -Tpng < ./object_store.dot > object_store.png
+ */
+
+digraph object_store {
+ size="16,16";
+ node [color=lightblue2, style=filled, fontname="Serif"];
+
+ "testrados" -> "librados"
+ "testradospp" -> "librados"
+
+ "rbd" -> "librados"
+
+ "radostool" -> "librados"
+
+ "radosgw_admin" -> "rgw"
+
+ "rgw" -> "librados"
+
+ "radosacl" -> "librados"
+
+ "librados" -> "objecter"
+
+ "ObjectCacher" -> "Filer"
+
+ "dumpjournal" -> "Journaler"
+
+ "Journaler" -> "Filer"
+
+ "SyntheticClient" -> "Filer"
+ "SyntheticClient" -> "objecter"
+
+ "Filer" -> "objecter"
+
+ "objecter" -> "OSDMap"
+
+ "cosd" -> "PG"
+ "cosd" -> "ObjectStore"
+
+ "crushtool" -> "CrushWrapper"
+
+ "OSDMap" -> "CrushWrapper"
+
+ "OSDMapTool" -> "OSDMap"
+
+ "PG" -> "ReplicatedPG"
+ "PG" -> "ObjectStore"
+ "PG" -> "OSDMap"
+
+ "ReplicatedPG" -> "ObjectStore"
+ "ReplicatedPG" -> "OSDMap"
+
+ "ObjectStore" -> "FileStore"
+
+ "FileStore" -> "ext3"
+ "FileStore" -> "ext4"
+ "FileStore" -> "btrfs"
+}