• Высокий iowait при копировании больших файлов в Linux

    mocksoul
    @mocksoul
    Если вы что то большое копируете с системного или на системный винт или на винт(ы) где находится ваш $HOME — то вполне логично система станет субъективно помедленнее.

    Большой iowait — тоже вполне логичная штука, как правило он тем выше, чем больше extent-ов (читай: чем больше фрагментированы) файлы.

    У меня при копировании файлов на отдельном винте, ощутимо система медленнее не становится вообще.
    Ответ написан
    Комментировать
  • Python. С чего начать учить?

    mocksoul
    @mocksoul
    Хех, с `python -m this`

    А если серьёзно, то с задачи. Необязательно сразу начать творить супер-мега-веб-проекты, можно написать себе консольный будильник например. В общем и целом проблем с изучением питона нет у тех, кто уже является программистом на каком-либо другом языке. Есть отличия, но они все весьма очевидные при рассмотрении под лупой =).

    Вышеупомянутая Dive Into Python — точно must read, даже уже тем кто будильник на питоне написать способен.

    Ну и, конечно, разглядывание исходников адекватных программ на питоне. Например, ту же django распотрошите — и будете уже почти гуру. Но сложного в этом на самом деле ничего нет.
    Ответ написан
    Комментировать
  • Объясните, зачем нужны документо-ориентированные БД (MongoDB)?

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

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

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

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

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

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

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