Rod - Ruby Object Database

Dużo czasu poświęcasz na ten projekt ?

Bywają chwile kiedy bardzo dużo, ale obecnie mam zadania o dużo wyższym priorytecie. Natomiast wszystkie moje biblioteki związane z przetwarzaniem języka naturalnego są oparte na ROD, więc tak, czy siak przy tym grzebię. W szczególności kiedy jakiś brakujący feature jest dla mnie bardzo istotny.

Piszę artykuł na konferencję BDAS i dodałem benchmark porównujący Rod z ActiveRecord: https://github.com/apohllo/rod-benchmark
Należy zwrócić uwagę, że test jest oczywiście bardzo stronniczy, ale wyniki są jak sądzę interesując:

[code]ROD
text_1.txt: 0 2.380000 0.080000 2.460000 ( 2.859892)
text_1.txt: 1 1.410000 0.000000 1.410000 ( 1.525274)

AR z SQLitem
text_1.txt: 0 31.690000 1.620000 33.310000 ( 33.646250)
text_1.txt: 1 34.500000 1.850000 36.350000 ( 36.664005)
…[/code]
Dodam jeszcze, że przy pierwszym uruchomieniu testu w ROD czas będzie dłuższy (u mnie 11 sek.) ale potem system cachuje odczytane strony dysku i nie sposób się ich pozbyć inaczej niż restartując system (co ma oczywiście swoje wady - przy testowaniu oraz zalety - przy dostępie do danych).

EDIT

W powyższym zdaniu miało być: i nie chce mi się ich za każdym razem usuwać :wink:

EO EDIT

Dodam również, że wersja 0.8.0 oparta o Berkeley DB, która ma mieć pełne wsparcie dla transakcji, etc. jest w fazie implementacji (czego nie widać na githubie).

Uwaga jeśli ktoś chce uruchomić benchmark to nich ma na uwadze, że zajmie to jakieś 2 godziny (czas załadowania danych do SQLite-a).

o_O

Który system? echo 3 > /proc/sys/vm/drop_caches nie działa?

to narzędzie także powinno pomóc: http://hoytech.com/vmtouch/

o_O

Który system? echo 3 > /proc/sys/vm/drop_caches nie działa?[/quote]
Człowiek uczy się całe życie :slight_smile:

W branchu 0.7.x jest implementacja oparta o include Rod::Model::Resource (troszkę trzeba jeszcze to doszlifować, ale 90% roboty zostało zrobione).

Gdyby kogoś interesował ten niszowy projekt :slight_smile: