Details
Description
The Embedded Server doesn't support TTL indexes today – because there are no background threads in the Embedded Server, and there's a dedicated background thread used for expiring TTL indexes – so we should return an error when a user tries to create them. We don't seem to be doing that today though:
From the client side:
test@mongolord> version()
|
4.1.1-189-g114b1e828e
|
test@mongolord> db.version()
|
4.1.1-189-g114b1e828e
|
test@mongolord> db.serverStatus().storageEngine
|
{
|
"name" : "mobile", |
"supportsCommittedReads" : false, |
"supportsSnapshotReadConcern" : false, |
"readOnly" : false, |
"persistent" : true |
}
|
test@mongolord> use test;
|
switched to db test
|
test@mongolord> db.ttltest.insertOne( {"name":"Matt Lord", "age":42, "inserted":new Date()} ); |
{
|
"acknowledged" : true, |
"insertedId" : ObjectId("5b63166b9904d20a99a3faba") |
}
|
test@mongolord> db.ttltest.find()
|
{ "_id" : ObjectId("5b63166b9904d20a99a3faba"), "name" : "Matt Lord", "age" : 42, "inserted" : ISODate("2018-08-02T14:34:19.480Z") } |
test@mongolord> db.ttltest.createIndex( {"inserted":1}, {expireAfterSeconds:3} ); |
{
|
"createdCollectionAutomatically" : false, |
"numIndexesBefore" : 1, |
"numIndexesAfter" : 2, |
"ok" : 1 |
}
|
test@mongolord> sleep(15000);
|
test@mongolord> db.ttltest.find();
|
{ "_id" : ObjectId("5b63166b9904d20a99a3faba"), "name" : "Matt Lord", "age" : 42, "inserted" : ISODate("2018-08-02T14:34:19.480Z") } |
From the Server side:
mongolord:mongo matt$ ./mongoed --dbpath /tmp/
|
2018-08-02T10:32:48.208-0400 I - [main] MongoDB embedded standalone application, for testing purposes only
|
2018-08-02T10:32:48.258-0400 I CONTROL [initandlisten] MongoDB starting : pid=32931 port=27017 dbpath=/tmp/ 64-bit
|
2018-08-02T10:32:48.284-0400 I STORAGE [initandlisten] createCollection: admin.system.version with provided UUID: c8856c07-86c3-4c33-ab0b-6ef6990450df
|
2018-08-02T10:32:48.294-0400 W ASIO [initandlisten] No TransportLayer configured during NetworkInterface startup
|
2018-08-02T10:32:48.296-0400 I COMMAND [initandlisten] setting featureCompatibilityVersion to 4.2
|
2018-08-02T10:32:48.301-0400 I NETWORK [initandlisten] waiting for connections on port 27017
|
2018-08-02T10:32:56.420-0400 I NETWORK [listener] connection accepted from 127.0.0.1:65244 #1 (1 connection now open)
|
2018-08-02T10:32:56.423-0400 I NETWORK [conn1] received client metadata from 127.0.0.1:65244 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.1.1-189-g114b1e828e" }, os: { type: "Darwin", name: "Mac OS X", architecture: "x86_64", version: "17.7.0" } }
|
2018-08-02T10:34:19.492-0400 I STORAGE [conn1] createCollection: test.ttltest with generated UUID: 67ff252c-4685-4fbb-b438-4e49c92c5ca0
|
2018-08-02T10:34:19.510-0400 I INDEX [conn1] build index on: test.ttltest properties: { v: 2, key: { inserted: 1.0 }, name: "inserted_1", ns: "test.ttltest", expireAfterSeconds: 3.0 }
|
2018-08-02T10:34:19.510-0400 I INDEX [conn1] building index using bulk method; build may temporarily use up to 500 megabytes of RAM
|
2018-08-02T10:34:19.511-0400 I INDEX [conn1] build index done. scanned 1 total records. 0 secs
|
We should return an error to the client immediately that TTL indexes are not supported, like we currently do for capped collections.
Attachments
Issue Links
- related to
-
SERVER-42566 mobile SE variants don't honor timing constraints of indexed_insert_ttl.js
-
- Closed
-