Poszukuję trwałej, sekwencyjnej bazy danych, która umożliwia efektywne losowe wstawienia i usunięcia. Znalazłem następujące realizacje:Clojure finger trees and flexvec
- clojure.data.finger-tree (wdrożenia liczony-double-lista)
- wgjo.data.cljs
- flexvec
Ponieważ nie było zbyt wiele aktywności w clojure.data.finger drzewa przez ostatnie dwa lata, a inne są stosunkowo nowe, zastanawiałem się, czy ktoś ma doświadczenie w używaniu któregokolwiek z nich w produkcji i czy istnieją alternatywy, które przeoczyłem.
Dlaczego persistentVector firmy clojure nie jest wystarczająco dobry? Czy możesz dodać szczegóły dotyczące twojego przypadku użycia? – ordnungswidrig
@ordnungswidrig, w odpowiedzi na twoje żądanie dotyczące mojego przypadku użycia: Mam dokument, który jest reprezentowany jako tablica. W odpowiedzi na zdarzenia dokument jest aktualizowany wstawkami i usuwaniami w określonym przesunięciu w dokumencie. Zazwyczaj w stosunkowo dużym dokumencie będzie tylko jedna lub dwie wstawki lub usunięcia. W przypadku implementacji wektora trwałego clojure muszę ponownie utworzyć dokument na każdym zdarzeniu. Na przykład z drzewem palcowym byłbym w stanie podzielić dokument i dołączyć go do zmodyfikowanych przesunięć. – Inshallah
Z powodu podziału strukturalnego nie powinno to wiązać się z dużymi kosztami. A może potrzebujesz dostępu do podzielonych części, np. dla zoptymalizowanej trwałości dysku? – ordnungswidrig