GithubHelp home page GithubHelp logo

leveledstorage's Introduction

LeveledStorage



빠르고 안정적인 깊이 기반 데이터 저장소

레벨스토리지는 기본적으로 속도와 안정성을 위해 개발된 저장 프로젝트입니다.

자바의 모든 기본형 데이터를 저장할 수 있으며, WritableData를 상속받아 데이터를 작성해주는 코드를 작성하면

해당 클래스도 저장이 가능합니다.

작동 원리

레벨 스토리지는 ObjectStream을 사용하여 기본형 데이터를 빠르게 저장하게 설계되어 있습니다.

데이터 저장 클래스, AccessibleDataStorage는 입력된 주기마다 1회씩 저장을 실행하며,

저장 시도 횟수가 스토리지 레벨 이상이 되면 자동으로 저장이 실행되고 다음 레벨의 스토리지로 데이터가 넘어갑니다.

만약 최근에 접근된 데이터가 존재하면 해당 데이터는 0레벨 스토리지로 이동됩니다.

목표

  • Add all Collection
    • Add Lists (Java Branch)
      • Add ArrayList
      • Add LinkedList
      • Add CopyOnWriteArrayList
      • Add Stack
      • Add Vector
    • Add Maps (Java Branch)
      • Add HashMap
      • Add HashTable
      • Add EnumMap
      • Add ConcurrentHashMap
      • Add ConcurrentSkipListMap
      • Add TreeMap
      • Add IdentityHashMap
      • Add Properties
    • Add Auto-Identitier (Java Branch)
      • Add Calendar Identitier (Completed,but have to check another calendars)
      • Add Map Identitier
      • Add List Identitier
      • Add Iterator Identitier (Abandonded - Cannot find iterator classes)

작동 원리 - 데이터 이동

0레벨 스토리지

데이터: [0,1,2,3,4,5]

1레벨 스토리지

데이터: [6,7,8]




* 저장 시도

0레벨 스토리지

데이터: []

- 저장됨 : [1,2,3,4,5]

1레벨 스토리지

데이터: [0,1,2,3,4,5]


2레벨 스토리지

데이터: [6,7,8]

leveledstorage's People

Contributors

milkyway0308 avatar

Watchers

 avatar  avatar

leveledstorage's Issues

Fix it

  • 대부분의 클래스는 상속을 생각하고 만든 클래스가 아니므로 final을 다는 것이 좋습니다.
  • StoredData의 IntegerSeparator같은 상수는 final을 붙이는게 좋습니다 근데 비공개잖아?
  • StringUtil의 c >= '0' && c <= '9'보다 Character.isDigit(c)가 가독성이 높을것이라 생각함
  • StringUtil#extractIntegers는 null이나 비어있는 텍스트를 대상으로 어떤 값이 나올지 참으로 궁금 (웃음)
  • StringUtil#extractLong과 StringUtil#extractIntegers는 같은 함수나 다름이 없음. Number를 상속한 클래스로 longValue()나 intValue() 등의 함수를 구현하는 것은 어떨까 싶음.
  • PatternCrashReplacer#replacePatternCrashItems은 아마 (asdf)를 하면 "(asdf)"가 매칭되기를 위해 만든 함수인 것 같은데 이미 그 역할을 하는 Pattern#quote가 있음.
  • GenericResolver는 읽기를 포기함
  • Test 제발 JUnit
  • 제발 유틸 클래스 생성자 private
  • WritableData 구현 없을거면 interface로 하시는게?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.