In most cases where code uses JcrUtils.putFile [1] it leads to
creation of below content structure

+ foo.jpg (nt:file)
   + jcr:content (nt:resource)
       - jcr:data

Due to usage of nt:resource each nt:file node creates a entry in uuid
index as nt:resource is referenceable [2]. So if a system has 1M
nt:file nodes then we would have 1M entries in /oak:index/uuid as in
most cases the files are created via [1] and hence all such files are
referenceable

The nodetype defn for nt:file [3] does not mandate that the
requirement for jcr:content being nt:resource.

So should we register a new oak:Resource nodetype which is same as
nt:resource but not referenceable. This would be similar to
oak:Unstructured.

Also what should we do for [1]. Should we provide an overloaded method
which also accepts a nodetype for jcr:content node as it cannot use
oak:Resource

Chetan Mehrotra
[1] 
https://github.com/apache/jackrabbit/blob/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/JcrUtils.java#L1062

[2]
[nt:resource] > mix:lastModified, mix:mimeType, mix:referenceable
  primaryitem jcr:data
   - jcr:data (binary) mandatory

[3]

[nt:file] > nt:hierarchyNode
  primaryitem jcr:content
  + jcr:content (nt:base) mandatory

Reply via email to