Cześć wszystkim,
Napisałem dla siebie - do moich małych potrzeb prostą bazę danych tzn program serwerowy tcp/ip.
Działa stabilnie jest wielowątkowy sprawdzony na 20 klientów na raz ,nie zawiesza się a jeśli wystąpi bład to po 5 sek tworzy nowy wątek nasłuchujący.
Niestety jestem amatorem i moje algorytmy szyfrowania danych tabel oraz wysyłanych streamów (zwłaszcza szyfrowania wysyłki całych zapisanych tabel jako tabel a nie plików- gdybym wysyłał streamem cały plik wtedy problemu z szybkością by nie było).
I teraz moje pytanie jak jest to rozwiązane w profesjonalnych bazach? Operacje na tstringlist w postaci kodowania takiej tabeli do streama zajmuje znacznie więcej czasu niż ten sam sposób kodowania samego strumienia podczas tworzenia tabeli na dysku jako plik.
Mam dwa pytania:
- jak duże tabele spotykacie najczęściej? - do jakich dostosować mój serwer żeby go z czasem ulepszać?
- Czy - jeśli program kliencki zażyczy sobie wysyłki całej tabeli to czy wysyłać ją w formie Pliku szyfrowanego? Czy najpierw serwer odczytać ma tabele odszyfrowując ją do tstringlist a następnie zaszyfrować do wysyłki listy streamem ? Ten drugi sposób jest bardzo powolny.
Obecnie wygląda to wg sposobu 2, i stabilnie działa dla tabel 1000x1000 elementów - wysyłka internetowa danych to około 3 sek. Natomiast większe tabele potrzebują bardzo dużo czasu i zdarza się że przy ich przepisywaniu do memorystream że jest to ekstremalnie długie co zawiesza przesył. W ogóle nie ma to miejsca przy wysyłaniu bezpośrednio z pliku z pominięciem tstringlist.
Oczywiście istnieje opcja wycofania się z przesyłu takich dużych tabel, jednak w przyszłości być może część moich programów powinna mieć możliwość działania offline jeśli tabele bez danych wrażliwych będą potrzebne. Wtedy programy klienckie będą sprawdzać aktualność tabel w ich katalogach i aktualizować jeśli pojawi się nowa wersja tabeli bo zostanie przez kogoś zaktualizowana o wpisy itd.
Pozdrawiam i proszę o pobłażliwość.
Piszę dla siebie małe programy i do mojego miejsca pracy. Nikt z Was nawet nie pochyliłby się nad rozwiązaniem naszych problemów bo skala i komplikacja jest nieopłacalna dla Was.
Krzysztof