1) Yes if I understand what you mean, Once a block is solved and a mining node sees it then it will update the work it's doing to not include transactions which have already been sent.
Thanks, that confirms what I was thinking about.
2) I believe most miners only allow a certain number of transaction in a block to prevent it from getting to large. The bitcoin client will then chose which transactions to chose based on their priority you can see the priority of the current unconfirmed transactions here: http://bitcoincharts.com/bitcoin/
I don't believe the amount of transactions is a very large factor in how long it takes to find a block. It mainly has to do with the current difficulty and the luck of the miner.
Yeah, the amount of transactions shouldn't be a large factor in how long it takes to mine the block.
However, what I'm thinking (worried) about is this:
If we need a certain time to find a valid block (~every 10 minutes now), what happens if the number of transactions increases substantially? This can be a problem especially since, as you said, the number of transactions in a block is limited.
So, let's say hypothetically that we have 100 transactions in a block max, if we're getting 10000 transactions per second and we get only one block every couple of minutes we won't be able to confirm all transactions?
And what's even worse, once a block has been computed another node might have been working on 80 transactions from this block and 20 new. When the node that computed the block announces it, this other node has to stop what it's doing and start with a new block (although that does not affect the chance of finding a correct block).
My main worry here is how it will scale - currently the number of transactions is relatively low.
Thanks for answers so far