Operations Guide¶
Understanding ArcadeDB operations, file structure, logging, and maintenance for the Python bindings.
Overview¶
ArcadeDB creates various files and directories during operation for different purposes:
- Database files: Core data storage (embedded mode)
- Server files: Multi-user configuration (server mode)
- Log files: Three types of logs in different locations
- Transaction logs: Write-ahead logging for durability
- Backup files: Database snapshots
Understanding this structure helps with monitoring, debugging, and maintenance.
File Structure¶
Typical Directory Layout¶
When running ArcadeDB applications, you'll see this structure:
your_project/
├── your_app.py
├── log/ # JVM and ArcadeDB logs
│ ├── arcadedb.log.0 # Current ArcadeDB log
│ ├── arcadedb.log.1 # Rotated log file
│ ├── arcadedb.log.2 # Older rotated file
│ ├── arcadedb.log.0.lck # Log lock file
│ ├── hs_err_pid12345.log # JVM crash dump
│ └── hs_err_pid67890.log # Another crash dump
├── my_databases/ # Your databases root
│ ├── production_db/ # Embedded database
│ │ ├── configuration.json # Database config
│ │ ├── schema.json # Schema definition
│ │ ├── statistics.json # Performance stats
│ │ ├── dictionary.*.dict # String compression
│ │ ├── MyType_*.bucket # Data files
│ │ ├── txlog_*.wal # Transaction logs
│ │ └── database.lck # Database lock
│ ├── backups/ # Backup directory
│ ├── config/ # Server configuration
│ │ ├── server-users.jsonl # User accounts
│ │ └── server-groups.json # Permissions
│ └── log/ # Server event logs
│ ├── server-event-log-*.jsonl
│ └── server-event-log-*.jsonl
Logging System¶
ArcadeDB has three distinct types of logs stored in two different locations:
1. JVM and ArcadeDB Application Logs¶
Location: ./log/ (relative to your Python script)
Files:
arcadedb.log.0- Current application logarcadedb.log.1,arcadedb.log.2, etc. - Rotated logsarcadedb.log.0.lck- Log rotation lock file
Content: Application-level events, database operations, performance info
2025-10-22 10:23:21.560 INFO [ArcadeDBServer] ArcadeDB Server v25.10.1 starting up...
2025-10-22 10:23:21.563 INFO [ArcadeDBServer] Running on Linux - OpenJDK 64-Bit Server VM 21.0.4
2025-10-22 10:23:21.628 INFO [ArcadeDBServer] Server root path: /path/to/databases
2025-10-22 10:23:21.928 INFO [HttpServer] HTTP Server started (port=2480)
2. JVM Crash Dumps¶
Location: ./log/ (same directory as application logs)
Files: hs_err_pid<process_id>.log
Content: JVM fatal error information (crashes, segfaults)
# A fatal error has been detected by the Java Runtime Environment:
# SIGSEGV (0xb) at pc=0x000000000056950b, pid=1194752
# JRE version: OpenJDK Runtime Environment Temurin-21.0.4+7
# Problematic frame: C [python+0x16950b] PyObject_RichCompareBool+0x3b
3. Server Event Logs (Server Mode Only)¶
Location: <server_root>/log/ (inside server root directory)
Files: server-event-log-<timestamp>.<sequence>.jsonl
Content: Structured server lifecycle events in JSON Lines format
{"time":"2025-10-22 10:22:47.888","type":"INFO","component":"Server","db":null,"message":"ArcadeDB Server started in 'development' mode"}
{"time":"2025-10-22 10:22:49.059","type":"INFO","component":"Server","db":null,"message":"Server shutdown correctly"}
Log Configuration¶
Rotation: Application logs rotate automatically:
- Current:
arcadedb.log.0 - Previous:
arcadedb.log.1,arcadedb.log.2, etc. - Default: 5 files, 10MB each
Verbosity: Controlled by Java system properties:
import jpype
# Set before importing arcadedb_embedded
jpype.startJVM(
"-Djava.util.logging.level=DEBUG",
"-Darcadedb.log.level=FINE"
)
import arcadedb_embedded as arcadedb
Database Files (Embedded Mode)¶
Core Database Files¶
configuration.json - Database settings
schema.json - Schema definition with types, properties, indexes
{
"schemaVersion": 19,
"dbmsVersion": "25.10.1-SNAPSHOT",
"types": {
"User": {
"type": "d",
"parents": [],
"buckets": ["User_0"],
"properties": {
"email": {"type": "STRING", "mandatory": true}
},
"indexes": {
"User.email": {"type": "LSM_TREE", "unique": true}
}
}
}
}
statistics.json - Performance and storage statistics
Data Storage Files¶
Type_N.M.P.vQ.bucket - Actual data storage
Type: Document/Vertex/Edge type nameN: Bucket numberM: Sub-bucketP: Page sizeQ: Version
Example: User_0.1.65536.v0.bucket
dictionary.X.Y.vZ.dict - String compression dictionary
- Frequently used strings stored once
- Referenced by ID in data files
- Reduces storage space significantly
Transaction Files¶
txlog_N.wal - Write-Ahead Log files
- Ensures ACID properties
- Transaction durability
- Crash recovery
- Auto-rotation when full
database.lck - Database lock file
- Prevents concurrent access
- Contains process information
- Removed on clean shutdown
Server Files (Server Mode Only)¶
Configuration Files¶
server-users.jsonl - User accounts (JSON Lines format)
{"name":"root","databases":{"*":["admin"]},"password":"PBKDF2WithHmacSHA256$..."}
{"name":"user1","databases":{"mydb":["read"]},"password":"PBKDF2WithHmacSHA256$..."}
server-groups.json - Permission groups
{
"databases": {
"*": {
"groups": {
"admin": {
"resultSetLimit": -1,
"access": ["updateSecurity", "updateSchema"],
"types": {
"*": {
"access": ["createRecord", "readRecord", "updateRecord", "deleteRecord"]
}
}
}
}
}
}
}
Directory Structure¶
backups/ - Database backup storage
- Created by backup operations
- Timestamped directories
- Full database copies
databases/ - Individual database directories
- Each database in separate subdirectory
- Same structure as embedded databases
See Also¶
- Database Management - Database lifecycle and configuration
- Server Mode - Multi-user server setup
- Troubleshooting - Common issues and solutions
- Architecture - System design overview