phpbar.de logo

Mailinglisten-Archive

Maximale Last

Maximale Last

stepken mysql_(at)_lists.phpcenter.de
Tue, 17 Apr 2001 00:22:55 +0200


Am Mittwoch 11 April 2001 12:33 schrieb Joebi bei Strato:
> Hallo,
> ich bin neu in der Liste.
> Ich hätte da mal eine Frage,
> wir sind eine Webfirma auf LAMP-Basis und haben eine Nachfrage
> für eine Datenbank mit riesigen Textmengen (ca. 10.000 Texte a 700KByte
> jährlich wachsend).

10.000 Texte sind Kinderkram für GLIMPSE .... unter www.webglimpse.org 
einfach glimpse C-Programm kompilieren - das PERL Skript in das ../cgi-bin/ 
Verzeichnis laden, die Variablen anpassen - das war's ....

Glimpse läuft sogar 64 - bittig, d.h. es kann auch Indizes > 2 Gigabyte 
erzeugen, das heißt man kann darin Inhalte unbegrenzt indizieren (vorher ca. 
500 Gigabyte).

Hier ein paar Benchmarks auf einem P233 mit 32 MByte RAM und 2 GIG Platte 
(uralt):

root_(at)_www:/home2/little-idiot/dokumente > time ./ghreindex
 
This is glimpseindex version 4.1, 1997.
 
Indexing "/home2/little-idiot/dokumente" ...
 
Size of files being indexed = 31098146 B, Total #of files = 5811

Glimpse-files created here:
-rw-r-xr-x   1 little-idiot      users         141 Jun 27  2000 
.glimpse_exclude
-rw-r-xr-x   1 root     root          137 Jun 27  2000 .glimpse_exclude~
-rw-r-xr-x   1 little-idiot      users      353667 Apr 17 00:01 
.glimpse_filenames
-rw-r-xr-x   1 little-idiot      users       23244 Apr 17 00:01 
.glimpse_filenames_index
-rw-r--r--   1 root     root        24576 Apr 17 00:01 .glimpse_filetimes
-rw-r-xr-x   1 little-idiot      users        6780 Apr 16 23:56 
.glimpse_filetimes.index
-rw-------   1 root     root      1789206 Apr 17 00:01 .glimpse_index
-rw-r-xr-x   1 little-idiot      users        1235 Apr 17 00:01 
.glimpse_messages
-rw-------   1 root     root      2606236 Apr 17 00:01 .glimpse_partitions
-rw-r--r--   1 root     root      1344047 Dez 22  1999 .glimpse_split.22470
-rw-r--r--   1 root     root      1316275 Dez 19  1999 .glimpse_split.22836
-rw-r--r--   1 root     root      1316268 Dez 17  1999 .glimpse_split.3195
-rw-r--r--   1 root     root      1446478 Mai 19  2000 .glimpse_split.3404
-rw-r--r--   1 root     root      1112901 Mär 16  2000 .glimpse_split.4599
-rw-r-xr-x   1 little-idiot      users      706136 Apr 17 00:01 
.glimpse_statistics
-rw-r-xr-x   1 little-idiot      users      262144 Apr 17 00:01 
.glimpse_turbo         
                                
In den ".-Dateien" kann man Verzeichnisse z.B. ausblenden, die nicht 
indiziert werden sollen.

Hier ein Beispiel für einen Suchlauf:

root_(at)_www:/home2/little-idiot/dokumente > time glimpse -H -j -y SYN-ACK
using working-directory '/home2/little-idiot/dokumente' to locate index
/home2/little-idiot/dokumente/firewall/zusammen-130.html: halboffenen 
Verbindungen (Siehe SYN-ACK Mechanismus bei der SINUS Firewall)
/home2/little-idiot/dokumente/firewall/zusammen-80.html: lassen (timeout 
refresh) und ein SYN-ACK sowohl an die echten, als auch die
/home2/little-idiot/dokumente/firewall/zusammen-80.html: SYN-ACK quittiert 
wurden und kann so den SYN-RCVD Buffer leeren. Es
/home2/little-idiot/dokumente/firewall/zusammen-80.html: Host, der die 
gespoofte IP - Nummer besitzt, eine Flut von SYN-ACK Paketen
/home2/little-idiot/dokumente/firewall/zusammen-80.html: gespooften) IP - 
Nummer das Aussenden des SYN-ACK stoppt.
/home2/little-idiot/dokumente/firewall/zusammen-80.html: SYN-ACK Pakete 
verteidigt, denen kein SYN vorangegangen ist. Allerdings
/home2/little-idiot/dokumente/firewall/zusammen-72.html: <LI>SYN-ACK 
"sequence number" Überprüfung </LI>
 
real    0m0.472s
user    0m0.350s
sys     0m0.100s
root_(at)_www:/home2/little-idiot/dokumente > 

Glimpse durchsucht also ca. 32 MByte Dateien (HTML, ASCII, PDF, WORD...) in 
ca. 1/2 Sekunde und gibt diese dann auch aus.

Webglimpse ist nur ein PERL Skript, welches diese Ausgabe dann in HTML 
formatiert - kann man recht einfach auch in PHP machen  - ist albern.

Interessant ist jedoch, daß GLIMPSE auf einem schnellen ALDI - Rechner ca. 
>10 mal so schnell ist, wie meine Kiste hier ...,also 1 GByte Daten in ca. 1 
Sekunde durchsuchen kann, und zwar Volltext mit allen Schikanen. Eine AND 
Verknüpfung z.B. halbiert die Geschwindigkeit. Entscheidend ist jedoch ,daß 
nach beliebigen Suchstrings gesucht werden kann, und daß, im Falle dessen, 
daß kein Eintrag vorhanden ist, die Suche ratzfatz zuende ist. Andere 
Datenbanken suchen sich in diesem Falle tot:

root_(at)_www:/home2/little-idiot/dokumente > time glimpse -H -j -y 23343
using working-directory '/home2/little-idiot/dokumente' to locate index
glimpse: pattern '23343' has no characters that were indexed: glimpse cannot 
search for it
        (to search for numbers, make the index using 'glimpseindex -n ...')
 
real    0m0.077s
user    0m0.050s
sys     0m0.030s
root_(at)_www:/home2/little-idiot/dokumente >      
  
D.h. Glimpse arbeitet wahnsinnig schnell bei Suchanfragen, die kein Ergebnis 
haben. Dieses Verhalten zeigen z.B. auch Yahoo, Google u.s.w. ..
Oracle o. MySQL sind hier wirklich fehl am Platze ....

> Diese sollen im Internet über einen FULLTEXT KEY indiziert und
> recherchierbar sein.

Fulltext Keys gibt es hier nicht, auch keine Indizes - das ist nicht mit SQL 
zu vergleichen. SQL ist von Vorgestern. Ich kenne Glimpse nun schon seit 
vielen Jahren - etwas besseres für Telefonbücher, Volltextsuche, 
Zettelkasten, Daten aller Art gibt es nicht. Man benötigt keine Tabellen, 
keine Vergabe von Spaltennamen, Spaltengrößen, Typen, Indizes o.ä. Quatsch. 
Daten einfach irgendwo in ein Verzeichnis reinschmeißen, Indexer drüberlaufen 
lassen - fertig.

Der Indexer läuft allerdings einige Zeit, so ca. 30 Sekunden für 32 MByte 
....also ca. 20 Minuten/ Gigabyte ....auf einem P233 mit 32 Mbyte RAM.

/usr/bin/glimpseindex -H /home2/little-idiot/dokumente -o -t 
/home2/little-idiot/dokumente 

GLIMPSE selber ist mit GPL Copyright, nur webglimpse ist mit besonderem 
Copyright ....also weg damit ....selber schreiben ....

Ich habe hier mitunter ca. 20-50 simultane Anfragen/Sekunde mit PERL 
CGI-BIN's kann mein Server das verkraften. Mit MOD_PHP im Apache sicher viel 
weniger, nur ca. 2-5 Anfragen.....

Gru/3, Guido Stepken

> (Volltextsuche). Die Erfassung und Korrektur dieser Texte ist einmalig.



-- 
Linux is like a wigwam - No GATES, no WINDOWS and there is a APACHE inside ..
Have fun ! Greetings to all MCSE's (Microsoft Certified System Entertainer)

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive