/** {@inheritDoc} */ @Override public void afterBinaryMemoryRestore( IgniteCacheDatabaseSharedManager mgr, GridCacheDatabaseSharedManager.RestoreBinaryState restoreState) throws IgniteCheckedException { for (DynamicCacheDescriptor cacheDescriptor : persistentCaches()) { startCacheInRecoveryMode(cacheDescriptor); querySchemas.put(cacheDescriptor.cacheId(), cacheDescriptor.schema().copy()); } }
/** * Initialize query infrastructure for not started cache. * * @param cacheDesc Cache descriptor. * @throws IgniteCheckedException If failed. */ public void initQueryStructuresForNotStartedCache(DynamicCacheDescriptor cacheDesc) throws IgniteCheckedException { QuerySchema schema = cacheDesc.schema() != null ? cacheDesc.schema() : new QuerySchema(); CacheObjectContext coCtx = cacheDesc.cacheObjectContext(ctx.cacheObjects()); GridCacheContextInfo cacheInfo = new GridCacheContextInfo(cacheDesc); ctx.query().onCacheStart(cacheInfo, schema, cacheDesc.sql()); }
/** * @param startCfg Cache configuration to use. * @param desc Cache descriptor. * @param reqNearCfg Near configuration if specified for client cache start request. * @param exchTopVer Current exchange version. * @param disabledAfterStart If true, then we will discard restarting state from proxies. If false then we will * change state of proxies to restarting * @throws IgniteCheckedException If failed. */ public void prepareCacheStart( CacheConfiguration startCfg, DynamicCacheDescriptor desc, @Nullable NearCacheConfiguration reqNearCfg, AffinityTopologyVersion exchTopVer, boolean disabledAfterStart, boolean clientCache ) throws IgniteCheckedException { GridCacheContext cacheCtx = prepareCacheContext(startCfg, desc, reqNearCfg, exchTopVer, disabledAfterStart); if (cacheCtx.isRecoveryMode()) finishRecovery(exchTopVer, cacheCtx); else { ctx.query().onCacheStart( new GridCacheContextInfo(cacheCtx, clientCache), desc.schema() != null ? desc.schema() : new QuerySchema(), desc.sql() ); onCacheStarted(cacheCtx); } }
/** * Form a {@link StoredCacheData} with all data to correctly restore cache params when its configuration is read * from page store. Essentially, this method takes from {@link DynamicCacheDescriptor} all that's needed to start * cache correctly, leaving out everything else. */ public StoredCacheData toStoredData() { assert schema != null; StoredCacheData res = new StoredCacheData(cacheConfiguration()); res.queryEntities(schema().entities()); res.sql(sql()); return res; }
/** */ private int colsCnt(IgniteEx node, String cacheName) { DynamicCacheDescriptor desc = node.context().cache().cacheDescriptor(cacheName); int cnt = 0; if (desc != null) { QuerySchema schema = desc.schema(); if (schema != null) { for (QueryEntity entity : schema.entities()) cnt += entity.getFields().size(); } } return cnt; }
/** */ private int indexCnt(IgniteEx node, String cacheName) { DynamicCacheDescriptor desc = node.context().cache().cacheDescriptor(cacheName); int cnt = 0; if (desc != null) { QuerySchema schema = desc.schema(); if (schema != null) { for (QueryEntity entity : schema.entities()) cnt += entity.getIndexes().size(); } } return cnt; }
continue; for (QueryEntity e : desc.schema().entities()) { tblNames.add(e.getTableName());
ctx.query().onCacheStart0(cacheInfo, desc.schema(), desc.sql());
QuerySchemaPatch localSchemaPatch = localSchema.makePatch(desc.schema().entities());
else if (!GridFunc.eqNotOrdered(desc.schema().entities(), localQueryEntities))
desc.sql(), desc.deploymentId(), desc.schema().copy());
/** */ private void checkNodeState(IgniteEx node, String schemaName, String tableName, String fieldName) { String cacheName = F.eq(schemaName, QueryUtils.DFLT_SCHEMA) ? QueryUtils.createTableCacheName(schemaName, tableName) : schemaName; DynamicCacheDescriptor desc = node.context().cache().cacheDescriptor(cacheName); assertNotNull("Cache descriptor not found", desc); QuerySchema schema = desc.schema(); assertNotNull(schema); QueryEntity entity = null; for (QueryEntity e : schema.entities()) { if (F.eq(tableName, e.getTableName())) { entity = e; break; } } assertNotNull(entity); assertNotNull(entity.getNotNullFields()); assertTrue(entity.getNotNullFields().contains(fieldName)); }
QuerySchema schema = cacheDesc.schema();
/** * Form a {@link StoredCacheData} with all data to correctly restore cache params when its configuration is read * from page store. Essentially, this method takes from {@link DynamicCacheDescriptor} all that's needed to start * cache correctly, leaving out everything else. */ public StoredCacheData toStoredData() { assert schema != null; StoredCacheData res = new StoredCacheData(cacheConfiguration()); res.queryEntities(schema().entities()); res.sql(sql()); return res; }
continue; for (QueryEntity e : desc.schema().entities()) { tblNames.add(e.getTableName());
ctx.query().onCacheStart0(cctx, desc.schema());