From 2e63eace850dce3e4ab0337f111027bcde5cdea3 Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Wed, 31 Aug 2011 18:20:53 -0700 Subject: [PATCH] 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 --- .gitignore | 1 + admin/build-doc | 2 ++ doc/architecture.rst | 7 +++++ doc/object_store.dot | 61 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 doc/object_store.dot diff --git a/.gitignore b/.gitignore index 99560459d1e8a..73a8d86bd14ef 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 aee1a48345c76..347e7cbb1f4d8 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 f66cf3cd9b717..fb7a1ea15eeee 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 0000000000000..eda3eb68f2312 --- /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" +} -- 2.39.5