The default keepalive and holddown timer are 60 and 180 seconds (3x the keepalive):
R1#show ip bgp neighbors | include keepalive
Last read 00:00:20, last write 00:00:50, hold time is 180, keepalive interval is 60 seconds
So what happens when you change these? For example, R1 uses a lower keepalive and holddown timer while 192.168.12.2 (R2) uses the default:
R1(config)#router bgp 1
R1(config-router)#neighbor 192.168.12.2 timers 10 30
The end result will be:
R1#show ip bgp neighbors | include keepalive
Last read 00:00:08, last write 00:00:08, hold time is 30, keepalive interval is 10 seconds
Configured hold time is 30, keepalive interval is 10 seconds
And R2:
R2#show ip bgp neighbors | include keepalive
Last read 00:00:05, last write 00:00:06, hold time is 30, keepalive interval is 10 seconds
BGP will use the lowest timer values.
How long it takes before an update is sent depends if you are running eBGP or iBGP and doesn’t have anything to do with the keepalive and holddown timer, those are only for the neighbor adjacency.
R1#show ip bgp neighbors | include advertisement
Default minimum time between advertisement runs is 30 seconds
When you run iBGP, it is instant as you can see here:
R1#show ip bgp neighbors | include advertisement
Default minimum time between advertisement runs is 0 seconds
Hope this helps!