tarantool / tarantool/tt

Redundant instance name subdirectories in var/ structure

Open
#1,210 4 comments 0 reactions 1 assignee View on GitHub

@elhimov is already working on this.

Since Oct 20, 2025.

Dominant language
Go
Stars
113
Forks
18
Avg merge
4d 11h
Merged PRs (30d)
23

Description

Problem

The current tt 2.0+ directory structure creates unnecessary nesting by duplicating instance names inside the var/ directory:

instances.enabled/
└── myapp/                    # Instance name
    └── var/
        ├── lib/
        │   └── myapp/        # ← Redundant duplication
        │       ├── *.snap
        │       └── *.xlog
        ├── log/
        │   └── myapp/        # ← Redundant duplication
        │       ├── tt.log
        │       └── tarantool.log
        └── run/
            └── myapp/        # ← Redundant duplication
                ├── tarantool.pid
                └── tarantool.control

Expected behavior

Since each instance already has its own isolated directory under instances.enabled/, the instance name should not be duplicated inside var/ subdirectories:

instances.enabled/
└── myapp/                    # Instance name (sufficient isolation)
    └── var/
        ├── lib/              # ← Direct data files
        │   ├── *.snap
        │   └── *.xlog
        ├── log/              # ← Direct log files
        │   ├── tt.log
        │   └── tarantool.log
        └── run/              # ← Direct runtime files
            ├── tarantool.pid
            └── tarantool.control

Rationale

  1. Redundancy: Instance name is already specified at the top level (instances.enabled/myapp/)
  2. Simplicity: Shorter paths are easier to navigate and understand
  3. Consistency: Other tools don't typically create nested subdirectories with the same name
  4. Migration pain: Current structure makes file paths unnecessarily long and confusing

Configuration impact

This would also simplify box.cfg paths:

Current (redundant):

box.cfg {
    wal_dir = 'var/lib/myapp',
    memtx_dir = 'var/lib/myapp',
    log = 'var/log/myapp/tarantool.log'
}

Proposed (clean):

box.cfg {
    wal_dir = 'var/lib',
    memtx_dir = 'var/lib',
    log = 'var/log/tarantool.log'
}

Environment

  • tt version: 2.x+
  • OS: Any

Suggested solution

Remove the instance name subdirectories from var/lib/, var/log/, and var/run/ paths, storing files directly in these directories since instance isolation is already provided by the parent directory structure.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.