1.0 Introduction
The option to push (i.e., 'copy') a local plays table to the remote, Pro database equivalent is one that can be used by any Giocoso client device: it should be remembered that a client device that has been declared (in the Administration menu, Option 2) to be a 'primary device' already pushes its copy of the recordings table to the Pro database any and every time it performs either a fast or a full refresh (see Database Manager menu, Options 2 or 3). Precisely because the primary device re-populates the global database automatically on a refresh, the need for a non-primary device to refresh the global database's recordings table is pretty thin: this is not an option you're likely to need to use very often, in other words.
Reasons for having it as an available option at all are simply ones of convenience: if you are working on your laptop, away from your main, primary PC; and you've refreshed the laptop's local database in order to pick up the new 4-CD boxed set you just added to your music collection; then you might find pushing the laptop's up-to-date recordings table to the shared database more convenient to do right now than wait for the main PC's nightly database refresh to do the job.
All of this assumes, of course, that both the laptop and the main PC 'see' the same physical music collection on a shared networking device, which is indeed an assumption underpinning the entire raison d'être of Giocoso Pro. In that scenario, it matters not whether the Pro database gets its recordings data from the laptop or the main PC, since they are identical in content. The only functional difference between the two devices, then, is that one is declared a 'primary device' and thus automatically updates the Pro database when it performs a local refresh ...and the other doesn't do the automatic refresh but has the ability to use this 'Push recordings' option to do the job manually.
Pushes of data made with the Pro menu, Option 4 do not delete data out of the existing global_recordings table. The option adds data that may be present on the local device, but it does not clear out anything already present in the shared database (compare this, for example, with the Initialisation that takes place with Pro menu, Option 1, which literally zaps the shared recordings table clean before doing anything else).
2.0 Running the Push Recordings Process
The first thing that happens when you take Option 4 is that Giocoso will examine the contents of your local recordings table and make sure that no data contained within it breaks the size limits imposed by the remote, shared equivalent table. If there is found to be data that wouldn't fit, the push process will warn you about what is wrong and will then exit without having initialised anything. It's up to you at that point to work out what data is 'bad' and needs fixing at source. Examples of bad data would be full paths to a FLAC that exceeds 512 characters, or a Composer name that exceeds 256 characters, or a composition name that is longer than 512 characters. The chances of legitimate composer or composition names actually breaching these limits is small, of course: that's why these generous limits were specified in the first place! However, if you've tagged your FLACs in ways this site doesn't approve of, you might (for example) have the conductor, orchestra and soloists entered into the ARTIST tag, which Giocoso will have read as the COMPOSER tag ...and then you might have issues.
If you've tagged according to this site's prescriptions, however, then you are likely to be fine and instead receive this message of encouragement:
You can back out at this stage, without anything having been done to the remote database: just tab round until the 'No' option is highlighted, then press [Enter]. If you press [Enter] when the 'Yes' option is highlighted, however, then this happens:
Again, you can back out of the entire process without any data having moved to the Pro database, but if you are certain you want to proceed, just click [Enter] with the 'Yes' option highlighted:
This time, you are again given an opportunity to back out (not explicitly, it's true: but you could click Ctrl+C here to stop the process actually doing anything), but if you click [OK] (or [Enter]) to proceed, the local RECORDINGS table data will start to be be copied or 'pushed' to the remote Pro database:
Finally, data starts to be copied from the local device to the remote server: you're told how many recordings have to be copied across in total, and how many have been processed so far, along with a convenient display of a percentage progress bar.
As I mentioned in the introduction, the push recordings process doesn't start its work by wiping any existing content in the global_recordings table in the Pro database. The data that is being copied across is therefore merely added to whatever data is already in that remote table. The process absolutely will not duplicate existing data, however: though the 'Processing Recording Number' indicator may click up through thousands of possible records, only ones that that the remote database has genuinely never seen before will be added to the remote table. Anything that looks to duplicate existing data is simply (and silently) discarded.
The data transfer process is actually quite slow, even if no new data ends up being added to the Pro database, because computation of whether a pushed recording is a duplicate or not is taking place. For every item in the local RECORDINGS table, the program is taking the COMPOSER and COMPOSITION tags, smashing them together, resulting in something like 'BRITTENPETERGRIMES(PEARS-1958)', for example. That whole concatenated string is then passed through a hash function to create a weird-looking string of numbers and characters that uniquely identify that particular recording, called the RECHASHVALUE. It's this which the Pro database uses to determine 'uniqueness of recordings' and which thus allows it to draw the distinction between 'new recording I need to add' and 'old recording being resubmitted, which I can ignore'... and it takes a little bit of time to smoosh the different bits of data together and compute the hash value from them. On the other hand, it's more work for the Pro database to perform a fresh insert of a new recording than to ignore the resubmission of a previously-submitted recording ...so re-runs of the push procedure are definitely faster to complete than pushes that have a lot of genuinely fresh data to transmit. I can push 16,000 recordings in around 10 minutes, anyway: that should be your (very!) rough benchmark: it will obviously depend on the speed of your network and the power of your pushing and receiving computers.
Should you press Ctrl+C in the middle of the recording push, the process will immediately terminate. No particular harm is thereby done: if you re-launch Giocoso and take Option 4 once again, the push process starts over from the beginning and, if left to run to completion, those recordings that didn't make it across to the Pro database during the first interrupted run will make it second time of asking.
When the last local recording has been copied across to the Pro database, this happens:
Once you see this confirmation message, you're done. Click [OK] to dismiss it and you'll be returned to the Pro menu.
3.0 Summary
Pushing recordings to a Pro database as a manual exercise is not something you'll want or need to do very often, because a client designated (in the configuration options) to be a primary device will push its recordings to the Pro database automatically after ever fast or full local database refresh anyway. However, the option to 're-push' or to push recordings manually is provided for those occasions when you need to inform the Pro database about some new additions to the music collection that have been made on a non-primary device.
The process is non-destructive, in that the Pro database's existing recordings are not wiped or replaced, but data that looks new to the Pro database is merely added to what is already there.
The push process itself is quite straightforward to do, though: just keep confirming you want to go ahead with it when (repeatedly!) prompted and then sit back and wait for the percentage bar to climb to 100%: job done!
[ User Manual Home ] | [ Play Music ] | [ Database Management ] | [ Reporting ] | [ Administration ] | [ Pro ]