2016-07-26 10 views
1

Ich war eine riesige Menge von Tupeln zu meinem Raum eingefügt und endete mit tarantool mirFehler beim Schreiben auf die Festplatte tarantool, wie kann man frei machen?

error: Failed to write to disk

auf Insert zu erzählen und Operationen löschen.

Was soll ich tun, um Speicherplatz freizugeben, nur um weiter mit dieser Instanz zu arbeiten. Ich interessiere mich nicht für Daten, wenn es benötigt wird, kann es gelöscht werden.

Ich habe versucht:

my_space:truncate{} 

aber es war führen zu der gleichen Fehlermeldung. Ich bin neu in Unix-Systemen (bekam in diesem Fall freebsd) und Tarantool im Allgemeinen.

EDIT

meine Config

box.cfg { 
    listen = 3305; 
    background = true; 
    slab_alloc_arena = 5; 
    slab_alloc_minimal = 16; 
    slab_alloc_maximal = 1048576; 
    slab_alloc_factor = 1.06; 
    snapshot_period = 3600; 
    snapshot_count = 6; 
    panic_on_snap_error = true; 
    panic_on_wal_error = true; 
    snap_io_rate_limit = nil; 
    wal_mode = "write"; 
    wal_dir_rescan_delay = 2.0; 
    readahead = 16320; 
    log_level = 5; 
    logger_nonblock = true; 
    too_long_threshold = 0.5; 
} 

Antwort

2

Sie benötigen den Snapshot-Daemon, eine Funktion in Tarantool einzurichten, die automatisch Raum durch den Schreib verwendet rezykliert voraus log (.xlog-Dateien). Hier ist das entsprechende Kapitel im Handbuch https://tarantool.org/doc/book/configuration/index.html#snapshot-daemon

Unterdessen können Sie manuell alle * .xlog Dateien entfernen (einfach rm -rf * .xlog, aber halten Sie ein, die offen ist, die mit der größten Zahl in seinem Namen) , und erstellen Sie einen Snapshot (senden Sie das Signal SIGUSR1 an den Daemon).

+0

Ich habe diese Zeilen auf Box-Konfiguration 'snapshot_period = 3600; snapshot_count = 6; wal_mode = "schreiben"; '. Ich habe ein Verzeichnis mit * .xlog-Dateien gefunden, die Sie im Pfad _/var/db/tarantool/instanzname_ [link] (https://tarantool.org/doc/book/administration.html#configuring-for-tarantoolctl) erwähnt haben. Außerdem habe ich 6 * .snap Dateien in diesem Verzeichnis. Außerdem habe ich 23 .xlog-Dateien vor der neuesten * .snap-Dateireihenfolge nach geändertem Datum absteigend. – shemanov

+0

Ich habe nicht versucht, ein Signal an den Daemon zu senden, habe aber versucht, einen Snapshot mit diesem Befehl 'box.snapshot()' zu erstellen. [https://tarantool.org/doc/book/box/admin.html](https://tarantool.org/doc/book/box/admin.html). Habe 'Fehler: kann Schnappschuss nicht speichern, errno 28 (Kein Platz auf dem Gerät übrig)'. Ich werde versuchen, * .xlog-Dateien manuell zu entfernen und dann versuchen, Snapshot zu machen, wie Sie vorgeschlagen – shemanov

+0

Ich habe * .xlog-Dateien manuell entfernt, wie Sie sagten und berührt nicht * .snap-Dateien, nach diesem 'box.snapshot()' schließlich return ** ok ** und 'my_space: truncate {}' auch ** erfolgreich ** ausgeführt! Im Verzeichnis hinzugefügt neue * .snap Datei Erhöhung der Anzahl der Snapshots auf 7. Ich frage mich immer noch, wie es in Bezug auf Festplattenplatz ausgearbeitet hat, weil meine ältere Snapshot-Größe 1,7 GB ist und wie ich sagte, ich habe keine Snapshot-Dateien gelöscht. Mein Problem ist gelöst, danke für die Hilfe, @ Kostja. Ich habe Einzelheiten in meiner Untersuchung angegeben, vielleicht ist es unnötig, aber vielleicht hilft es jemandem, besser zu verstehen, was vor sich geht. – shemanov