baza na plikach w internecie

baza na plikach w internecie

Wątek przeniesiony 2020-06-22 15:44 z Bazy danych przez cerrato.

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0
Afish napisał(a):
bonifacy napisał(a):

lock, a potem leci: write, write, ... i na końcu: unlock (i + flush ewentualnie).

zatem każdy normalny system powinien to realizować poprawnie,
co znaczy że od momentu:
lock, system ma czekać na unlock, zanim zacznie zapisywać na dysk... a nie od razu!

co znaczy że w międzyczasie musi buforować te zapisywane dane, a nie walić prosto w pliki!

To się wywala nawet na jednym komputerze, a co dopiero w rozproszonym systemie, wystarczy ubić aplikację/system przy flushowaniu (i buforowanie nic tu nie da, bo bufory mogą być utracone albo race condition może zapisać je wielokrotnie itp). To da się zrobić ze wsparciem transakcyjnego modyfikowania plików albo innymi sztuczkami na systemie plików (na przykład dwie wersje pliku + wskaźnik do aktualnej + podwójny zapis + podwójny odczyt), ale trudno powiedzieć, czy Twoja baza to robi (a jeżeli Twój opis jest zgodny ze stanem faktycznym, to tego nie robi).

Żartujesz sobie?
Transakcje są zupełnie inaczej realizowane: nie ma tu znaczenia, czy coś się wyłączy, niedokończy w trakcie,
bo wtedy zostanie to dokończone albo zupełnie wycofane w kolejnej sesji: 1 albo 0; nigdy 0.5, czy 0.99.

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0
AnyKtokolwiek napisał(a):
bonifacy napisał(a):

Nie prościej zrealizować to jakimś OneDrive czy inną chmurą plikową?

To nie jest aplikacja dla dzieci...

Ale zrealizowana przez dzieci, nawet nie mające oglądu, co na rynku - zawężając, darmowym rynku - się dzieje i używa.

Jeśli to działa poprawnie, no to bardzo dobrze - można zastosować, nie mam nic przeciwko.

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0

// W sumie racja, pytanie było o dostęp. Nigdzie nie było mowy o tym, że to ma działać. - somekind

Może faktycznie takie coś nie zadziała.
Np. sytuacja typu:

program z tym SQLite na zdalnym robi Lock, a następnie wysiada - brak zasilania, itp...
wtedy ten Lock będzie sobie wisiał, co zablokuje kompletnie dostęp do bazy przynajmniej na kilka sekund, co jest niedopuszczalne.

Zatem co tu trzeba zastosować, przerobić - chyba trzeba zastąpić czymś innym ten SQLite - czym i ile to kosztuje?

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0

Dwa tematy niżej ktoś udowodnił, że wszystko da się zastapić NoSQLem. :)

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0
Marcin.Miga napisał(a):

Dwa tematy niżej ktoś udowodnił, że wszystko da się zastapić NoSQLem. :)

Za ile to zrobisz?

Detale:
A. program jest obecnie w c++ na Windows, z bazami na plikach... czyli Lock, itd.

B. przerób to na SQL, NoSQL, zrób swój serwer, albo użyj gotowego... cokolwiek:
ma to działać tak samo w trybie zdalnym, czyli na smartfonach, pecetach, tabletach... w dowolnym miejscu i czasie.

Sama baza danych jest dość prosta - typowa dla biznesu:
prawie same tabele: zestawienia nakładów - materiałów, pracy itd.,
koszty - płace pracowników, + faktury i inne proste dokumenty,
magazyny, koszty wg działów produkcji, zleceń, inwestycji, itp.

RequiredNickname
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 646
4

Mam wrażenie, że pierwotnie chciałeś fizycznie rozdzielić bazę danych od lokalnej apki na windows(różne hosty) a teraz piszesz, że ma działać wszystko zdalnie na każdej platformie. Jak ma działać na androidzie jak klienta masz na windows w c++?

Napisz sobie apke z wystawionym api(chyba najlepiej działającą na tym samym hoście co ten sqlite żeby nie kombinować) i do tego klienta albo typowo webowego albo natywne aplikacje na każdą platformę która cie interesuje które to api skonsumują.

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0
RequiredNickname napisał(a):

Mam wrażenie, że pierwotnie chciałeś fizycznie rozdzielić bazę danych od lokalnej apki na windows(różne hosty) a teraz piszesz, że ma działać wszystko zdalnie na każdej platformie. Jak ma działać na androidzie jak klienta masz na windows w c++?

Napisz sobie apke z wystawionym api(chyba najlepiej działającą na tym samym hoście co ten sqlite żeby nie kombinować) i do tego klienta albo typowo webowego albo natywne aplikacje na każdą platformę która cie interesuje które to api skonsumują.

Nie interesują mnie drobiazgi: za ile to przeoribisz?

Możesz robić to nawet od zera i w dowolnym softowym gównie: na podstawie aktualnej aplikacji, która działa dobrze w sieci lokalnej.

Nie bójcie się - to nie jest wojna: nie szukam supermanów, a jedynie zwyczajnych ludzi z lekkim doświadczeniem w sprawach baz danych.
W razie problemów pomogę.

RequiredNickname
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 646
3

Szukasz "zwyczajnych ludzi z lekkim doświadczeniem w bazach danych" a powinieneś szukać doswiadczonych ludzi od aplikacji webowych + baz danych albo kogoś od windowsa, maca, ios j androida.

Może nie wyraziłem się dosyć jasno wcześniej: by osiągnąć to co chcesz masz w zasadzie bazę do migracji na coś normalnego + napisać całkowicie nowe aplikacje.

Mi wystarczy taskow w pracy ale moim zdaniem powinieneś zebrać DOKLADNE wymagania j dopiero pisać ofertę.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1
RequiredNickname napisał(a):

Szukasz "zwyczajnych ludzi z lekkim doświadczeniem w bazach danych" a powinieneś szukać doswiadczonych ludzi od aplikacji webowych + baz danych albo kogoś od windowsa, maca, ios j androida.

W sumie racja, niech doświadczeni ludzie też się pośmieją.

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0

Przecież to jest trywialna sprawa, aby taki program przerobić z plików na serwer.

Baza na plikach działa tak (kod c++, ale może być dowolny obiektowy):
TableX->getR(key);
TableX->modiftRecord(key);
TableX->deleteRecord(key);
itd.

I w tym obiekcie Table mamy zapis/odczyt, czyli readfile, writefile, itp.

zatem aby to przerobić na serwer, wystarczy tu zmienić kilka tych funkcji zaledwie!
getR -> zamiast do pliku robimy tu komendę - odwołanie serwera
modify -> podobnie,
itd.

W zasadzie to jest zero roboty - kilkaset linii kodu do napisania zaledwie!

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
3

Kilkaset linii kodu to tak ze 2 tygodnie roboty, jako że po godzinach to tak ze 20 koła trzeba przygotować. Połowa płatna przed, połowa po, pasuje?

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0

Skoro już zarabiasz 40 tyś./mc, to po co ci więcej?
Za darmo powinieneś zrobić takie rzeczy - pro publico bono!

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Dziecko, Ty w ogóle wiesz, co to znaczy pro publico bono?

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 93
0

Moderator wyzywa użytkowników na forum publicznym...
Kasuj temat miernoto.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
5

Zasadniczo jak się kogoś wyzywa, to uczciwiej to robić publicznie niż prywatnie.

Niemniej jednak nazwanie kogoś dzieckiem ciężko uznać za wyzwisko. A jeśli nie chcesz, żeby cię tak nazywano, to zachowuj się dojrzale, na początek nie domagaj się, aby inni ci usługiwali, i sprawdzaj w słowniu każde mądre wyrażenie, którego chcesz użyć.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.