Fiziksel bir makine ana bilgisayarında çalışan bir sanal makinem (Debian) var. Sanal makine, yerel ağ üzerinden sık sık aldığı veriler için bir tampon görevi görür (bu verilerin süresi 0,5 saniyedir, bu nedenle oldukça yüksek bir verimdir). Alınan tüm veriler sanal makinede saklanır ve tekrar tekrar UDP üzerinden harici bir sunucuya iletilir. Harici sunucu bir veri paketi aldığını (UDP üzerinden) kabul ettiğinde, orijinal veriler sanal makineden silinir ve tekrar harici sunucuya gönderilmez. Sanal makineyi ve harici sunucuyu bağlayan internet bağlantısı güvenilir değildir, yani bir seferde günlerce kapalı olabilir.
VM'yi barındıran fiziksel makine, gücünü günde birkaç kez rastgele keser. Bunun ne zaman gerçekleşeceğini anlamanın bir yolu yoktur ve sisteme UPS, pil veya benzer bir çözüm eklemek mümkün değildir.
Başlangıçta, veriler sanal makinedeki dosya tabanlı bir HSQLDB veritabanında saklanmıştır. Ancak, sık sık elektrik kesintileri sonunda veritabanı komut dosyası bozulmasına neden olur (dosya sistemi düzeyinde değil, yani okunabilir, ancak HSQLDB bunun mantıklı olamaz), bu benim soruya yol açar:
Veriler, elektrik kesintilerinin sık olabileceği ve olabileceği bir ortamda nasıl saklanmalıdır?
Düşünebileceğim bir seçenek, her veri paketini dosya sisteminde bir dosya olarak kaydederek düz dosyalar kullanmaktır. Bu şekilde bir dosya güç kaybı nedeniyle bozulursa, yok sayılabilir ve verilerin geri kalanı bozulmadan kalır. Ancak bu, esas olarak sanal makinede depolanması muhtemel veri miktarı ile ilgili birkaç sorun ortaya çıkarmaktadır. Her veri parçası arasında 0,5 saniyede 10 günde 1.728.000 dosya oluşturulacaktır. Bu, en azından bu verileri depolamak için artan sayıda inode içeren bir dosya sisteminin kullanılması anlamına gelir (mevcut dosya sistemi kurulumu ~ 250.000 mesajdaki ve kullanılan% 30 disk alanındaki düğümlerden bitti). Ayrıca, yönetilmesi zor (imkansız değil).
Başka seçenek var mı? Debian üzerinde çalışan ve elektrik kesintilerinden dolayı bozulmayacak veritabanı motorları var mı? Ayrıca, bunun için hangi dosya sistemi kullanılmalıdır? şu anda kullanılan ext3.
Sanal makinede çalışan yazılım Java 6 kullanılarak yazılmıştır, bu yüzden umarım çözüm uyumsuz olmaz.