• Веб-морда для batch скриптов?

    @HiltoN
    Не уверен, но мне кажется, что cygwin-овский ssh не будет выполнять Windows-скрипты, а только юниксовские shell-скрипты. Поэтому автору придётся переписаться все свои скрипты под UNIX-shell. Но в этом случае какие-то таски, заточенные по особенности Windows не получится переписать.
  • Redis vs SQLite vs PostgreSQL

    @HiltoN Автор вопроса
    2. Я использовал как раз списки, причём сортированные (ключ сортировки — timestamp), можно было конечно и простые списки, но по задаче нужны именно сортированные.
    1. Наверное именно поэтому я и получил 3К вместо 12К, т.к. это не GET/SET, а ZRANGEBYSCORE и проч.
  • Redis vs SQLite vs PostgreSQL

    @HiltoN Автор вопроса
    > «производительность больших плоских таблиц и простейших запросов».
    > и к очереди она не имеет никакого отношения, потому что у очереди
    > есть ровно 2 операции: «взять» и «положить».
    Очередь — очень большая, сотни миллионов строк. Отсюда и слова про большую проскую таблицу. И кроме положить и взять (брать кстати нужно с начала очереди), нужно ещё — взять всё что накопилось за N минут + убрать всё это после обработки. И желательно делать это в нескольких потоках, т.е. быть уверенным что только ты взял этот элемент с очереди. И да, мои тесты примитивные, но отвечают на один из моих вопросов — сколько операций в секунду даст выполнить база когда к ней будут обращаться с одного потока.
  • Redis vs SQLite vs PostgreSQL

    @HiltoN Автор вопроса
    Спасибо, повеселили.
    И тем не менее задача не из головы, а реальная и каждый инструмент неплохо стравился с задачей и по-моему все они при примерно равных весовых категориях (я же не сравнивал с ораклом), но с немного отличающимся функционалом (т.е. часть функционала используется для решения задачи, часть нет). По вашему не бывает задач, которые успешно решаются несколькими способами? Или вы думаете что для конкретной задачи есть идеальный инструмент в котором напрочь отсутсвует лишняя функциональность?
  • Redis vs SQLite vs PostgreSQL

    @HiltoN Автор вопроса
    Тесты простейшие, без параллельных запросов, такого плана:
    #!/usr/bin/python
    import sqlite3
    import random
    from datetime import datetime
    
    conn = sqlite3.connect('sqlite.db')
    cur = conn.cursor()
    startTime = datetime.now()
    for i in range(1,1000):
    	x = random.randint(1,10000000)
    	cur.execute('SELECT * FROM t WHERE id=?', (x,))
    	cur.fetchall()
    
    print(datetime.now()-startTime)
    


    #!/usr/bin/python
    import redis
    import random
    from datetime import datetime
    
    r = redis.StrictRedis(host='127.0.0.1', port=6379, db=0)
    startTime = datetime.now()
    
    for i in range(1,1000):
    	x = random.randint(1,10000000)
    	r.zscore('queue',x)
    
    print(datetime.now()-startTime)
    
  • Redis vs SQLite vs PostgreSQL

    @HiltoN Автор вопроса
    alekciy, поясните почему условная. Разве включение AOF + fsync = always не делает её полностью персистентной?
  • Redis vs SQLite vs PostgreSQL

    @HiltoN Автор вопроса
    Знаком с монго, но он по задумке не очень-то надёжен при работе на одном сервере, требует сервером для репликации и выделенных конфиг-серверов. Конечно всё это можно развернуть на одной машине, но толку от этого мало. Мне же нужно обеспечить максимальную надёжность хранения данных в случае креша.

    Про недостаток в виде отсутсвия джойнов — вы ещё наверное с Redis-ом не знакомы, он даже по значениям искать не умеет, лишь по ключам.
  • Redis vs SQLite vs PostgreSQL

    @HiltoN Автор вопроса
    Тот же редис можно перевести в AOF режим и установить синхронный коммит. В монго тоже есть журнал транзакций, правда не уверен может ли он обестечить стопроцентную сохранность (вроде читал про ненадёжный интервал в 100 милисекунд или около того).