Sonic: nasze zmiany w projekcie open source
Lekki silnik wyszukiwania w Ruście, alternatywa dla Elasticsearch, która działa w kilku megabajtach pamięci.
- Język
- Rust
- Gwiazdki na GitHubie
- 21 357
- Strona projektu
- crates.io/crates/sonic-server
Wszystkie zmiany przyjęte w Sonic
Od najnowszej, w brzmieniu z repozytorium projektu. Każdy wiersz otwiera pull request z datą scalenia.
Październik 2026
3Co zmieniły te poprawki
Kopia zapasowa przez TRIGGER backup działa, gdy magazyn jest w użyciu, kopie obejmują znowu kubełki FST, kanał nie gubi miejsca dla klienta po błędzie odczytu, a dokumentacja opisuje limit nazw i bufor zapisu.
Błąd, poprawka i wniosek
Skrót naszego opisu z Nowinek technicznych: co nie działało, co zmieniliśmy i co z tego wynika dla naszej pracy.
Kopia zawodziła przy otwartym magazynie
Po zapisie komendą PUSH baza RocksDB zostaje otwarta w puli, a TRIGGER backup próbował otworzyć ją drugi raz i trafiał na zajęty plik LOCK. Na świeżym serwerze nie było jeszcze katalogów magazynów.
Kopia z otwartej instancji
Gdy magazyn jest w puli, kopia powstaje z tej instancji po zrzuceniu buforów na dysk. Brakujący katalog jest pomijany zamiast błędu.
Kopia zapasowa robiona w trakcie pracy musi brać spójny stan, a nie blokować magazyn albo czytać go w połowie zapisu.
To ta sama zasada, którą stosujemy w kopiach danych klientów.
Inne projekty z naszymi zmianami: Rust
6 projektów w tej technologii ma nasze przyjęte zmiany. Pasek to gwiazdki repozytorium, obok liczba naszych zmian. Każdy wiersz prowadzi do strony projektu.
- Zed1 przyjęta zmiana91 587
- Sonicta strona, 5 przyjętych zmian21 357
- Pagefind1 przyjęta zmiana5511
- insta1 przyjęta zmiana2974
- rss1 przyjęta zmiana504
- configparser1 przyjęta zmiana87
Pytania o nasze zmiany w Sonic
Skąd są te zmiany, kto je przyjął i czy poprawimy coś w Twojej bibliotece.
Czytaj dalej
Więcej o tej pracy i o pozostałych projektach z naszymi zmianami.
Używasz Sonic w swoim projekcie?
Jeśli coś w nim nie działa, poprawimy to u źródła i zostawimy obejście do czasu wydania. Odpiszemy w godzinę.