FileMaker Server 19.1.2: miglioramento di prestazioni, stabilità ed affidabilità

Condividi su facebook
Condividi su twitter
Condividi su linkedin

Il ruolo di un amministratore di database - anche se svolto in modo amatoriale per amici e parenti, o per la propria attività imprenditoriale - è incentrato sul mantenimento di riservatezza, integrità e disponibilità dei database. Che questi database siano gestiti da FileMaker Server certo non cambia la sostanza.

Mentre in passato amministrare FileMaker Server (FMS) era solo una sorta di “appendice” al lavoro di sviluppo (e FMS ricambiava tale scarso interesse con una povertà di opzioni quasi disarmante) nelle ultime versioni la gestione di FileMaker Server è diventata “adulta”, ricca ed articolata. L'aggiornamento 19.1.2 prosegue in tale direzione aggiungendo ulteriori strumenti per migliorare prestazioni, stabilità ed affidabilità conducendo l’amministratore nei più intimi meccanismi del motore di FileMaker Server.

Vediamo quindi in dettaglio cosa ci porta questa nuova release!

Miglioramenti di stabilità e affidabilità

Stabilità e affidabilità senza "page-level locking"

Sono state apportate importanti modifiche al motore di database di FileMaker Server nelle ultime versioni.

Una di queste è stata l'introduzione del page-level locking (PLL) in FileMaker Server 18. Questo "blocco a livello di pagina" ha come scopo migliorare le prestazioni per gli utenti simultanei che consultano un database. Si è però riscontrato che in determinate condizioni PLL (soprattutto in combinazione con la ricostruzione all'avvio) può causare problemi di stabilità e affidabilità. 

Nella versione 19, quindi, la ricostruzione all'avvio (startup restoration) e il PLL sono stati disabilitati come impostazione di default, ma potevano ancora essere abilitati dall'utente amministratore.

Con la versione 19.1.2, la ricostruzione all'avvio è definitivamente disabilitata e sia il comando fmsadmin che l'API di amministrazione di FMS non consentono più di attivarla.

Siamo quindi di fronte a un dietro-front radicale, che ha comportato una riscrittura del motore di FMS.

Dopo esaustivi stress test utilizzando diversi strumenti standard del settore e sviluppati internamente, si è visto che l'utilizzo di uno sharing lock per gestire l’accesso alla struttura del database - in associazione ad altre ottimizzazioni descritte dopo -  consentiva di ottenere prestazioni migliori rispetto all'utilizzo di PLL e di evitare i problemi di stabilità e affidabilità. 

Script pianificato per eliminare il file di database temporaneo

Per mantenere FileMaker Server in esecuzione con le migliori prestazioni, un amministratore del server deve assicurarsi che ci sia abbastanza spazio libero su disco e sufficiente memoria cache allocata a FileMaker Server.

FileMaker Server 19.1.2 ora include uno script integrato per eliminare il file di database temporaneo.

Lo scopo del file di database temporaneo è memorizzare temporaneamente le transazioni dei record in modo che possano essere interrotte, se necessario.

Tuttavia, più a lungo è in esecuzione il motore di database, più grande può diventare il file di database temporaneo.

L'eliminazione regolare del file di database temporaneo può aiutare a risparmiare sia lo spazio su disco sia la quantità di memoria cache utilizzata da FileMaker Server e dal suo motore di database.

Per eseguire questo script regolarmente va creata una pianificazione dello script di sistema nella Admin Console. Il nome dello script è obbligato, Sys_Default_PurgeTempDB e va scelto dall'elenco che viene proposto, come mostrato nella figura. 

Schermata 2020-10-30 alle 01.22.54.png

Poiché questo script è integrato in FileMaker Server, non viene memorizzato nella cartella Scripts con gli altri script di sistema. 

Non è presente pianificazione predeterminata. Sarà quindi l'amministratore di sistema ad impostare quanto spesso eseguire questa pulizia del file di database temporaneo. Claris ci viene in auto e ci fornisce qualche suggerimento da tenere presente. Le indicazioni sono:

- eseguire la pulizia del file di database temporaneo quando FileMaker Server non è molto utilizzato, ossia preferibilmente quando pochi utenti sono collegati e non sono programmate altre attività importanti (usualmente la sera tardi). Lo script, infatti, script potrebbe influire sulle prestazioni di altre attività;

- eseguire la pulizia del file di database temporaneo prima di un backup pianificato;

- eseguire la pulizia del file di database temporaneo almeno una volta al giorno.

Cache di FileMaker server

FileMaker Server ha un valore predefinito di memoria cache di 512 MB.

È possibile utilizzare l'interfaccia della riga di comando o l'API di Claris FileMaker Admin per modificare la dimensione della cache in base al carico del server e alla sua memoria disponibile.

Che esista una dimensione predefinita della cache e la relativa possibilità di modificare questo valore non sono nuove nella versione 19.1.2. Vale tuttavia la pena di ricordare che la dimensione della cache va sempre ottimizzata.

L'approccio migliore è monitorare la percentuale di accessi alla cache nel file Stats.log.

Questo valore è la percentuale di volte in cui FileMaker Server ha recuperato i dati dalla memoria cache anziché dal disco rigido. Se è inferiore al 90-95%, è necessario aumentare la dimensione della cache fino a quando non è il più vicino possibile al 100%.

Script pianificato per verificare tutti i database

La verifica della coerenza di un file di database è un modo utile per scoprire se un file è stato danneggiato. In qualità di amministratore del server, prima si scopre un file danneggiato, prima è possibile eseguire un'operazione di recupero del file utilizzando FileMaker Pro o ripristinare un backup recente del file , antecedente al danneggiamento

Nelle versioni recenti precedenti alla 19.1.2, era possibile verificare i file di database solo manualmente nell'Admin Console o utilizzando il comando fmsadmin o automaticamente creando una pianificazione utilizzando l'API Admin.

A partire da FileMaker Server 19.1.2, è possibile creare un programma nell'Admin Console per eseguire automaticamente uno script integrato che verifica tutti i database

 Questo script esegue le seguenti operazioni:

1. Disconnette tutti gli utenti

2. Chiude tutti i database

3. Verifica la coerenza di tutti i database

4. Riapre tutti i database

Per eseguire questo script  va creata una pianificazione dello script di sistema nella Admin Console. Il nome dello script è obbligato, Sys_Default_VerifyAllDB e va scelto dall'elenco che viene proposto, come mostrato nella figura. 

Schermata 2020-10-30 alle 01.23.08.png

È necessario programmare l'esecuzione di questo script quando nessun utente è connesso e non sono programmate altre attività, altrimenti tali utenti verranno disconnessi.

Claris consiglia l’esecuzione di un tale script  almeno una volta al giorno.

Bisogna prestare attenzione a due aspetti ulteriori:

  1. se si imposta un'attività pianificata che esegue una sequenza di script al cui interno c’è lo script Sys_Default_VerifyAllDB solo lo script Sys_Default_VerifyAllDB verrà eseguito;
  2. attualmente, lo script Sys_Default_VerifyAllDB verifica tutti i database, senza poterne indicare solo alcuni.

Per pianificare la verifica solo di database o cartelle di database specifici, vanno utilizzate le API di amministrazione di FMS.

L’esito dello script viene registrato in un messaggio in Event.log, nel quale si indica l'esito positivo o negativo del controllo di coerenza. E` possibile ricevere una notifica in caso di errore, configurando FileMaker Server in modo che invii notifiche e-mail quando rileva errori

Nota personale: in precedenti versioni di FMS ho dovuto disabilitare la verifica dei backup perché - in presenza di file di grosse dimensioni - la durata del backup diventava eccessivamente lunga. Consiglierei di fare una verifica dei tempi prima di attivare questo script così da capire bene quando c’è spazio per eseguirlo senza intralciare il lavoro degli utenti

Svuotamento della cache del database e chiusura dei database utilizzando il segnale USR1

È attualmente possibile utilizzare il comando fmsadmin close per svuotare la cache del database e chiudere tutti i file del database in modo pulito.

Tuttavia, gli amministratori del server che eseguono FileMaker Server su macOS o Linux si aspettano che anche il comando kill faccia lo stesso. Pertanto, con FileMaker Server 19.1.2 viene aggiunto il supporto per l'utilizzo del segnale Unix / Linux definito dall'utente USR1 per fare la stessa cosa. 

Sarà quindi possibile utilizzare:

sudo kill -USR1 <fmserverd pid>

dove <fmserverd pid> è l'ID del processo fmserverd.

A causa di problemi di sicurezza, la feature non è disponibile in Windows.

Risolti i problemi di stabilità con backup progressivi e backup completi

In alcune condizioni, era possibile che le operazioni di backup soffrissero di livelock (operazione molto lenta che causava backup obsoleti) o deadlock (backup non in esecuzione affatto).

Nella versione 19.1.2 sono state apportate modifiche in modo da rendere più armonico sia il backup progressivo che il backup completo

Miglioramenti delle prestazioni

Utilizzo di sharing lock per l'accesso alla struttura del database

Per sostituire l'uso di PLL come descritto sopra, FileMaker Server 19.1.2 ora utilizza uno sharing lock per gestire l'accesso di basso livello alla struttura del database.

Prima dell'introduzione di PLL, il motore di database gestiva l'accesso utilizzando un mutex (mutually exclusive object), che consentiva a un solo thread alla volta di leggere o scrivere la struttura del database.

Al contrario lo sharing lock consente multipli accessi in lettura ma esercita comunque un blocco esclusivo per l'accesso in scrittura. Poiché la maggior parte degli accessi alla struttura del database sono operazioni di lettura, l'uso di uno sharing lockmigliora le prestazioni per gli utenti simultanei dello stesso database.

Ottimizzazione delle operazioni di ricerca indicizzate

Poiché lo sharing lock viene utilizzato per consentire multipli accessi in lettura, la versione 19.1.2 può ora eseguire operazioni di ricerca sui campi indicizzati in parallelo. In precedenza, era possibile eseguire una sola operazione di ricerca indicizzata alla volta.

Ordinamento dei record sull'host

Nelle versioni precedenti, FileMaker Server trasferiva sempre i record ai client FileMaker per eseguire un ordinamento.

Tuttavia, a partire dalla versione 19.1.2 dei client FileMaker e FileMaker Server, FileMaker Server può eseguire l'ordinamento, se non è occupato; in caso contrario, il client eseguirà l'ordinamento.

Utilizzo della memoria per l'indicizzazione di campi multilinea utilizzati nelle relazioni

Un campo di testo contenente più valori (ogni valore separato da un ritorno a capo) utilizzato come campo di confronto in una relazione è chiamato campo multikey.

Il motore di database FileMaker può risolvere relazioni che utilizzano un campo multikey come campo di confronto. Nelle versioni precedenti alla 19.1.2, il motore di database analizzava i campi multikey e memorizzava le singole chiavi indicizzabili in un file temporaneo.

Per migliorare il modo in cui i campi di testo multikey vengono indicizzati, la versione 19.1.2 ora archivia le chiavi in ​​memoria ed esegue i confronti delle chiavi in ​​memoria, il che è più efficiente.

Il confronto delle chiavi basato sulla memoria durante l'indicizzazione è supportato in FileMaker Server e FileMaker Pro ma non in FileMaker Go.

Semplificazione dell'installazione

L'aggiornamento di FileMaker Server da una versione principale alla successiva, ad esempio dalla versione 18 alla 19, può richiedere da una a diverse ore, a seconda delle funzioni utilizzate.

Quando si aggiorna a FileMaker Server 19.1.2 dalla versione 18 o 19, il programma di installazione può ora conservare la maggior parte dei dati utente e della configurazione per un'esperienza più fluida e veloce.

Il programma di installazione per la versione 19.1.2 esegue un'installazione completa; non è un aggiornamento come per una versione di correzione di bug. 

Tuttavia, a differenza di un'installazione completa in passato, non è necessario disinstallare prima la versione precedente. È quindi possibile lasciare la versione precedente in essere se si desidera che il programma di installazione della versione 19.1.2 mantenga i database esistenti, i file di configurazione, il certificato SSL, i registri e altri file. 

Miglioramento della sicurezza con un certificato SSL ECC

FileMaker Server 19.0 ha aggiunto il supporto per i certificati SSL / TLS di della Crittografia a Curva Ellittica (Elliptic Curve Cryptography ECC).

ECC fornisce una maggiore sicurezza e migliori prestazioni, ma utilizza chiavi di lunghezza inferiore.

Per ulteriori informazioni su ECC, Claris suggerisce le seguenti risorse (in inglese):

Elliptic Curve Cryptography vs RSA Certificates: What's the Difference? (https://sectigostore.com/page/elliptic-curve-cryptography-vs-rsa-certificates-whats-the- difference/) (Sectigo)
Understanding ECC in 5 Minutes (https://www.thesslstore.com/blog/understanding-ecc-5- minutes/) (The SSL Store) 

Conclusioni

L'aggiornamento 19.1.2 di FileMaker Server conferma l'evoluzione rapida e decisa della piattaforma Claris FileMaker avviata con il lancio di FileMaker 19.

L'annuncio della compatibilità di FileMaker Server con Linux ha sicuramente messo in ombra altre innovazioni fondamentali, soprattutto per quegli amministratori di sistema che usano FileMaker Server al massimo delle sue potenzialità. D'altra parte è una delle caratteristiche più attese da almeno un decennio.

Giuseppe Pupita

3 risposte

Lascia un commento

Prendi la corsia preferenziale e risolvi i tuoi problemi di sviluppo FileMaker!

Risorse gratuite

Guru Corner

Altri articoli di Giuseppe Pupita

Altri articoli:
,

5 motivi per cui DEVI passare a FileMaker 19

Dal mese di maggio 2020, Claris® ha rilasciato FIleMaker 19, l’ultima versione “numerata” dell’azienda di Santa Clara.

Ad ogni rilascio di nuova versione da anni ricevo l’immancabile domanda: 

VALE LA PENA AGGIORNARE?

Solitamente rispondo con un diplomatico “dipende dalle tue esigenze”.

Questa volta invece sono categorico: DEVI AGGIORNARE a FileMaker 19.

LEGGI...

Ultimi articoli