I have written an application which transfers data from an nrf51822 device to a phone once a day. It currently uses notifications to transfer data, at 20 bytes per notification.
A colleague, pointed out a characteristic can be up to a length of 512 bytes, so it should be possible to use a readCharacteristic command to receive 512 bytes in a single request. Of course there is the overhead of receiving multiple readCharacteristic commands.
The amount of data, could possibly be more than 6kilobytes, so which ever method is used more than one data transfer is required.
The thought behind this is if you use a bigger packet size, the power usage should be lower. This sounds quite logical, but is it?