To keep all data in sync, the in-memory data will be marked stale during a DML option that affects that data. Therefore the overhead added to DML statements is very small. Upon request the in-memory data will be updated.
This in-memory data, a.k.a. the "Column Store" is an optional component of the SGA. So you have to switch it on. And you can pick which tables, which partitions, which columns and whether you want it distributed or not (over different RAC nodes) should be kept in-memory.
The columnar data is loaded in compressed format. So it just takes a fraction of the space that the same total number of rows use (as usually a lot of columns contain the same values and can be more compressed). And this column store can / will be indexed as well.
So you can have an OLTP and a Data Warehouse / Reporting on the same structures. And depending on your query and data , the optimiser will either use the buffer cache or the column store. So the optimiser is "fully aware" of the in-memory database.
The In-Memory database is planned as an option (so additional licensing required) for the 18.104.22.168 release of the databae - expected next calendar year.