Vra

Ek is die ondersoek na moontlike opsies hoe om te organiseer data stoor vir'n Erlang aansoek.Die data wat dit veronderstel is om te gebruik, is basies'n groot versameling van binêre druppels geïndekseer deur kort-string-id's.Elke blob is onder 10 Kb maar daar is baie van hulle.Ek sou verwag dat in die totale sou hulle grootte tot 200 Gb so dit is duidelik dat dit nie kan inpas in die geheue.Die tipiese operasie op hierdie data is óf die lees van'n blob deur sy id of opdatering van'n blob deur sy id of die toevoeging van'n nuwe een.Op elke gegewe tydperk van die dag net'n subset van id's is wat gebruik word sodat die stoor van data toegang prestasie kan voordeel trek uit die in-geheue kas.Praat oor die prestasie - dit is baie krities.Die doel is om rond te hê 500 lees en 500 updates per sekonde op kommoditeit hardeware (sê op EC2 VM).

Enige voorstelle wat om te gebruik hier?Soos ek verstaan dets is buite die kwessie want dit is beperk tot 2G (of was dit 4G?).Mnesia waarskynlik uit van die vraag te;my indruk is dat dit is hoofsaaklik ontwerp vir gevalle wanneer die data pas geheue.Ek oorweeg om te probeer EDTK se Berkeley DB bestuurder vir die taak.Sou dit werk in die scenario hierbo?Het enige iemand het ondervinding in die gebruik daarvan in die produksie in die soortgelyke omstandighede?

Was dit nuttig?

Oplossing

tcerl kom uit in die gesig staar dieselfde grootte beperking.Ek is nie die gebruik van Erlang hierdie dae, maar dit klink soos wat jy is op soek vir.

Ander wenke

Het jy gekyk na wat CouchDB is om te doen?Dit is dalk nie heeltemal wat jy na soos'n druppel in die produk, maar daar is baie van die erlang kode in daar vir die berging van data.Daar is ook sommige praat van die verskaffing van'n inheemse erlang koppelvlak in plaas van die RES api.

Is daar enige rede waarom jy kan nie net gebruik om'n lêer stelsel, die behandeling van lêernaam as jou string id en lêer inhoud as'n binêre blob?Jy kan kies een (lêerstelsel) wat pas by jou prestasie vereistes, en jy moet kry caching basies vir gratis, wat deur jou OS.

Mnesia kan stoor op skyf net'n boete.Daar is ook dets (skyf gebaseer termyn berging) wat is min of meer soortgelyk aan Berkeley DB.Dit is in die standaard lib: http://www.erlang.org/doc/apps/stdlib/index.html

Ek sou aanbeveel Apache CouchDB.

Dit is'n groot geskik is vir Erlang, en van die geluid van dit (wat jy noem ID-gebaseerde blobs en nie noem enige relasionele vereistes) is jy op soek vir'n dokument-georiënteerde databasis.

Sedert die koppelvlak is die RES, jy kan baie eenvoudig voeg'n kommoditeit HTTP kas in die voorkant van dit as wat jy nodig het caching.

Die dokumentasie vir CouchDB is van'n baie hoë gehalte.

Dit het ook'n ingeboude in die Kaart-Verminder :)

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top