Uploaded image for project: 'MariaDB ColumnStore'
  1. MariaDB ColumnStore
  2. MCOL-4796

Change STANDALONE layout dirs for /etc and /var

    XMLWordPrintable

Details

    • Task
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 6.1.1
    • 23.10
    • Build
    • None

    Description

      By default, ColumnStore installs configuration files into the root /etc and /var directories.

      This is fine for RPM and DEB builds. However, this is not good for STANDALONE builds.

      With standalone builds we're going to allow non-root installations of ColumnStore.
      Also, with standalone builds everything should reside inside the same directory, so one can do:

      cmake -DCMAKE_INSTALL_PREFIX=/tmp/mariadb
      make
      make install
      tar -zcf mariadb-standalone-binary-distribution.tar.gz /tmp/mariadb/
      

      Note, this generally works with MariaDB - unless ColumnStore is enabled.

      This patch does the trick:

      --- a/CMakeLists.txt
      +++ b/CMakeLists.txt
      @@ -43,6 +43,10 @@ SET (ENGINE_DATADIR    "/var/lib/columnstore")
       SET (ENGINE_LOGDIR    "/var/log/mariadb/columnstore")
       IF (INSTALL_LAYOUT)
      +    IF (INSTALL_LAYOUT MATCHES "STANDALONE")
      +       SET (ENGINE_DATADIR    "${CMAKE_INSTALL_PREFIX}/var/lib/columnstore")
      +       SET (ENGINE_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc")
      +    ENDIF ()
           # We are building from MariaDB server submodule if this is set
           SET(MARIADB_PLUGINDIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINDIR}")
           IF (INSTALL_SYSCONF2DIR)
      

      However it makes the following directory layout:

      [bar@home mariadb-10.6-cs]$ ls -l --group-directories-first /opt/mariadb-10.6-cs
      total 204
      drwxr-xr-x.  2 bar bar  4096 Apr 26 16:19 bin
      drwx------.  9 bar bar  4096 Apr 27 06:43 data           <--- MariaDB data directory
      drwxr-xr-x.  3 bar bar  4096 Apr 26 16:19 include
      drwxr-xr-x.  4 bar bar  4096 Apr 26 16:19 lib
      drwxr-xr-x.  4 bar bar  4096 Apr 26 16:19 man
      drwxrwxr-x.  9 bar bar  4096 Apr 26 16:19 mysql-test
      drwxr-xr-x.  2 bar bar  4096 Apr 26 16:19 scripts
      drwxr-xr-x. 32 bar bar  4096 Apr 26 16:19 share
      drwxr-xr-x.  4 bar bar  4096 Apr 26 16:19 sql-bench
      drwxr-xr-x.  3 bar bar  4096 Apr 26 16:19 support-files
      drwxr-xr-x.  3 bar bar  4096 Apr 26 16:19 var             <--- ColumnStore data directory
      -rw-r--r--.  1 bar bar 17987 Apr 26 06:21 COPYING
      -rw-r--r--.  1 bar bar  2093 Apr 26 06:21 CREDITS
      -rw-r--r--.  1 bar bar  8245 Apr 26 06:21 EXCEPTIONS-CLIENT
      -rw-r--r--.  1 bar bar  8782 Apr 26 06:21 INSTALL-BINARY
      -rw-r--r--.  1 bar bar  2973 Apr 26 06:21 README.md
      -rw-r--r--.  1 bar bar 19520 Apr 26 06:21 README-wsrep
      -rw-r--r--.  1 bar bar 86263 Apr 26 06:21 THIRDPARTY
      

      It is probably not good that the installation will have separate data directories:

      • /data for MariaDB data
      • /var for ColumnStore data. Note /var sounds too generic.

      So the ColumnStore data directory could be columnstore-data instead of just var.

      Serg also proposed to consider putting ColumnStore data directory inside MariaDB data directory: data/.ColumnStore.
      In MariaDB one cannot create or drop databases starting with the DOT character. So this should be safe against a query like this:

      DROP DATABASE `.ColumnStore`
      

      Note, do avoid .ColumnStore to pop up in SHOW DATABASES we can add this line inside the server sources:

         push_ignored_db_dir(".ColumnStore");
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              bar Alexander Barkov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.