/// <summary>
        /// Read record header data.
        /// </summary>
        private void RunGetHeaderTest(AerospikeClient client, Arguments args)
        {
            Key key = new Key(args.ns, args.set, "putgetkey");

            console.Info("Get record header: namespace={0} set={1} key={2}", key.ns, key.setName, key.userKey);
            Record record = client.GetHeader(args.policy, key);

            if (record == null)
            {
                throw new Exception(string.Format("Failed to get: namespace={0} set={1} key={2}",
                    key.ns, key.setName, key.userKey));
            }

            // Generation should be greater than zero.  Make sure it's populated.
            if (record.generation == 0)
            {
                throw new Exception(string.Format("Invalid record header: generation={0:D} expiration={1:D}",
                    record.generation, record.expiration));
            }
            console.Info("Received: generation={0} expiration={1}", record.generation, record.expiration);
        }
        /// <summary>
        /// Read record header data in one batch.
        /// </summary>
        private void BatchReadHeaders(AerospikeClient client, Arguments args, string keyPrefix, int size)
        {
            // Batch gets into one call.
            Key[] keys = new Key[size];
            for (int i = 0; i < size; i++)
            {
                keys[i] = new Key(args.ns, args.set, keyPrefix + (i + 1));
            }

            Record[] records = client.GetHeader(null, keys);

            for (int i = 0; i < records.Length; i++)
            {
                Key key = keys[i];
                Record record = records[i];
                Log.Level level = Log.Level.ERROR;
                int generation = 0;
                int expiration = 0;

                if (record != null && (record.generation > 0 || record.expiration > 0))
                {
                    level = Log.Level.INFO;
                    generation = record.generation;
                    expiration = record.expiration;
                }
                console.Write(level, "Record: namespace={0} set={1} key={2} generation={3} expiration={4}",
                    key.ns, key.setName, key.userKey, generation, expiration);
            }

            if (records.Length != size)
            {
                console.Error("Record size mismatch. Expected %d. Received %d.", size, records.Length);
            }
        }