SQL Admin API导出时间比以前更长,导致超时问题,这是一个错误吗?

时间:2015-04-16 16:13:28

标签: google-cloud-sql

我正在使用Java SQL Admin API v1beta4 rev5。 自2014年夏天以来,我们已经在旧版本的此API上运行了代码而没有问题。问题是,过去在几秒钟内完成的小型导出操作现在总是花费超过1分钟(超过App Engine超时响应时间限制60秒仅需几秒钟)。我们使用小型导出和导入为我们的客户提供模板数据库。它们总是很小(12个表以下的模式,只有样本数据),并且以前总是在几秒钟内导出和导入。我们将开始导出,然后每隔几秒轮询一次GCS存储桶,直到文件可用。这可靠地工作了9个多月。

但是,最近,导出的对象开始出现在GCS存储桶中(表明导出确实已完成并且.sql文件可用)但导出的操作状态仍为“RUNNING”,因此任何调用从该文件导入生成“403操作失败,因为另一个操作已在进行中”错误消息。

我希望这是一个错误,而不是SQL Admin API中的架构更改... 理想情况下,操作状态应该在操作完成时更改为DONE,而不是在它有一段任意长度的时间之后实际完成

这是一个错误吗?

以下代码以防有用:

ExportContext.SqlExportOptions exportOptions = new ExportContext.SqlExportOptions()
            .setTables( new ArrayList<String>(tableNames) );

        ExportContext exportContext = new ExportContext()
            .setDatabases(Arrays.asList(srcDatabase))
            .setFileType("SQL")
            .setUri(dumpUri)
            .setSqlExportOptions(exportOptions);

        InstancesExportRequest exportRequest = new InstancesExportRequest().setExportContext(exportContext);

        Operation op = this.sqlAdmin.instances().export(AuthUtils.GAE_PROJECT_NAME, nakedSrcInstance, exportRequest).execute(); 

1 个答案:

答案 0 :(得分:0)

我自己正在运行一些出口,并注意到他们花了一分多钟。为了获得实际的时间戳,我进入了Developers Console并运行了Operations:list API [1]。我能够看到实际的时间。

"operationType": "EXPORT",
"status": "DONE",
"insertTime": "2015-04-17T22:03:28.745Z",
"startTime": "2015-04-17T22:03:29.023Z",
"endTime": "2015-04-17T22:04:29.286Z",

最好的办法是在以下网站上报告此问题[2],Google会对此进行调查。

[1] https://cloud.google.com/sql/docs/admin-api/v1beta4/operations/list

[2] https://code.google.com/p/googlecloudsql/issues/list