Aerospike des LLIST API jetzt veraltet und es gibt eine native list
Datentyp zur Verfügung.
http://www.aerospike.com/docs/guide/cdt-list.html
Migration von Daten:
LLIST hat eine andere API und Kontrollstrukturen, so dass Sie Ihre Daten für jeden Datensatz migriert werden müssen. Der schnellste wäre ein einfaches Lua-Skript, das auf dem Server läuft und nur alle Stack-Elemente liest und sie mithilfe der folgenden Logik in eine Liste kopiert.
Implementierung Stapel:
Die LLIST API tatsächlich als Lua Funktionen auf dem Server bereits implementiert ist, so dass Sie Ihre eigenen Lua-Code schreiben können, um diese Funktionen zu wickeln und Stapellogik auf der LLIST zu implementieren. Rufen Sie dann diese Lua-Funktionen einfach über den Clienttreiber auf. Dies wird genauso schnell sein und die Schreibsperre für Datensätze beibehalten, so dass die Vorgänge atomar sind.
Die grundlegende Logik besteht darin, den LLIST als Halter für die Stapelelemente zu verwenden und eine andere Ablage im Datensatz zu verwenden, die eine Indexnummer enthält, die die Position (oder Anzahl) der Anzahl der Elemente in der Liste enthält.
Hier weitere Informationen und Codebeispiele auf einen Stapel bauen, Warteschlange oder eine Karte auf einem LLIST von einem Mitglied Aerospike Engineering-Team:
https://github.com/helipilot50/aerospike-LDT-techniques
Nizza Antwort. Mein Problem ist, dass ich ungefähr 100G Daten in Aerospike gespeichert habe, die von mehreren Kunden rund um die Uhr genutzt werden. Ich muss diese Migration von LSTACK zu LLIST durchführen, ohne die Operation zu beeinträchtigen. Es wäre großartig, wenn Sie eine richtige Methode vorschlagen könnten, um mit meinem Problem umzugehen? – Carbonrock
Es gibt keine einfache Möglichkeit. Die Clients müssen aktualisiert werden, um die benutzerdefinierten Lua-Funktionen zu verwenden, die Sie schreiben, um den Stapel auf LLIST zu verwalten. Sie können ein Bin verwenden, um zu signalisieren, ob ein Datensatz aktualisiert wurde oder nicht, dann kann der Client dies überprüfen und die entsprechende Methode verwenden (entweder alte Stapel-API oder neue Lua-Funktionen).Dies würde bedeuten, zuerst den Client-Code zu aktualisieren und dann ein Migrationsskript auszuführen, das alle Daten durchläuft und diesen speziellen bin-Wert festlegt. Sobald alles fertig ist, können Sie die Client-Logik erneut aktualisieren und diese Bin entfernen. –
Vielen Dank Mani Gandham. Dies dient meinem Zweck – Carbonrock