Forum: Managing VoltDB

Post: Volt 3.3: SnapshotStatus EndTime not populated for manual CSV snapshots?

Volt 3.3: SnapshotStatus EndTime not populated for manual CSV snapshots?
Jun 13, 2013

We currently backup certain data to further storage by invoking a manual CSV snapshot and waiting for the end time of each snapshot file on each host to be returned by @SnapshotStatus.

This worked with Volt

However, this does not appear to be the case in Volt 3.3.

Invocation of @SnapshotStatus only ever has the end time populated for the snapshot files written by the snapshot co-ordinating node. We enabled debug for the SNAPSHOT logger and the debug does not show any errors.

See below. mantest_* and mantest_2* snapshots were invoked from host 1 and host 0, respectively, yet have the same End Time population results.

Has the behaviour changed in Volt 3.3?

Jun 13, 2013
As an addendum: we only see this behaviour with Volt 3.3 Community Edition. A similar process has End Time for all snapshot files on all hosts for Volt Enterprise Edition.
Jun 13, 2013
I reproduced and narrowed it down. If the schema has any replicated tables then the only host that reports time/throughput correctly is the one host that was selected to save the replicated data to .csv. I took a look at the outputs you sent me. In your case, the Enterprise database only has partitioned tables - so they all accurately report their timing in SnapshotScan. Your other database has a replicated table (f_status) - so only the host that writes out that table has correct data.

I wrote it up in
Jun 17, 2013
Is there a workaround for this? In other words, can we detect the 'host that is selected to write the replicated tables' , where the f_status table is, automatically via a procedure call? Neither the @SnapshotStatus nor @SystemInformation procedures appear capable of providing this.
Aug 14, 2013
This issue was fixed in V3.5.