@hongminhee I think KV stores are the way because IRIs generally partition nicely by hosts. If you use a human readable IRI generation schema (eg: example.com/actors/name instead of example.com/70b5b164-2093-4c98-97e2-bc0ff49f61d0) then it partitions and queries even better.
My simplest storage option is basically just a directory tree on disk, but that's not really meant for production use. :D