Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MongoDB i baza ip adresa

[es] :: Baze podataka :: MongoDB i baza ip adresa

[ Pregleda: 2780 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zimbra

Član broj: 292753
Poruke: 71
*.dynamic.sbb.rs.



+56 Profil

icon MongoDB i baza ip adresa05.11.2013. u 13:41 - pre 94 meseci
db.mmind.findOne({startIp: {$lte: 10.10.0.0}, endIp: {$gt: 10.9.0.0}})

Ovo je mnogo sporo ( i kada su ip-i prebaceni u integere), sporije značajno od PostgreSQL rešenja sa kompozitnim indeksom na startIP i endIP.
Kakav je "best practice" kada su ovakve stvari u pitanju. Treba mi za IP korisnika da znam lokaciju. U MaxMind bazi imam od-do IP-a informaciju o lokaciji. Problem je kada to ubacim u MongoDB upiti su ekstremno spori, radi istom brzinom sa i bez indeksa.
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.dynamic.isp.telekom.rs.



+79 Profil

icon Re: MongoDB i baza ip adresa10.11.2013. u 09:30 - pre 93 meseci
Ne mgu da verujem da Mongo to ne radi kako se ocekuje. I niko iz prethodne tema nema resenje?
 
Odgovor na temu

zimbra

Član broj: 292753
Poruke: 71
*.dynamic.sbb.rs.



+56 Profil

icon Re: MongoDB i baza ip adresa17.11.2013. u 02:20 - pre 93 meseci
Na koju prethodnu temu misliš?

Pretražio sam sve dokumente do kojih sam mogao da dođem. Pregledao stotine sajtova, preko 50 "whitepaper" dokumenata, stotine blog-forum članaka i nisam našao rešenje. Našao sam mnogo ljudi sa istim problemom i nekom pričom oko toga kako MongoDB nije u stanju da radi sa dva indexa. U ovom slučaju da koristi bar jedan index bio bi rezultat brži ali izgleda ne koristi nijedan.

Ja sam napravio privremeno rešenje tako što sam napravio sortirani indeks na jednu stranu a radim pretragu na drugu stranu i uzimam samo jedan rezultat (prvi). Na taj način bi u idealnom slučaju, kada ne bi postojale praznine u opsezima, dobio uvek validno rešenje. Na žalost poštno postoje praznine u opsezima i moj traženi IP se nalazi u tom nepostojećem opsegu ja dobijem pogrešnu vrednost. Za sada je to "podnošljivo" zato što svejedno za taj IP ne znam lokaciju pa mi je neka slučajna lokacija koju će mi MongoDB u ovom slučaju vratiti isto velika greška kao da je nemam, razlika je što umesto da klijentu kažem "ne znam odakle si, odaberi" ja mu prikažem pogrešnu lokaciju a on onda može da je promeni ako želi.

Zažalio sam već dva puta što je ovaj projekat išao na MongoDB ;( a evo izgleda i treći put ću

 
Odgovor na temu

whitie2004

Član broj: 19966
Poruke: 1409
*.dynamic.sbb.rs.



+229 Profil

icon Re: MongoDB i baza ip adresa17.11.2013. u 20:05 - pre 93 meseci
Ovi u predhodnoj temi su teoreticari .... :-)

Tesko ti je pomoci kad nema nikakvih podataka ; neki iksplejn, statistika, hardver koji je na raspolaganju. Nisi rekao ni koji drajver zapravo kosistis, ali predpostavljam da spikas na JS. U toj bransi procunjaj na npm sajtu na temu MaxMind. Ima vise ponuda i krecu se od 2 do 20 mikro sekundi, zavisi vec ... Samo sto niko ne koristi bilo koju bazu ..... treba ti 5 sekundi i 60 mega da CSV fiknes u memoriju! Dalje vise ne blokira i imas obican poziv - 1 red koda.

Ako nemas toliko memorije na raspolaganju onda verovatno imas problem i da smestis sve mongodb indekse u memoriju.... a to nikada ne izadje na dobro. Predpostavljam da je ovo samo jedna od stvari koje drzis u bazi.

Da ne ispadne da ti nista korisno nisam rekao, pogledaj

https://github.com/benlowry/node-geoip-native
https://github.com/bluesmoon/node-geoip

Ako se ne snalazis sa JS, smesti to u mariju ili neki memkes... sad vec nemam iskustva!

U padu jednog carstva stradaju svi, tako je uvek bilo, tako će biti i sada. Verovatno će posle svega ovoga
biti formirani neki novi blokovi, nova uređenja. A mi? Eh, a mi..
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.plus.com.

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: MongoDB i baza ip adresa26.11.2013. u 22:18 - pre 93 meseci
Citat:
whitie2004: Ovi u predhodnoj temi su teoreticari .... :-)


To sto pljuckamo za i protiv ne znaci da moramo u svakoj sekundi da odgovorimo :), odgovor je spor ali dostizan.

Citat:
zimbra: db.mmind.findOne({startIp: {$lte: 10.10.0.0}, endIp: {$gt: 10.9.0.0}})

Ovo je mnogo sporo ( i kada su ip-i prebaceni u integere), sporije značajno od PostgreSQL rešenja sa kompozitnim indeksom na startIP i endIP.
Kakav je "best practice" kada su ovakve stvari u pitanju. Treba mi za IP korisnika da znam lokaciju. U MaxMind bazi imam od-do IP-a informaciju o lokaciji. Problem je kada to ubacim u MongoDB upiti su ekstremno spori, radi istom brzinom sa i bez indeksa.


Cek jedna stvar mi nije jasna. Kako si pretvorio ip adresu u integere ? Da li si jednu ip adresu pretvorio u 1 veliki integer ili u 4 integera od 0-255 ? Ako je ovo drugo onda nije to bas efikasno, ipv4 je duzine 4 bajta, tj 32 bita to bez problema stane u kulturiska int32. E sad druga stvar sto je cist integer malo teze za ljudsko citanje. Ali nista te ne sprecava da kulturno koristis string za ljude i int za masine.

Znaci kad hoces da radis query na kraju uzmes ip adresu prebacis u int u samom programu i na kraju trazis po integerima kroz mongodb. Ovo nema sanse da bude sporo.

 
Odgovor na temu

[es] :: Baze podataka :: MongoDB i baza ip adresa

[ Pregleda: 2780 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.