Может кто-нибудь предложить мне решение, которое позволит мне просто записать данные в db / file и получить доступ к нескольким процессам (+ потоки)?
Если вам нужен доступ из нескольких процессов, из нескольких потоков и / или из обоих, то очень трудно достичь своей цели - 60 тыс. Записей в секунду просто потому, что дисковый ввод-вывод не очень эффективен при использовании нескольких потоков / процессов. , Любое имеющееся у вас решение должно быть сведено к той же базовой модели: только одна нить может записывать в LevelDB.
Если вам нужен межпроцессный доступ к LevelDB, вы можете написать очень простой коммуникационный уровень между вашими процессами, используя сокеты или каналы. Вы бы посвятили один процесс принятию нескольких соединений сокетов или каналов от всех клиентских процессов, и вы бы приняли потоковые данные. Затем вы записываете свои данные в LevelDB из этого процесса - давайте назовем это процессом данных.
Процесс обработки данных будет иметь несколько потоков, которые предоставляют данные, но только один поток чтения / записи, который считывает / записывает данные в LevelDB, поэтому было бы также неплохо использовать BlockingQueue , который клиент потоки будут ставить записи в очередь, а поток данных будет читать записи из них (блокируя, если нет данных).