我有一个运行的AWS Aurora数据库集群,99.9%专注于写入.在它达到峰值时,它将以每秒2-3k的速度运行.
我知道Aurora在默认情况下对写入有所优化,但我想问一下AWS的相对新手 - Aurora的写性能最佳实践/技巧是什么?
尝试在AuroraDB上使用xpath表达式的XML数据类型列上创建btree索引时遇到此错误 - PostgreSQL 9.6:
ERROR: could not identify a comparison function for type xml
SQL state: 42883
Run Code Online (Sandbox Code Playgroud)
没有明确解决方案的这个2009线程是我发现讨论此错误消息的唯一一个关于为更早版本的PostgreSQL创建基于xpath的索引:https: //www.postgresql-archive.org/Slow-select -times上选,用,XPath的td2074839.html
在我的情况下,我也需要指定名称空间,并且该线程中的原始海报将xpath表达式的结果转换为text [],这对我来说也是错误的 - 但为什么甚至需要呢?我也没有看到PostgreSQL使用我的索引,即使我有数千行要经过.
所以我尝试了一个更简单的案例,但错误仍然存在 - 请详细说明为什么你可以:
CREATE TABLE test
(
id integer NOT NULL,
xml_data xml NOT NULL,
CONSTRAINT test_pkey PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
CREATE INDEX test_idx
ON test USING btree
(xpath('/book/title', xml_data))
Run Code Online (Sandbox Code Playgroud)
结果消息是:
ERROR: could not identify a comparison function for type xml
SQL state: 42883
Run Code Online (Sandbox Code Playgroud)
数据库编码是UTF8.排序规则和字符类型为en_US.UTF-8.
一些示例插入语句也是: …
我在尝试将无服务器Aurora数据库用作应用程序的一部分时遇到问题。
问题本质上是,当数据库处于冷态时,建立连接的时间可能大于30秒(由于db spinup)-这似乎比Sequelize中的默认超时(使用mysql)长,并且据我所知可以看到我找不到其他方法来增加此超时,或者我需要某种重新尝试连接的方法吗?
这是我当前的配置:
const sequelize = new Sequelize(DATABASE, DB_USER, DB_PASSWORD, {
host: DB_ENDPOINT,
dialect: "mysql",
operatorsAliases: false,
pool: {
max: 2,
min: 0,
acquire: 120000, // This needs to be fairly high to account for a
serverless db spinup
idle: 120000,
evict: 120000
}
});
Run Code Online (Sandbox Code Playgroud)
还有几点要点:一旦数据库变热,那么一切都会正常运行。在技术上可行的情况下,保持数据库“热”状态会破坏将其作为无服务器db的意义(成本原因)。如果超时是连接错误,我愿意让我的客户端重试API调用。
这是日志,以防万一。
{
"name": "SequelizeConnectionError",
"parent": {
"errorno": "ETIMEDOUT",
"code": "ETIMEDOUT",
"syscall": "connect",
"fatal": true
},
"original": {
"errorno": "ETIMEDOUT",
"code": "ETIMEDOUT",
"syscall": "connect",
"fatal": true
}
}
Run Code Online (Sandbox Code Playgroud) 我们正在使用AWS Aurora作为数据库运行基于REST API的春季启动应用程序。我们的应用程序连接到只读的Aurora MySQL RDS实例。我们正在对其进行负载测试。最初,我们只有一个数据库,并且具有自动缩放功能,这是在CPU较高的情况下触发的。现在,我们期望如果通过一个数据库实例获得一些X吞吐量,那么在自动缩放发生时,我们应该获得大约1.8倍的吞吐量,并且连接应该与新创建的数据库实例平均分配。但这没有发生,相反,两个数据库实例上的数据库连接都不稳定。因此,我们的负载无法平均分配,并且无法获得理想的吞吐量。有时一个数据库正在100%CPU上运行,而另一个数据库仍在20%CPU上运行,几分钟后将其反转。
Driver - com.mysql.jdbc.driver
Maximum active connections=100
Max age = 300000
Initial pool size = 10
Run Code Online (Sandbox Code Playgroud)
Tomcat jdbc池用于连接池
注意:1)我们还禁用了jvm网络DNS缓存。2)我们还尝试每5分钟刷新一次数据库连接,即使活动的连接也是如此。3)我们尝试了AWS提出的所有建议,但没有任何效果。4)我们甚至编写了一个lambda代码来在出现新的数据库实例时更新Route 53,以避免集群端点缓存,但仍然存在相同的问题。任何人都可以请帮忙的最佳实践是什么,因为目前我们还不能将其投入生产。
database database-connection amazon-web-services amazon-aurora aws-aurora
我正在使用AWS Aurora PostgreSQL 10.4引擎。我正在尝试cluster table ... using index并收到类似的错误
could not write block .... of temporary file: no space left on device
Run Code Online (Sandbox Code Playgroud)
如果要管理自己的PostgreSQL实例,我将使用来查看各个卷上的可用空间df。(另请参见:使用postgresql出现错误“无法写入临时文件的块....设备上没有剩余的空间...”)
但是使用Aurora,AWS应该管理存储并根据需要自动扩展它。因此,我想知道如果我自己不管理存储,该如何解决这个问题。我猜想PG引擎的临时存储与Aurora管理的虚拟存储层是分开的,但是不确定如何更改它。
我有一个CloudFormation模板,它使用无服务器无极光创建我的RDS集群。我希望在启用数据API的情况下创建集群。
该选项存在于Web控制台上:https : //docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html
但是我在CloudFormation文档中找不到它。如何从模板打开此选项?
amazon-web-services aws-cloudformation amazon-aurora aws-aurora
我有一个可选的String字段notes,有时为空。如果为空,我想插入null,否则我想插入字符串。
这是我的解析器-
{
"version" : "2017-02-28",
"operation": "Invoke",
#set($id = $util.autoId())
#set($notes = $util.defaultIfNullOrEmpty($context.arguments.notes, 'null'))
"payload": {
"sql":"INSERT INTO things VALUES ('$id', :NOTES)",
"variableMapping": {
":NOTES" : $notes
},
"responseSQL": "SELECT * FROM things WHERE id = '$id'"
}
Run Code Online (Sandbox Code Playgroud)
}
有了这个graphql
mutation CreateThing{
createThing() {
id
notes
}
}
Run Code Online (Sandbox Code Playgroud)
我得到-
{
"data": {
"createRoll": {
"id": "6af68989-0bdc-44e2-8558-aeb4c8418e93",
"notes": "null"
}
}
Run Code Online (Sandbox Code Playgroud)
}
当我真的想要没有引号的null时。
有了这个graphql-
mutation CreateThing{
createThing(notes: "Here are some notes") {
id
notes …Run Code Online (Sandbox Code Playgroud) 我正在使用AWS-RDS(Aurora MySQL5.6),它是一个群集,它有一个写入器实例和一个读取器实例。我发现每个实例在更改类型后都会停机近10分钟,这是不可接受的,我该怎么做才能避免停机?
以下是更多详细信息:
aws-aurora ×8
amazon-rds ×2
database ×2
mysql ×2
aws-appsync ×1
graphql ×1
indexing ×1
node.js ×1
postgresql ×1
resolver ×1
serverless ×1
xml ×1
xpath ×1