• Linux threads pids?

    vsespb
    @vsespb
    Всё правильно.

    1) use threads; не использует fork (хотя реализация ни по дизайну ни по реальной картине, не в чём не выигрывает у fork, под linux)

    2) нужны разные pid — попробуйте use forks или используйте fork

    3) PID у процесса один

    4) man pstree

    Child threads of a process are found under the parent process and are shown with the process name in curly braces, e.g.

    5) htop — нажмите букву 'H' это будет показывать/отключать threads
    Ответ написан
    4 комментария
  • Объясните, зачем нужны документо-ориентированные БД (MongoDB)?

    mocksoul
    @mocksoul
    Смысл ряляционных баз когда то был лишь в том, чтобы дать ответ на _любой_ вопрос за _любой_ промежуток времени. Т.е. например есть какая-то бд в компании и надо сделать какой-нибудь отчёт.

    В интернет-приложениях все несколько по иному. Чаще всего запросы к БД одинаковые за редким исключением (поиск). BigTable и прочие завязываются на этот принцип, создавая индекс на нужные запросы при изменении данных асинхронно.

    Таким образом, после изменения данных сразу обновляются и индексы для нужных запросов. В SQL индексы тоже есть, но они на более низком уровне.

    MongoDB строит индексы автоматически при первом запросе. Посему это очень похоже на схему lang <-> memcache <-> sql. Но на порядок быстрее, т.к. сам mongodb быстрее чем memcached (я сам сие не проверял ещё и верю с трудом, но все в один голос твердят что это так).

    Второй бонус — более простая репликация. В частности, у того же mongodb концепция master-slave и шардов находится в самом сердце.

    Третий бонус — map/reduce для обработки данных. Выполняются на встроенном языке (у mongodb это spidermonkey, т.е. яваскрипт).

    В общем и целом изначально написанное на mongodb приложение будет теоретически быстрее чем SQL вариант. По крайней мере с быстрой реализацией, наподобие MongoDB.
    Ответ написан
    2 комментария