We run Datomic Cloud in production topology that serves accounting documents (ie. invoices) in JSON format through a REST API (Lambda Ion + AWS API Gateway).
There is a customer that queries hundreds of documents in a batch process at a rate of approximately 20/sec.
After some time, the transactor hangs with a “Too many open files” error. Has someone experienced a similar error?
{
"Msg": ":valcache/get-exception",
"Ex": {
"Via": [
{
"Type": "java.nio.file.FileSystemException",
"Message": "/opt/ssd1/datomic/valcache/761/7dc57059-f6db-4398-b4a5-5cedc0704761: Too many open files",
"At": [
"sun.nio.fs.UnixException",
"translateToIOException",
"UnixException.java",
91
]
}
],
"Trace": [
[
"sun.nio.fs.UnixException",
"translateToIOException",
"UnixException.java",
91
],
[
"sun.nio.fs.UnixException",
"rethrowAsIOException",
"UnixException.java",
102
],
[
"sun.nio.fs.UnixException",
"rethrowAsIOException",
"UnixException.java",
107
],
[
"sun.nio.fs.UnixFileSystemProvider",
"newFileChannel",
"UnixFileSystemProvider.java",
177
],
[
"java.nio.channels.FileChannel",
"open",
"FileChannel.java",
287
],
[
"java.nio.channels.FileChannel",
"open",
"FileChannel.java",
335
],
[
"datomic.cloud.valcache$direct_get",
"invokeStatic",
"valcache.clj",
435
],
[
"datomic.cloud.valcache$direct_get",
"invoke",
"valcache.clj",
426
],
[
"datomic.cloud.mc_cache.McCache$f__21348",
"invoke",
"mc_cache.clj",
163
],
[
"clojure.lang.AFn",
"run",
"AFn.java",
22
],
[
"java.util.concurrent.ThreadPoolExecutor",
"runWorker",
"ThreadPoolExecutor.java",
1149
],
[
"java.util.concurrent.ThreadPoolExecutor$Worker",
"run",
"ThreadPoolExecutor.java",
624
],
[
"java.lang.Thread",
"run",
"Thread.java",
748
]
],
"Cause": "/opt/ssd1/datomic/valcache/761/7dc57059-f6db-4398-b4a5-5cedc0704761: Too many open files"
},
"Type": "Event",
"Tid": 84,
"Timestamp": 1622445049738
}
{"Msg":":valcache\/get-exception","Ex":{"Via":[{"Type":"java.nio.file.FileSystemException","Message":"\/opt\/ssd1\/datomic\/valcache\/761\/7dc57059-f6db-4398-b4a5-5cedc0704761: Too many open files","At":["sun.nio.fs.UnixException","translateToIOException","UnixException.java",91]}],"Trace":[["sun.nio.fs.UnixException","translateToIOException","UnixException.java",91],["sun.nio.fs.UnixException","rethrowAsIOException","UnixException.java",102],["sun.nio.fs.UnixException","rethrowAsIOException","UnixException.java",107],["sun.nio.fs.UnixFileSystemProvider","newFileChannel","UnixFileSystemProvider.java",177],["java.nio.channels.FileChannel","open","FileChannel.java",287],["java.nio.channels.FileChannel","open","FileChannel.java",335],["datomic.cloud.valcache$direct_get","invokeStatic","valcache.clj",435],["datomic.cloud.valcache$direct_get","invoke","valcache.clj",426],["datomic.cloud.mc_cache.McCache$f__21348","invoke","mc_cache.clj",163],["clojure.lang.AFn","run","AFn.java",22],["java.util.concurrent.ThreadPoolExecutor","runWorker","ThreadPoolExecutor.java",1149],["java.util.concurrent.ThreadPoolExecutor$Worker","run","ThreadPoolExecutor.java",624],["java.lang.Thread","run","Thread.java",748]],"Cause":"\/opt\/ssd1\/datomic\/valcache\/761\/7dc57059-f6db-4398-b4a5-5cedc0704761: Too many open files"},"Type":"Event","Tid":84,"Timestamp":1622445049738}