summaryrefslogtreecommitdiffstats
path: root/storage/rocksdb/README
diff options
context:
space:
mode:
Diffstat (limited to 'storage/rocksdb/README')
-rw-r--r--storage/rocksdb/README50
1 files changed, 50 insertions, 0 deletions
diff --git a/storage/rocksdb/README b/storage/rocksdb/README
new file mode 100644
index 00000000..3af45592
--- /dev/null
+++ b/storage/rocksdb/README
@@ -0,0 +1,50 @@
+== Summary ==
+This directory contains RocksDB-based Storage Engine (RDBSE) for MySQL,
+also known as "MyRocks".
+
+== Resources ==
+https://github.com/facebook/mysql-5.6/wiki/Getting-Started-with-MyRocks
+https://www.facebook.com/groups/MyRocks/
+
+== Coding Conventions ==
+The baseline for MyRocks coding conventions for the code in storage/rocksdb/
+is based on the default clang format with a few minor changes. The file
+storage/rocksdb/.clang-format describes conventions and can be integrated
+with Vim or Emacs as described here:
+http://releases.llvm.org/3.6.0/tools/clang/docs/ClangFormat.html#vim-integration
+
+All code outside of storage/rocksdb/ should conform to the MySQL coding
+conventions:
+http://dev.mysql.com/doc/internals/en/coding-guidelines.html.
+
+Several refinements:
+ 0. There is an umbrella C++ namespace named "myrocks" for all MyRocks code.
+ 1. We introduced "RDB" as the super-short abbreviation for "RocksDB". We will
+ use it as a name prefix, with different capitalization (see below), to ease
+ up code navigation with ctags and grep.
+ N.B. For ease of matching, we'll keep the variables and functions dealing
+ with sysvars as close as possible to the outside visible names of
+ sysvars, which start with "rocksdb_" prefix, the outward storage
+ engine name.
+ 2. The names for classes, interfaces, and C++ structures (which act as
+ classes), start with prefix "Rdb_".
+ NB: For historical reasons, we'll keep the "ha_<storage_engine_name>" class
+ name for ha_rocksdb class, which is an exception to the rule.
+ 3. The names for global objects and functions start with prefix "rdb_".
+ 4. The names for macros and constants start with prefix "RDB_".
+ 5. Regular class member names start with "m_".
+ 6. Static class member names start with "s_".
+ 7. Given the 80 character per line limit, we'll not always use full English
+ words in names, when a well known or easily recognizable abbreviation
+ exists (like "tx" for "transaction" or "param" for "parameter" etc).
+ 8. When needing to disambiguate, we use different suffixes for that, like
+ "_arg" for a function argument/parameter, "_arr" for a C style array, and
+ "_vect" for a std::vector etc.
+
+== Running Tests ==
+To run tests from rocksdb, rocksdb_rpl or other rocksdb_* packages, use the
+following parameters:
+ --default-storage-engine=rocksdb
+ --skip-innodb
+ --default-tmp-storage-engine=MyISAM
+ --rocksdb