Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. Looking for advice on key/value storage options

Looking for advice on key/value storage options

Scheduled Pinned Locked Moved Database
csharpcsspostgresqlmongodbdotnet
7 Posts 4 Posters 22 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    Chris Maunder
    wrote on last edited by
    #1

    I need to store lots and lots and lots of timeseries data. Each series is keyed by a unique key, and once written it will almost never be updated. I'm literally after a key/value storage system that's persisted. I also don't want to use Azure. No offense, Microsoft, but... So my thoughts were Redis (not the safest), postgres (bit overkill), Cassandra (seems to like writes better than reads and my use case is the opposite), or mongoDB. Did I mention I want this to cost less than a coffee a week. A good coffee, but I'm not paying $50 a month for this. Total data will be < 1TB. Most likely this will be running on a Windows or Linux box against a .NET 5 app.

    cheers Chris Maunder

    M K L 3 Replies Last reply
    0
    • C Chris Maunder

      I need to store lots and lots and lots of timeseries data. Each series is keyed by a unique key, and once written it will almost never be updated. I'm literally after a key/value storage system that's persisted. I also don't want to use Azure. No offense, Microsoft, but... So my thoughts were Redis (not the safest), postgres (bit overkill), Cassandra (seems to like writes better than reads and my use case is the opposite), or mongoDB. Did I mention I want this to cost less than a coffee a week. A good coffee, but I'm not paying $50 a month for this. Total data will be < 1TB. Most likely this will be running on a Windows or Linux box against a .NET 5 app.

      cheers Chris Maunder

      M Offline
      M Offline
      Mycroft Holmes
      wrote on last edited by
      #2

      Chris Maunder wrote:

      and once written it will almost never be updated

      I love specs like this - NOT.

      Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP

      C 1 Reply Last reply
      0
      • C Chris Maunder

        I need to store lots and lots and lots of timeseries data. Each series is keyed by a unique key, and once written it will almost never be updated. I'm literally after a key/value storage system that's persisted. I also don't want to use Azure. No offense, Microsoft, but... So my thoughts were Redis (not the safest), postgres (bit overkill), Cassandra (seems to like writes better than reads and my use case is the opposite), or mongoDB. Did I mention I want this to cost less than a coffee a week. A good coffee, but I'm not paying $50 a month for this. Total data will be < 1TB. Most likely this will be running on a Windows or Linux box against a .NET 5 app.

        cheers Chris Maunder

        K Offline
        K Offline
        k5054
        wrote on last edited by
        #3

        Have you considered good old Berkeley DB? [Oracle Berkeley DB](https://www.oracle.com/database/technologies/related/berkeleydb.html) It's not a DBMS, so might not fit your use case.

        Keep Calm and Carry On

        C 1 Reply Last reply
        0
        • M Mycroft Holmes

          Chris Maunder wrote:

          and once written it will almost never be updated

          I love specs like this - NOT.

          Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP

          C Offline
          C Offline
          Chris Maunder
          wrote on last edited by
          #4

          I can promise you that X will never, ever, ever happen. Except sometimes randomly when I need it to happen.

          cheers Chris Maunder

          1 Reply Last reply
          0
          • K k5054

            Have you considered good old Berkeley DB? [Oracle Berkeley DB](https://www.oracle.com/database/technologies/related/berkeleydb.html) It's not a DBMS, so might not fit your use case.

            Keep Calm and Carry On

            C Offline
            C Offline
            Chris Maunder
            wrote on last edited by
            #5

            I heard the name Cassandra was a direct commentary on Oracle (Cassandra being a cursed Oracle, and all that)

            cheers Chris Maunder

            1 Reply Last reply
            0
            • C Chris Maunder

              I need to store lots and lots and lots of timeseries data. Each series is keyed by a unique key, and once written it will almost never be updated. I'm literally after a key/value storage system that's persisted. I also don't want to use Azure. No offense, Microsoft, but... So my thoughts were Redis (not the safest), postgres (bit overkill), Cassandra (seems to like writes better than reads and my use case is the opposite), or mongoDB. Did I mention I want this to cost less than a coffee a week. A good coffee, but I'm not paying $50 a month for this. Total data will be < 1TB. Most likely this will be running on a Windows or Linux box against a .NET 5 app.

              cheers Chris Maunder

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #6

              Data and no "record counts" makes it hard to visualize a solution; or what needs to be done with the "time series data" subsequently; or how much of it there is for a given key. I used a database table to index a file system of postal carrier address labels (images). Mostly used as an audit trail. The label key was a GUID.

              It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food

              C 1 Reply Last reply
              0
              • L Lost User

                Data and no "record counts" makes it hard to visualize a solution; or what needs to be done with the "time series data" subsequently; or how much of it there is for a given key. I used a database table to index a file system of postal carrier address labels (images). Mostly used as an audit trail. The label key was a GUID.

                It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food

                C Offline
                C Offline
                Chris Maunder
                wrote on last edited by
                #7

                Imagine you load a file that has 3 sets of timeseries data: attributeA, attributeB and attributeC. Each timseries is of the form Array. There will be between 1000 and 15,000 time/value pairs in each series, so maybe 8Kb to 120Kb in each series. I will never query the data in the array. I will only ever return it as a chunk of data (meaning I could compress it into a BLOB for higher storage efficiency at a tradeoff in load speed if I needed to) A classic database such as MySQL or SQL Server seems massive overkill for this.

                cheers Chris Maunder

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • World
                • Users
                • Groups