I have a use case that sounds like storing data associated with files. So, I store them with the CF:

rowkey = (folder_id, file_id)

colname = property name (about the file corresponding to file_id)

colvalue = property value


And I have CF for "manual" indexing:

rowkey = (folder_id, indexed value)

colname = (timestamp, file_id)

colvalue = ""



rowkey = (folder_id, note_of_5) or (folder_id, some_status)

colname = (some_date, some_filename)

colvalue = ""


I have many CF for indexing, as I index according to different (file) properties.


So, one alternative design for indexing CF could be:

rowkey = folder_id

colname = (indexed value, timestamp, file_id)

colvalue = ""


Alternative design :

* pro: same rowkey for all indexing CF => **all** indexing CF could be updated through one batch_mutate

* con: repeating "indexed value" (1er colname part) again ang again (= a string up to 20c)


According to pro vs con, is the alternative design more or less interesting ?