SN can store data (closer to object storage than a database). The question becomes a bit like, can we use pure data storage to do database tasks or exchange tasks? In some sense yes, we can generate an index and store the index on SN, but in other ways no, we can’t request the network to do a SQL query for us and only return a subset of data, we must do that ourselves.
Similar with an exchange, we can do the data parts (storing orders and transactions) but the execution of that will have to be negotiated between clients, not by nodes.
Possibly SOLID and SPARQL might help here, but I feel in the early stages of the network most of the data processing will be done locally and not by SN nodes. Others here may have deeper insights to add.
But it’s hard to find examples of where map is really used, the best I could see is sn_api/wallet.rs but hopefully someone else can shed more light here.
Let’s clarify some terminology first; a file is split into multiple chunks before being uploaded. The term file is different to the term chunk. Just to be sure we’re not confusing the terms. Also blob is just a more general term for a file (maybe the bytes don’t live on disk as a file so we use the term blob).
File size will have no limit on the live network, but is currently limited to 1 GiB, see self_encryption/lib.rs:MAX_FILE_SIZE, ie 1024×1024×1024 bytes.
A file is split into 1 MiB chunks by self_encryption, see self_encryption/lib.rs:MAX_CHUNK_SIZE, which is 1024×1024 bytes.
There’s a node limit on chunk size of 1 MB, see sn_node/capacity:MAX_CHUNK_SIZE which is 1,000,000 bytes. Not 1 MiB…?!
But 5 MB, no, there is no limit of 5 MB in the network that I’m aware of. Can you please let us know where this is in the primer, I could not see it there.
Not exactly a crystal clear answer to all questions, but hopefully a good start and someone more knowledgeable can chip in with further details.