Marcin Jankowski

Marcin Jankowski Główny programista /
współwłaściciel,
Construction Net
Fair

Temat: Znikające rekordy

Witam,

Natrafiłem ostatnio na dziwny problem - w aplikacji którą stworzyłem zaczęły znikać rekordy na bazie danych. Co dziwne znikają one dla jednej osoby i w jednej tabeli. W związku z tym pytanie, czy to możliwe, żeby powodem było działanie silnika bazy danych? Wykonuję w pętli serię zapytań typu INSERT (jednorazowo max kilkadziesiąt) i dane w tabeli utrzymują się przez jakiś czas, są modyfikowane, a po jakimś czasie znikają

Korzystam z MySQL 5.0.77
tabela jest typu MyISAM

Jeśli chodzi o aplikację, żeby zdiagnozować całą sytuację wymazałem z niej wszystkie skrypty które mogłyby usunąć te rekordy w ich miejsce wstawiając zrzucanie informacji do logów - niestety rekordy znowu zniknęły, a logi nic nie wykazały.

Z samymi bazami danych nie mam dużego doświadczenia, więc byłbym wdzięczny, jakby ktoś wskazał mi chociaż, jak zdiagnozować problem, bądź wykluczył bazę danych jako źródło problemu.

Pozdrawiam

konto usunięte

Temat: Znikające rekordy

Cudow nie ma* - albo aplikacja kasuje te rekordy albo nie commituje zmian :)

* Kiedys mialem do czynienia z ciekawym problemem - dla pewnej grupy obiektow (przechowywanych zwykle od kilku miesiecy do kilku lat) codziennie wykonywane bylo zapytanie, ktore dociagalo dodatkowe dane i wrzucalo do drugiej tabeli (kilka milionow rekordow dziennie). I to zapytanie, pewnego dnia, dla jednego rekordu nie zwrocilo danych. Po uwzglednieniu wszystkich sensownych wyjasnien uznalem, ze to sprawa promieniowania kosmiczego, ktore podmienilo mi gdzies jakiegos bita i wiecej do sprawy nie wracalem ;)

konto usunięte

Temat: Znikające rekordy

Ireneusz Ptak:
Cudow nie ma* - albo aplikacja kasuje te rekordy albo nie commituje zmian :)

MyISAM nie ma transakcji więc nie ma czego commitowac

konto usunięte

Temat: Znikające rekordy

Można założyć jakiegoś trigerra logujące na tej tabeli i w tedy zobaczysz co się dzieje.

konto usunięte

Temat: Znikające rekordy

Ireneusz Ptak:
Po uwzglednieniu wszystkich sensownych wyjasnien uznalem, ze to sprawa promieniowania kosmicznego

Raczej błędu elektroniki np RAM, dysku lub ewentualnie ktoś/coś niefortunnie uderzyło w kabel/światłowód i spowodowało zgubienie bitów w transmisji, gdy zwiększa się szybkość oraz miniaturyzuje elektronikę, ryzyko takich błędów wzrasta

W systemach wysokiej niezawodności dubluje się linie transmisyjneDawid Zając edytował(a) ten post dnia 02.12.11 o godzinie 15:46

konto usunięte

Temat: Znikające rekordy

Przemysław R.:
Ireneusz Ptak:
Cudow nie ma* - albo aplikacja kasuje te rekordy albo nie commituje zmian :)

MyISAM nie ma transakcji więc nie ma czego commitowac

Nie zwrocilem uwagi. Tym prosciej - pozostaje delete.

konto usunięte

Temat: Znikające rekordy

Dawid Zając:
W systemach wysokiej niezawodności dubluje się linie transmisyjne

Tak, to byl taki system :)

konto usunięte

Temat: Znikające rekordy

@Ireneusz

Więc pozostaje błąd elektroniki bo promieniowanie kosmiczne raczej nie spowodowałoby takiego błędu, mimo wszystko bardzo ciekawa sytuacja

Trochę odejdę od głównego tematu bo strasznie mnie to zaciekawiło
Czy ten system żądał ponowienia transmisji w razie niezgodności czy tylko odrzucał niezgodne sygnały jako błędne?

konto usunięte

Temat: Znikające rekordy

Jakbym byl adminem a nie programista, to moze bylbym w stanie odpowiedziec na Twoje pytania :)

konto usunięte

Temat: Znikające rekordy

Baza "chodzi" lokalnie, czy zdalnie?

MyISAM to bardzo wydajne rozwiązanie, ale coś za coś. Super wydajność kosztem niezawodności. Jak jest MyISAM MySQL nie robi flusha na dysk - dane są w ramie tylko...

Ja bym wypytał tego nieszczęśnika - pewnie robi coś specyficznego. A w każdym razie - na tej podstawie da się ułożyć jakiś sensowny test. Raczej CI jak jednostkowy.

@Ireneusz - jak następnym razem ktoś zapyta, czy warto robić certyfikaty dam mu linka do tego wątku...

konto usunięte

Temat: Znikające rekordy

Te certyfikaty to a propos czegos?

konto usunięte

Temat: Znikające rekordy

Michał Z.:
Jak jest MyISAM MySQL nie robi flusha na dysk - dane są w ramie tylko...

Ja jestem amatorem jeśli chodzi o bazy danych ale czy przypadkiem nie pomyliło ci się z MEMORY ? MyISAM z tego co wiem trzyma dane w pliku a jego wadą jest duża objętość i robienie bałaganu przy modyfikacjach

konto usunięte

Temat: Znikające rekordy

Dawid Zając:
Michał Z.:
Jak jest MyISAM MySQL nie robi flusha na dysk - dane są w ramie tylko...

Ja jestem amatorem jeśli chodzi o bazy danych ale czy przypadkiem nie pomyliło ci się z MEMORY ? MyISAM z tego co wiem trzyma dane w pliku a jego wadą jest duża objętość i robienie bałaganu przy modyfikacjach


wadą bazy danych jest to że przechowuje trwale dane - pomyśl czy takie stwierdzenie ma sens
Michał Jastrzębski

Michał Jastrzębski Django-fu, phpjutsu,
sql-do

Temat: Znikające rekordy

Jeśli tylko jeden użytkownik to sprawdziłbym, czy w danych tego użytkownika nie ma jakiegoś krzaka. Może ma login "WHERE 1=1; DELETE * FROM Tabela;"?:)

konto usunięte

Temat: Znikające rekordy

Ireneusz Ptak:
Te certyfikaty to a propos czegos?

Od kogoś, kto ma wpisane "Oracle Certified Associate" w przebytych kursach oczekiwałbym większej wiedzy na temat narzędzia, którego używa.
Nie odnosi się to oczywiście do spekulowania na dowolny temat.

konto usunięte

Temat: Znikające rekordy

Dawid Zając:
Michał Z.:
Jak jest MyISAM MySQL nie robi flusha na dysk - dane są w ramie tylko...

Ja jestem amatorem jeśli chodzi o bazy danych ale czy przypadkiem nie pomyliło ci się z MEMORY ? MyISAM z tego co wiem trzyma dane w pliku a jego wadą jest duża objętość i robienie bałaganu przy modyfikacjach

Jak jest MyISAM dane są trzymane w plikach - jeden plik na tabelkę. Rzecz w tym, kiedy te dane trafiają do pliku. Ma być szybko, więc baza nie wymaga, żeby dane fizycznie trafiły na dysk... Albo inaczej - dane trafiają do cache systemowego i jak przyjdzie na nie czas, trafią kiedyś tam na dysk. W ten sposób można zoptymalizować zapis i zyskać na wydajności. No, ale jak baza jest na lokalnej maszynie, sporo się może dziać. Autor wątku nie powiedział, że to jest jedna instancja bazy i jeden z wielu użytkowników ma problem. Może być tak, że program sprzedany został wielu użytkownikom i jeden z nich ma problem...

konto usunięte

Temat: Znikające rekordy

Michał Z.:
Ireneusz Ptak:
Te certyfikaty to a propos czegos?

Od kogoś, kto ma wpisane "Oracle Certified Associate" w przebytych kursach oczekiwałbym większej wiedzy na temat narzędzia, którego używa.
Nie odnosi się to oczywiście do spekulowania na dowolny temat.

A jest jakas sciezka certyfikacji z poczucia humoru? Moze powinienes sie zainteresowac.
Marcin Jankowski

Marcin Jankowski Główny programista /
współwłaściciel,
Construction Net
Fair

Temat: Znikające rekordy

Ehh sprawa się wyjaśniła, a samo źródło problemu było nietypowe. Pochodziło nie z silnika bazy, a z wewnętrznych mechanizmów Cake'a na którym aplikacja stoi i pomimo, że usunąłem z niego wszystko, co wywoływało akcję usuwania, akcja taka miała miejsce przy wyświetlaniu grafiki w widoku, gdzie ustawiałem odpowiednie dla niej nagłówki po zaktualizowaniu bazy danych(zupełnie innej tabeli).

Sytuacja o tyle dziwna, że znikające rekordy dotyczyły modeli jedynie powiązanych z tym, w widoku którego była generowana owa grafika, a w całej aplikacji, jak pisałem wcześniej, każdą akcję związaną z kasowaniem rekordów wyłączyłem, stąd pytanie skierowałem do działu, który nie jest mi tak bliski jak sam cake :)

Dzięki wszystkim za odpowiedzi.

Pozdrawiam
Dawid Jablonski

Dawid Jablonski wszystko zwiazane z
obliczeniami

Temat: Znikające rekordy

a juz mnie korcilo, zeby zapytac jak wygladal insert badz inserty oraz jakei reguly/trigery zalozone sa na tabeli... bo zrozumialem, ze dane do tabel nie trafiaja... :-)



Wyślij zaproszenie do