WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   mysql - longblob - große files speichern ??? (http://www.wcm.at/forum/showthread.php?t=76753)

erdling 11.11.2002 18:10

mysql - longblob - große files speichern ???
 
hi,

ich versuche in den datentyp LONGBLOB, der angeblich 4,2 GB große stücke;-) aufnehmen kann, reinzuschreiben

das funktioniert bis zu dateigrößen von ca. 1 MB

darüber gibt es den folgenden fehler
---------
Error Type: mysqldb.error
Error Value: (2006, 'MySQL server has gone away')
---------

ich schreib das in python

es könnte also theoretisch auch eine beschränkung des mySQL-adapters für python sein ???

hat das schon wer gemacht ?
mit welchen ergebnissen ?

any ideas ???

<tia>

fritz
(-:fs)

käptn 11.11.2002 18:25

Ich tipp auf max_allowed_packet (Konfiguration des MySQL-Servers).

~

_m3 11.11.2002 18:53

Zitat:

* The maximum size of a BLOB or TEXT object is determined by its type, but the largest value you can actually transmit between the client and server is determined by the amount of available memory and the size of the communications buffers. You can change the message buffer size, but you must do so on both the server and client ends. See section 13.2.4 Tuning Server Parameters.
Code:

shell> mysqld --help

This command produces a list of all mysqld options and configurable variables. The output includes the default values and looks something like this:

Possible variables for option --set-variable (-O) are:
back_log              current value: 5
bdb_cache_size        current value: 1048540
binlog_cache_size    current_value: 32768
connect_timeout      current value: 5
delayed_insert_timeout  current value: 300
delayed_insert_limit  current value: 100
delayed_queue_size    current value: 1000
flush_time            current value: 0
interactive_timeout  current value: 28800
join_buffer_size      current value: 131072
key_buffer_size      current value: 1048540
lower_case_table_names  current value: 0
long_query_time      current value: 10
max_allowed_packet    current value: 1048576
max_binlog_cache_size current_value: 4294967295
max_connections      current value: 100
max_connect_errors    current value: 10
max_delayed_threads  current value: 20
max_heap_table_size  current value: 16777216
max_join_size        current value: 4294967295
max_sort_length      current value: 1024
max_tmp_tables        current value: 32
max_write_lock_count  current value: 4294967295
myisam_sort_buffer_size  current value: 8388608
net_buffer_length    current value: 16384
net_retry_count      current value: 10
net_read_timeout      current value: 30
net_write_timeout    current value: 60
query_buffer_size    current value: 0
record_buffer        current value: 131072
slow_launch_time      current value: 2
sort_buffer          current value: 2097116
table_cache          current value: 64
thread_concurrency    current value: 10
tmp_table_size        current value: 1048576
thread_stack          current value: 131072
wait_timeout          current value: 28800

If there is a mysqld server currently running, you can see what values it actually is using for the variables by executing this command:

shell> mysqladmin variables


erdling 11.11.2002 20:34

jo burschn - grandiose tipps

habe 'max_allowed_packet' hinaufgeschraubt auf 50 M in der my.cnf

jetzt kann ich immerhin 16 MB reinschieben
20 MB geht nicht mehr

also die größenberechnungsmethode ist mir nicht ganz geheuer (wird da der netzverkehr mitgezählt?)

aber ich weiß jetzt die richtige schraube an der ich drehen muß

thx - thx - thx


fritz
(-:fs)

erdling 12.11.2002 11:53

über die 16 MB größe komm ich jetzt nicht mehr drüber

habe noch einstellungen (max_heap_table_size war auf 16 MB) erhöht - ohne erfolg?

hat noch jemand eine idee ?

danke

fritz
(-:fs)

-------------------

hier meine variablen

back_log current value: 50
binlog_cache_size current value: 32768
connect_timeout current value: 5
delayed_insert_timeout current value: 300
delayed_insert_limit current value: 100
delayed_queue_size current value: 1000
flush_time current value: 0
interactive_timeout current value: 28800
join_buffer_size current value: 131072
key_buffer_size current value: 52424704
long_query_time current value: 10
lower_case_table_names current value: 0
max_allowed_packet current value: 52427776
max_binlog_cache_size current value: 4294967295
max_binlog_size current value: 1073741824
max_connections current value: 100
max_connect_errors current value: 10
max_delayed_threads current value: 20
max_heap_table_size current value: 52427776
max_join_size current value: 4294967295
max_sort_length current value: 1024
max_tmp_tables current value: 32
max_user_connections current value: 0
max_write_lock_count current value: 4294967295
myisam_max_extra_sort_file_size current value: 256
myisam_max_sort_file_size current value: 2047
myisam_sort_buffer_size current value: 8388608
net_buffer_length current value: 7168
net_retry_count current value: 10
net_read_timeout current value: 30
net_write_timeout current value: 60
open_files_limit current value: 0
query_buffer_size current value: 0
record_buffer current value: 131072
record_rnd_buffer current value: 0
slave_net_timeout current value: 3600
slow_launch_time current value: 2
sort_buffer current value: 524280
table_cache current value: 64
thread_concurrency current value: 10
thread_cache_size current value: 0
tmp_table_size current value: 33554432
thread_stack current value: 65536
wait_timeout current value: 28800

käptn 12.11.2002 13:14

heap_tables sin Tabellen, welche nur im Speicher und nicht auf der Platte vorhanden sind.

Und was ist, wenn du die Daten häppchenweise per update rüberschiebst?

~

erdling 12.11.2002 14:16

>>> Und was ist, wenn du die Daten häppchenweise per update rüberschiebst?

hmmm, die idee gefällt mir gut -
ist ohnehin nicht so geschickt riesige dateien übers netz zu schicken

könnte natürlich eine große datei teilen

dann brauch ich in SQL eine art von 'append' um das wieder zusammenzusetzen

gibts sowas, oder kann 'update' das ???

das 'update' schaut meines wissens immer ungefähr so aus
---
UPDATE <table> SET <column> = <expression>
---
beim 'expression' müßte ich jetzt sowas wie 'alter wert' APPEND 'neuer wert' einsetzen können ...

umpf - geht das in SQL (ist nicht meine muttersprache;-) ???

fritz
(-:fs)

käptn 12.11.2002 14:41

UPDATE bin_table SET bin_col = bin_col + ... WHERE id = ...

Mal eine Frage am Rande: Was schaufelst du da eingentlich MBweise in die DB?

~

erdling 12.11.2002 15:24

danke fürs SQL - kanns erst am abend ausprobieren ...

---------------------------------

>>> Mal eine Frage am Rande: Was schaufelst du da eingentlich MBweise in die DB?

einfach alles (dumme antwort)

also mir sind die diversesten archivierungen auf den geist gegangen
(edv)bücher, schallplatten, notizen über dieses und jenes, ...

deshalb hab ich mir eine anwendung gebaut

----
frontend mittels browser (HTML, python-scripts, Zope = webserver)
middleware in python
hinten mySQL
-------

und zwar mappe ich objekte (=eine sammlung von attributen - also eigentlich alles) auf eine relationale DB

und dort kommt jetzt alles rein

das können eben bücher, schallplatten, eingescannte dokumente aus zeitschriften (die können schon groß werden), bilder, vielleicht auch die ISO-files von linux distributionen sein

bei den heutigen festplattengrößen ist das kein problem

für einen neuen object-typ brauche ich nur ein neues eingabeformular (ein anderes kopieren, attribute anpassen, SAVE aufrufen, FERTIG) und selbiges für ein suchformular

keine neuen tabellen-struktuen, m:n relationen, SQL statements (das mit den files, die bei objekten hängen, wird hoffentlich der letzte clou)

und ich brauche mich nur mehr um _EINE_ datenbank zu kümmern (sichern, etc.), es ist auch übers netz und auf jeder maschine mit browser nutzbar


fritz
(-:fs)

Sloter 12.11.2002 16:03

Bei Daten wie Bilder oder Isofiles schreibt nur einen Link in die DB und nicht das ganze File.

Die MySql Datenbank wird ja sonst irre langsam.

Sloter

erdling 12.11.2002 21:17

>>>>>>>
Bei Daten wie Bilder oder Isofiles schreibt nur einen Link in die DB und nicht das ganze File.
<<<<<<<

dann habe ich zumindest schon wieder zwei dinge zu sichern und zu verwalten
die DB
die files im filesystem

und bei jeder änderung -
neue festplatte mit anderem buchstaben
vielleicht andere maschine (win <--> lin ) aus "C:\eigene dateien\bilder" wird "/home/ich/bilder"

fängt das aktualisieren der links an

und genau das alles will ich ja vermeiden

>>>>>>>
Die MySql Datenbank wird ja sonst irre langsam.
<<<<<<<

was genau soll daran langsam werden ???

meine 'longblobs' liegen in einer eigenen table - und ob dort hineingegriffen wird entscheidet der benutzer
wenn er das bild mit 50 MB sehen und daher übers netz ziehen will, ja dann wirds ein wenig dauern,
aber ich sehe keinen unterschied, wenn das bild im filesystem des betriebssystems liegt ???

fritz
(-:fs)

erdling 12.11.2002 23:25

lösung
 
A.2.8 Packet too large Error

When a MySQL client or the mysqld server gets a packet bigger than max_allowed_packet bytes, it issues a Packet too large error and closes the connection.

In MySQL 3.23 the biggest possible packet is 16M (due to limits in the client/server protocol). In MySQL 4.0.1 and up, this is only limited by the amount on memory you have on your server (up to a theoretical maximum of 2G).


vielleicht brauchts jemand ...


fritz
(-:fs)

Sloter 13.11.2002 08:52

@erdling

Ab ~ 2GB Inhalt wird MySql langsam.
Nicht das Downloaden eines z.B Bildes sondern die Abfrage und Suche.

Wenn du die Bilder im DokumentRoot von dem Webserver ablegst, bleibt der Pfad immer gleich, auch auf anderen Maschinen und Platten.

Mit einem Cron läßt sich das alles leicht sichern
cp /pfad/zu/denTabellen/* /backup/
cp /pfad/dokument/root/* /buckup/

Das Einzige das du beim übersiedeln anpassen mußt ist die IP in deinen Scripten oder der Domainname.

Sloter

erdling 13.11.2002 11:17

jez wirds dechnisch - subbba
 
>>>>>>>>>>
Ab ~ 2GB Inhalt wird MySql langsam.
Nicht das Downloaden eines z.B Bildes sondern die Abfrage und Suche.
<<<<<<<<<<

ich glaub das kann man nicht so einfach sagen
wenn du von einer 'normalen' satzgröße ausgehst, wirds vielleicht schon tables mit 1 million records geben

da hat jede DB irgendwo eine grenze wo sie in die knie geht

extrembeispiel -
wenn ich 100 CD speichere dann sind das 6 GB
aber ich kann mir nicht vorstellen, daß die suche nach dem namen (indiziert natürlich) in hundert sätzen lange dauert

also die absolute DB größe ist _nicht alleine_ ausschlaggebend

------------------------------------

<<<<<<<<<<<<<
Wenn du die Bilder im DokumentRoot von dem Webserver ablegst, bleibt der Pfad immer gleich, auch auf anderen Maschinen und Platten.
>>>>>>>>>>>>>

das hab ich glaube ich nicht verstanden

wenn ich hart (absolut) einen pfad eintrage scheiterts doch schon an den 'verkehrten' strichen zwischen windows und unix maschinen ('\' != '/')

-------------------------------------

>>>>>>>>>>>>>
Das Einzige das du beim übersiedeln anpassen mußt ist die IP in deinen Scripten oder der Domainname.
<<<<<<<<<<<<<

das ist genau _eine_ stelle, dort wo der connect zur DB aufgebaut wird
wenn ich dort statt rechner_A den rechner_XY eintrage läuft das ganze auf einer anderen DB (aber dem selben webserver)

dort könnte ich auch 10 datenbanken connecten und 'round robin' cursor an die speicherlogik ausgeben, damit in 10 DBs eingetragen wird (die suche wird dann ETWAS erschwert - also ein konzept, welche DB was speichert braucht man schon) aber das ganze ist hoch skalierbar (bin ich jetzt bei 20 GB kritische mysql masse ???)


uff - genug getippt

fritz
(-:fs)

Sloter 13.11.2002 13:19

Re: jez wirds dechnisch - subbba
 
<ich glaub das kann man nicht so einfach sagen
<wenn du von einer 'normalen' satzgröße ausgehst, wirds vielleicht <schon tables mit 1 million records geben
Es ist auch nicht die Anzahl der Einträge ausschlaggebend sondern die Größe.

<da hat jede DB irgendwo eine grenze wo sie in die knie geht
Sicher, aber MySql geht lange vor Oracle & Co die Luft aus.

<wenn ich 100 CD speichere dann sind das 6 GB
<aber ich kann mir nicht vorstellen, daß die suche nach dem namen <
<(indiziert natürlich) in hundert sätzen lange dauert
Doch weil die gesammt Dateigröße zu groß für MySql wird.

<also die absolute DB größe ist _nicht alleine_ ausschlaggebend
Eh net, aber wenn sie zu Groß wird dann schon :D


<wenn ich hart (absolut) einen pfad eintrage scheiterts doch schon an <den 'verkehrten' strichen zwischen windows und unix maschinen ('\' !<= '/')
Nö nö, unser Freund Apache, kann einiges ausbügeln in der Url.


<skalierbar (bin ich jetzt bei 20 GB kritische mysql masse ???)
Auf wie viele DB und Server verteilt? Wenn du nur Links hättest, würdest wahrscheinlich mit einer DB auskommen die schlank und rank ist und einem fetten Fileserver :D


Sloter

erdling 13.11.2002 15:02

nächste runde - gong ;;;-)))
 
>>>>>>>>>>>>>>>>
<also die absolute DB größe ist _nicht alleine_ ausschlaggebend
Eh net, aber wenn sie zu Groß wird dann schon
<<<<<<<<<<<<<<<<

hmmm, ein index sollte eigentlich ein eigenes file sein und daher von der größe der 'wirklichen' daten unabhängig - aber ich weiß nicht wirklich wie mysql das macht
das zweite ist der tatsächliche zugriff und da können große files schon probleme verursachen (swappen, ...)

da du offenbar mit dem ding schon längere praxis hast (od'r ?) -
kannst du - nur ungefähr - den zeitunterschied einer suche schätzen
bleiben wir bei dem beispiel mit 100 x CD = 60 GB:

einmal mit den daten in der DB
einmal mit den daten auf einem fileserver und nur link gespeichert

???

---------------------------------------

>>>>>>>>>>>>>
<wenn ich hart (absolut) einen pfad eintrage scheiterts doch schon an <den 'verkehrten' strichen zwischen windows und unix maschinen ('\' !<= '/')
Nö nö, unser Freund Apache, kann einiges ausbügeln in der Url.
<<<<<<<<<<<<

der _mir_ unbekannte indianer freund mag das schon können

mein mir mehr bekannter zope-freund ist ganz anders aufgebaut

da gibts kein herumstochern in verzeichnissen des betriebssystems -
sämtliche webobjekte liegen in einer internen objekt datenbank, welche sich im admin-fenster natülich auch als verzeichnisstruktur darstellt

und da die liebe zu diesem zope-freund noch einigermaßen jung ist habe ich zu der eingebauten objedatenbank wenig vertrauen und bin in eine SQL DB 'hinausgegangen'

====================================

grundsätzliches -

wenn du sagst apache gleicht das aus,
dann heißt das, daß die oberfläche ( = GUI = oberste schicht) einer 3-tier anwendung sich um _semantische_ dinge in der datenbank ( = unterste, dritte schicht) kümmert

das halte ich für sehr schlechtes design

da sind weder die drei schichten unabhängig voneinander -
noch ärger - eine ganze schicht ( = mittelschickt = business logic) wird übersprungen

das gefällt mir gar nicht gut - schlanke DB hin und fileserver her

--------------------

vielleicht hab ichs auch falsch verstanden, da ich den apachen nicht kenne

aber meine anforderung IST:

wenn es mir morgen einfällt eine andere als die WEB-oberfläche zu programmieren (vielleicht in java) dann habe ich mit der MITTELSCHICHT folgende kommunikation
1.) objekt lesen
2.) objekt speichern
3.) objekt suchen

wenn ich mich um mehr kümmern muß - vielleicht die art der speicherung der links auf dateien in der datenbank ('\' <---> '/') - dann habe ich was falsch gemacht (-O


fritz
(-:fs)

Sloter 13.11.2002 15:27

Re: nächste runde - gong ;;;-)))
 
<das zweite ist der tatsächliche zugriff und da können große files <schon probleme verursachen (swappen, ...)
Klar doch, sogar schon beim sortieren oder beim Überspielen wie du siehst
<da du offenbar mit dem ding schon längere praxis hast (od'r ?) -
Man tut was man(n) kann :rolleyes: . Wie lange machst du schon mit DB`s rum?

<kannst du - nur ungefähr - den zeitunterschied einer suche schätzen
<bleiben wir bei dem beispiel mit 100 x CD = 60 GB:
Leichte Milchmädchenrechnung.
Meine 100 CD Links mit Titel,Interpreter und kleine Geschichte sind keine 2 MB
Die wird er doch schneller als deine 60 GB durchackern?


<der _mir_ unbekannte indianer freund mag das schon können
mod_speling ist der unbekannte dritte oder auch der Neffe mod_rewrite mit seinem Bruder mod_alis :D

<mein mir mehr bekannter zope-freund ist ganz anders aufgebaut
Steuerst du Zope über Apache oder eigenständig?

<da gibts kein herumstochern in verzeichnissen des betriebssystems -
Nö die gucken nur in der DokumentRoot nach. Kann aber auch auf wunsch ausserhalb stattfinden.
Je nach belieben :tux:

<sämtliche webobjekte liegen in einer internen objekt datenbank, <welche sich im admin-fenster natülich auch als verzeichnisstruktur <darstellt
Muß ja quälend langsam sein das Ding......


<dann heißt das, daß die oberfläche ( = GUI = oberste schicht) einer <3-tier anwendung sich um _semantische_ dinge in der datenbank ( = <unterste, dritte schicht) kümmert
Der Apache bastelt sich nur eine richtige Url zusammen, da wird nicht direkt in der DB herumgepfuscht.

<das halte ich für sehr schlechtes design
<das gefällt mir gar nicht gut - schlanke DB hin und fileserver her
Haste falsch verstanden.........ist mächtig Leistungsfähigdie Kombination und unendlich Erweiterbar.


<wenn es mir morgen einfällt eine andere als die WEB-oberfläche zu <programmieren (vielleicht in java) dann habe ich mit der
Nimm PHP :D und es ist egal welche Sprache den Link aus der DB rausholt und darstellt.

<wenn ich mich um mehr kümmern muß - vielleicht die art der <speicherung der links auf dateien in der datenbank ('\' <---> '/') -
s.o = Module von/für Apache

<dann habe ich was falsch gemacht (-O
Nö, so kann man das nicht sagen...nur deine DB hat bald die Grenze erreicht und du darfst das Sparschwein für eine Oracle 8i schlachten wo ich noch lange einen auf Free und Easy mache :D

Sloter

erdling 13.11.2002 15:39

jo moment
 
sitzt du mit drei seketärinnen vorm kistl

so schnell wie du schreibst kann ich ja nicht einmal lesen ;-)

fritz
(-:fs)

erdling 13.11.2002 16:00

>>>>>>>>>>>>>>>>>
Wie lange machst du schon mit DB`s rum?
<<<<<<<<<<<<<<<<<

kommt sich drauf an was man unter DB versteht

wenn du auch dBase III plus gelten läßt -> lang :-)

-----------------------------------
>>>>>>>>>>>>>>
<kannst du - nur ungefähr - den zeitunterschied einer suche schätzen
<bleiben wir bei dem beispiel mit 100 x CD = 60 GB:
Leichte Milchmädchenrechnung.
Meine 100 CD Links mit Titel,Interpreter und kleine Geschichte sind keine 2 MB
Die wird er doch schneller als deine 60 GB durchackern?
<<<<<<<<<<<<<<

ähhh, keine ablenkungsmanöver ;-)
ich habe mir wirkliche zahlen erhofft

weil genau die 10 fache suchzeit -
also statt 3 milliskunden ewig lange 3 hunderstel sekunden -
ist genau wurscht

-------------------------------------

>>>>>>>>>>>>
<mein mir mehr bekannter zope-freund ist ganz anders aufgebaut
Steuerst du Zope über Apache oder eigenständig?
<<<<<<<<<<<<

eigenständig

-------------------------------------
<sämtliche webobjekte liegen in einer internen objekt datenbank, <welche sich im admin-fenster natülich auch als verzeichnisstruktur <darstellt
Muß ja quälend langsam sein das Ding......

eigentlich nicht

aber es gibt da noch eine sauschnelle eingebaute alternative
die ist deshalb so schnell, weil sie (die DB) _komplett_ in den speicher geladen wird <uff>
also hauptspeicher und DB-größe sollten in einer vernünftigen relation stehen ...

--------------------------------------

<dann heißt das, daß die oberfläche ( = GUI = oberste schicht) einer <3-tier anwendung sich um _semantische_ dinge in der datenbank ( = <unterste, dritte schicht) kümmert
Der Apache bastelt sich nur eine richtige Url zusammen, da wird nicht direkt in der DB herumgepfuscht.

ich könnte ja wenn mir fad ist die mittelschicht auch von apache aus steuern (es gibt ja ziemlich sicher ein mod_python oder wie das heißt)
wird das nächste projekt, wenn mir zope zu fad wird ...

--------------------------------------
>>>>>>>>>>>>>>>>>
<wenn es mir morgen einfällt eine andere als die WEB-oberfläche zu <programmieren (vielleicht in java) dann habe ich mit der
Nimm PHP und es ist egal welche Sprache den Link aus der DB rausholt und darstellt.
<<<<<<<<<<<<<<<<<

python ist mir sympatischer
und mit dem hab ichs gemacht

---------------------------------------

<wenn ich mich um mehr kümmern muß - vielleicht die art der <speicherung der links auf dateien in der datenbank ('\' <---> '/') -
s.o = Module von/für Apache

tja und was macht meine zukünftige java-oberfläche mit apache-modulen ???

---------------------------------------

<dann habe ich was falsch gemacht (-O
Nö, so kann man das nicht sagen...nur deine DB hat bald die Grenze erreicht und du darfst das Sparschwein für eine Oracle 8i schlachten wo ich noch lange einen auf Free und Easy mache

siehe skalierung -
ich werde 10 rechner a 100,- euro aufstellen
die haben dann ca. 512 kB x 10 = 5 GIG hauptspeicher
und ca. eine prozessorleistung von 500 MHz x 10 = 5 GHz

ziemliche gute kiste für 500 euro


grins


fritz
(-:fs)

Sloter 13.11.2002 17:08

<aber es gibt da noch eine sauschnelle eingebaute alternative
<die ist deshalb so schnell, weil sie (die DB) _komplett_ in den <speicher geladen wird <uff>
<also hauptspeicher und DB-größe sollten in einer vernünftigen <relation stehen ...
Mit dem Indianer könntest du komplette Abfragen in die Ram laden, nochmals etwas mehr performanz ;)



<wenn ich mich um mehr kümmern muß - vielleicht die art der <speicherung der links auf dateien in der datenbank ('\' <---> '/') -
<s.o = Module von/für Apache
<tja und was macht meine zukünftige java-oberfläche mit apache-<modulen ???
Die Frage sollte heißen, warum greift der Apache mit seinem Modul schon vorher ein und verändert die Url auf eine Datei die er hat.
IMHO kannst du mit Java auch Zeichen in der Url erstzen/austauschen.


siehe skalierung -
<ich werde 10 rechner a 100,- euro aufstellen
<die haben dann ca. 512 kB x 10 = 5 GIG hauptspeicher
<und ca. eine prozessorleistung von 500 MHz x 10 = 5 GHz
<ziemliche gute kiste für 500 euro
Das ist aber jetzt eine Milchmädchenrechnung :confused:
Besser wäre ein LoadBalancer dahinter 2 Webserver und dann noch 2 dicke DB-Server.
Keiner unter 1 GB Ram.

Meine kleine DB nur mit den Links würde wahrscheinlich sehr pasabel auf einem PII mit 256 Ram laufen :D



Sloter

erdling 13.11.2002 19:04

>>>>>>>>>>>>>>>>>>>>>
<wenn ich mich um mehr kümmern muß - vielleicht die art der <speicherung der links auf dateien in der datenbank ('\' <---> '/') -
<s.o = Module von/für Apache
<tja und was macht meine zukünftige java-oberfläche mit apache-<modulen ???
Die Frage sollte heißen, warum greift der Apache mit seinem Modul schon vorher ein und verändert die Url auf eine Datei die er hat.
IMHO kannst du mit Java auch Zeichen in der Url erstzen/austauschen.
<<<<<<<<<<<<<<<<<<<

egal obs apache macht, eine java anwendung oder meine python anwendung

vom link zum file bleibt es ein schritt mehr als wenn die daten direkt in der datenbank stehen
und dort gehören sie hin - heißt ja schließlich nicht linkbank;-)

-------------------------------

>>>>>>>>>>>>>>>>>>>
siehe skalierung -
<ich werde 10 rechner a 100,- euro aufstellen
<die haben dann ca. 512 kB x 10 = 5 GIG hauptspeicher
<und ca. eine prozessorleistung von 500 MHz x 10 = 5 GHz
<ziemliche gute kiste für 500 euro
Das ist aber jetzt eine Milchmädchenrechnung
<<<<<<<<<<<<<<<<<<<

stimmt

vor allem ist sie falsch, weil 10 x 100 nicht ganz 500 ergibt )-:
und 512 MB gemeint waren (nicht kB)

aber vom prinzip her ist es so, daß starke maschinen unverhältnismäßig teuer sind und nur dann sinnvoll, wenn man die benötigte leistung wirklich _nicht_ teilen kann

aber genau daß ist durch meinen objektansatz kinderleicht

wenn mysql langsam wird nehme einen objekttyp und verlagere ihn auf einen anderen (DB)rechner

z.b. alle bilder -
und sämtliche zugriffe, die bilder betreffen werden einfach eine andere maschine gesendet
damit habe ich 2 CPUs und doppelt RAM (wieviel das auch immer ist)

--------------------------------------

>>>>>>>>>>>>>>>>>>
Besser wäre ein LoadBalancer dahinter 2 Webserver und dann noch 2 dicke DB-Server.
Keiner unter 1 GB Ram.
<<<<<<<<<<<<<<<<<<

das ist eine andere baustelle

das brauch ich wenn der webserver die anzahl der zugriffe nicht mehr alleine schafft

den datenbank loadbalancer habe ich ja schon - siehe oben (statisch zwar, aber immerhin)


fritz
(-:fs)

Sloter 13.11.2002 20:03

<vom link zum file bleibt es ein schritt mehr als wenn die daten <direkt in der datenbank stehen
<und dort gehören sie hin - heißt ja schließlich nicht linkbank;-)
Du hast ja auch einen unnötigen Schritt bei dir eingebaut.
Das Script muß erst nachsehen in welcher DB die Daten sind.
Und sie heißt auch nicht Filebank ;-)

<vor allem ist sie falsch, weil 10 x 100 nicht ganz 500 ergibt )-:
<und 512 MB gemeint waren (nicht kB)
Nein, weil deiner Abfrage nicht die vollen Ram zur Verfügung stehen sondern die der jeweiligen Maschine.


Sloter

erdling 14.11.2002 01:24

>>>>>>>>>>>>>>>>
Du hast ja auch einen unnötigen Schritt bei dir eingebaut.
Das Script muß erst nachsehen in welcher DB die Daten sind.
Und sie heißt auch nicht Filebank ;-)

Nein, weil deiner Abfrage nicht die vollen Ram zur Verfügung stehen sondern die der jeweiligen Maschine.
<<<<<<<<<<<<<<<<

eben nicht ...

... weil ich objekttypen trenne - also beispielsweise 'kunden' in eine DB und 'produkte' in die zweite DB


d.h.

a) das objekt weiß selbst wo es hin gehört (=hat einen 'connect' auf die DB in der hand, wo es 'cursor' holen und 'execute' aufrufen kann)

also
kunde.save()
produkt.save()
speichern in verschiedene DBs auf verschiedenen computern

_kein_ zusätzliches script entscheidet das

b) da manche nach 'kunden' und manche nach 'produkten' suchen verwendet das system sehr wohl BEIDE cpus und das DOPPELTE ram gleichzeitig


also eine sehr billige variante von einem doppelprozessor-datenbank-server

und das ist natürlich auf mehr als zwei maschinen ausbaubar

der flaschenhals ist eindeutig die übertragungsrate des netzwerks


UND MEIN SPARSCHWEIN GEHÖRT MIR
das rührt weder oracle noch ein server-hersteller an - ätsch


fritz
(-:fs)

Sloter 14.11.2002 09:58

Morning erdling

The never ending Story :D

<b) da manche nach 'kunden' und manche nach 'produkten' suchen <verwendet das system sehr wohl BEIDE cpus und das DOPPELTE ram <gleichzeitig
Und wenn zwei Personen nach Kunden suchen hat die CPU am Produkteserver Feierabend und kann auf ein Bier mit den Ram gehen :)

<also eine sehr billige variante von einem doppelprozessor-datenbank-<server
"lol" zu billig

<und das ist natürlich auf mehr als zwei maschinen ausbaubar
Für jede Tabelle eine eigene Maschine :D

<der flaschenhals ist eindeutig die übertragungsrate des netzwerks
Hama noch kein Gigabit Lan :smoke:

<UND MEIN SPARSCHWEIN GEHÖRT MIR
<das rührt weder oracle noch ein server-hersteller an - ätsch
Auch das werden wir noch bekommen :feiern:

Sloter

erdling 14.11.2002 10:11

>>>>>>
Morning erdling
<<<<<<

moaning - auch erst aufgestanden :-)

------------------------

>>>>>>>
<b) da manche nach 'kunden' und manche nach 'produkten' suchen <verwendet das system sehr wohl BEIDE cpus und das DOPPELTE ram <gleichzeitig
Und wenn zwei Personen nach Kunden suchen hat die CPU am Produkteserver Feierabend und kann auf ein Bier mit den Ram gehen
<<<<<<<<

für zwei nutzer brauchst auch nicht mehrere datenbank server

und bei großen nutzerzahlen ist es statistisch _sehr_unwahrscheinlich, daß alle nur nach kunden fragen

außer hab ich dann wenigstens einen server, der mit mir auf a bier geht <hehe>

------------------------------------

>>>>>>>>>
<also eine sehr billige variante von einem doppelprozessor-datenbank-<server
"lol" zu billig
<<<<<<<<<

ich kann dir das auch teuer verkaufen

------------------------------------

>>>>>>>>
<und das ist natürlich auf mehr als zwei maschinen ausbaubar
Für jede Tabelle eine eigene Maschine
<<<<<<<<

warum nicht

-------------------------------------

>>>>>>>>>>
<der flaschenhals ist eindeutig die übertragungsrate des netzwerks
Hama noch kein Gigabit Lan
<<<<<<<<<<

nö - hast gratis karten router, ...
für mich ?

------------------------------------

>>>>>>>>>
<UND MEIN SPARSCHWEIN GEHÖRT MIR
<das rührt weder oracle noch ein server-hersteller an - ätsch
Auch das werden wir noch bekommen
<<<<<<<<<

womit will mich da ködern ???

---------------------------------

fritz -

der jetzt kaffee trinken muß, sonst kennt er sich gar nicht aus :-)


(-:fs)

Sloter 14.11.2002 10:34

Hy Erdling


<ich kann dir das auch teuer verkaufen
Ne laß mal, sowas ist normalerweise meine Aufgabe ;)

<nö - hast gratis karten router, ...
<für mich ?
Ja, aber nur mit Supportvertrag :D


<womit will mich da ködern ???
Mit einem Blade oder VServer für deinen Datenbankcluster :)


Sloter

erdling 14.11.2002 11:16

>>>>>>>>>>>>
<ich kann dir das auch teuer verkaufen
Ne laß mal, sowas ist normalerweise meine Aufgabe

<nö - hast gratis karten router, ...
<für mich ?
Ja, aber nur mit Supportvertrag

<womit will mich da ködern ???
Mit einem Blade oder VServer für deinen Datenbankcluster
<<<<<<<<<<<<

wenns geht, schick mir da näheres

wer weiß, vielleicht brauch ich das wirklich einmal

aber besser nicht hier ins forum sondern an --->

datenbankcluster_um_200_euro@floSoft.net

<grins>


fritz
(-:fs)


zum thema gibt es jetzt zwei möglichkeiten --->

1.) _ich_ habe recht und _du_ zahlst das bier

2.) _du_ zahlst das bier und _ich_ habe recht


was ist dir lieber O-)

(-:fs)

???????????

Sloter 14.11.2002 13:35

<zum thema gibt es jetzt zwei möglichkeiten --->
1.) _ich_ habe recht und _du_ zahlst das bier
2.) _du_ zahlst das bier und _ich_ habe recht


Da du dein ganzes Geld für die vielen Server ausgeben mußt und ich mit meinem PII mit einer spartanischen aber leistungsfähigeren Datenbank mir viel Geld ersparre, lade ich dich auf ein Bier ein.

Und recht habe trotzdem ich :p :D

Sloter

erdling 14.11.2002 16:54

>>>>>>>>
Da du dein ganzes Geld für die vielen Server ausgeben mußt und ich mit meinem PII mit einer spartanischen aber leistungsfähigeren Datenbank mir viel Geld ersparre, lade ich dich auf ein Bier ein.
<<<<<<<<

das ist eine ansage

dann gehe ich heute abend einmal trainieren
bröselteppich maxi-ausgabe
und dazu die eine oder andere schaumrolle

---------------------------------------

>>>>>>>>>
Und recht habe trotzdem ich
<<<<<<<<<

das wird noch ausverhandelt

ohne teststellung mit überzeugenden meßergebnissen glaub ich gar nix

fritz from earth
(-:fs)


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag