TileDB Cloud charges in three ways:
$0.11 / CPU / hour for the task time: This is the time it takes for a task from beginning to completion. Depending on the task and user parameters, the number of CPUs used will be different. This price of $0.11 per cpu-hour is based on 1 CPU usage. The time is multiplied by the number of CPUs used in the task. At the end of the month, usage is summed up and rounded to the nearest second. In TileDB Cloud, you can perform the following tasks:
Array slicing via REST (i.e., when using a
$0.14 / GB of data egress: This is the egress cost, i.e., the amount of data retrieved from the service to your client, not the data processed by a query. Egress is summed up and rounded to the GB at the end of the month.
$0.06 / CPU / hour for the notebook server duration: Notebooks are charged for how long the server is running and based on the size of the server.
Note that in TileDB Cloud you need to register your own data, which you must currently store in your own AWS S3 buckets. TileDB Cloud does not support storage hosting. You just register your already existing S3-stored TileDB arrays, and TileDB enables access and computation on those arrays without unnecessary copying and movement of the data.
All access via the web console, excluding notebook usage, is free and no charges are applied. TileDB Cloud bills you monthly.
Suppose you run a UDF which takes 300 seconds and returns no data to your client outside TileDB Cloud. Suppose also that the UDF uses 2 CPUs. You will then be charged:
Query time: (5 / 60) hours * 2 CPUs * $0.11 = $0.0183
Data retrieved: $0.00
Suppose you slice 3 GB from a TileDB array using TileDB Cloud and the read access takes 45 seconds. Suppose the read query uses 16 cpus. You will be charged:
Task time: (0.75 / 60) hours * 16 CPUs * $0.11 per cpu-hours= $0.0225
Egress: 3 GB * $0.14 per GB = $0.42
Total: $0.0225 + $0.42 = $0.44
Suppose you write 256 MB to a TileDB array and the write request takes 20 seconds. Suppose the write query uses 16 CPUs. You will be charged:
Query time: (0.33 / 60) hours * 16 CPUs * $0.11 per cpu-hour = $0.01
Data retrieved: 0 (see note below)
Suppose you run a serverless SQL query which performs an aggregation on some TileDB array slice that takes 90 seconds. If the result is 1MB, you are charged:
Query time: (05 / 60) hours * 16 CPUs * $0.11 per cpu-hour = $0.044
Data retrieved: (1 / 1024) GB * $0.14 per GB = $0.00013671875
Observe that you pay only for the 1 MB you retrieved (which is negligible), regardless of how many bytes the UDF processed. You can see here the benefit of reductions with serverless computations.
Suppose you run a small notebook and keep it active for 8 hours. The small notebook uses 2 CPUs. You will be charged:
Notebook time: 8 hours * 2 CPUs * $0.06 per cpu-hour = $0.96
Suppose you run a large notebook and keep it active for 30 minutes. the large notebook uses 16 CPUs. You will be charged:
Notebook time: 0.5 hours * 16 CPUs * $0.06 per cpu per hour = $0.48