If I understand that correctly all indices (views, gsi, fts) have to read the inserted/updated documents, parse the JSON and decide to index or not. If we have a high update rate on some items (> 10k updates/sec) and they don’t need to be indexed, makes it sense to move them to a separate bucket to save CPU ressources?
gizmo74, with gsi couchbase promise workload Isolation.
i would set up dedicated nodes for data services and for your index services for your use case.
in case of gsi, once a mutation happens, data service will extract all the keys as per index definitions from the Json and provide only the information needed to index nodes. I dont think you will gain a lot by splitting it.
GSI is an MDS enabled service and any updates to the Data is propagated to Index nodes in such a way that Data operations are not impacted. This means that your Data performance will not be affected due to index creation.
Moving to a separate bucket is not recommended, as that decision should be based on your data model and not due to number of writes(ops/sec). GSI should be able to take that load with ease. Your indexes(GSI) should be created based on the queries that you intend to fire.