Facoltativamente, impostare timeout a livello di query - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Facoltativamente, impostare timeout a livello di query

Neptune offre la possibilità di impostare un timeout per le query utilizzando l'opzione del gruppo di parametri neptune_query_timeout (consulta Parametri). A partire dalla versione 3.3.7 del client Java, tuttavia, è anche possibile sostituire il timeout globale con codice del tipo seguente:

final Cluster cluster = Cluster.build("localhost") .port(8182) .maxInProcessPerConnection(32) .maxSimultaneousUsagePerConnection(32) .serializer(Serializers.GRAPHBINARY_V1D0) .create(); try { final GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster)); List<Object> verticesWithNamePumba = g.with(ARGS_EVAL_TIMEOUT, 500L).V().has("name", "pumba").out("friendOf").id().toList(); System.out.println(verticesWithNamePumba); } finally { cluster.close(); }

Oppure, per invii di query basati su stringa, l'aspetto del codice è simile al seguente:

RequestOptions options = RequestOptions.build().timeout(500).create(); List<Result> result = client.submit("g.V()", options).all().get();
Nota

Potrebbero essere applicati costi imprevisti se viene impostato un valore di timeout delle query troppo elevato, in particolare su un'istanza serverless. Se il timeout non è impostato su un valore ragionevole, la query potrebbe continuare a essere eseguita molto più a lungo del previsto, con conseguenti costi imprevisti. Questo è particolarmente vero per un'istanza serverless, che potrebbe aumentare fino a diventare un tipo di istanza di grandi dimensioni e costosa durante l'esecuzione della query.

Per evitare spese impreviste di questo tipo, specifica un valore di timeout delle query adatto alla maggior parte dei tempi di esecuzione previsti e che causa il timeout solo delle query con tempi di esecuzione insolitamente lunghi.

A partire dalla versione 1.3.2.0 del motore Neptune, Neptune supporta un nuovo parametro neptune_lab_mode come. StrictTimeoutValidation Quando questo parametro ha un valore pari aEnabled, un valore di timeout per query specificato come opzione di richiesta o suggerimento di interrogazione non può superare il valore impostato globalmente nel gruppo di parametri. In tal caso, Nettuno lancerà. InvalidParameterException

Questa impostazione può essere confermata in una risposta sull'endpoint '/status' quando il valore èDisabled, e nella versione 1.3.2.0, il valore predefinito di questo parametro è. Disabled