Is it possible for one index to use total index buffer for indexing?

Let's say I have a daily build index and each day, the document will only put into today's index while no data will be indexed into old index. it is possible for today's index occupy the total index buffer for indexintg action?
if yes, dose it need additional manually operation?

Possible, yes.
What manual operation are you talking about?

I mean do I need to set some config or invoke some API manually to achieve so?

No, it has a level of total memory it can use and you should let it manage that by itself.

then under what condition "today's index" will occupy all of indexing buffer ?

The indexing buffer is shared equally between all the indexes being actively written to. The check is every 30 seconds or so. So if no other indexes are being written to then your daily index should get the whole buffer.

I met a problem which traped me:
I setup a cluster which is write heavy and it write daily index, whic means I create a index named today's date, like 2015-12-17 and today only write to this index. I set indices.memory.index_buffer_size to 20% for each node. At the beginning, the server run's very will. the index performance is met our write requirement. but after days, there will be bulk index rejection happens. So I thought it could be other index occupy index buffer and make today's index performance slow. but based on u guys comment, it turns out performance degression is not caused by indexing buffer. but then what caused?

or is there a way to lock this indexing buffer in case it is occupied by other things?

Maybe your cluster is overloaded in general?
Are you monitoring things?

I used ES2.1 plus marvel
nothing is overloaded

can you describe
indices.memory.index_buffer_size
indices.memory.min_index_buffer_size
indices.memory.max_index_buffer_size
indices.memory.min_shard_index_buffer_size

internally working logic?