berkeleydb   296

« earlier    

Updated instructions for compiling BerkeleyDB with SQLite for use with Python
About three years ago I posted some instructions for building the Python SQLite driver for use with BerkeleyDB. While those instructions still work, they have the unfortunate consequence of stomping on any other SQLite builds you've installed in /usr/local. I haven't been able to build pysqlite with BerkeleyDB compiled in, because the source amalgamation generated by BerkeleyDB doesn't compile. So that leaves us with dynamically linking, and that requires that we use the BerkeleyDB libsqlite, which is exactly what the previous post described.

In this post I'll describe a better approach. Instead of building a modified version of libsqlite3, we'll modify pysqlite to use the BerkeleyDB libdb_sql library.

Why use BerkeleyDB at all?
To sum up, BerkeleyDB might be a good option if you have many concurrent writers.
berkeleydb  keyvalue  python  sqlite 
january 2016 by crossjam
Visual Guide to NoSQL Systems
"There are so many NoSQL systems these days that it's hard to get a quick overview of the major trade-offs involved when evaluating relational and non-relational systems in non-single-server environments."
comparison  database  nosql  sql  riak  mysql  postgresql  cassandra  couchdb  redis  berkeleydb 
december 2014 by garrettc
Oracle switches Berkeley DB license | Open Source Software - InfoWorld
Back on June 10, as part of a low-key release of Berkeley DB, Oracle quietly changed the license of this important embedded database library, widely used as a key-value store within other applications.

Historically, Berkeley DB -- which Oracle acquired from Sleepycat Software -- has used an OSI-approved strong copyleft license with an effect very similar to the GPL. Under the Sleepycat License, distributing software that embedded Berkeley DB involved also providing "information on how to obtain complete source code for the DB software and any accompanying software that uses the DB software." Sleepycat's business model involved selling developers an alternative, proprietary license to Berkeley DB so that they were not subject to the requirements of the copyleft clause of the Sleepycat license.

[ Oracle Database 12c review: Finally, a true cloud database. | Track the latest trends in open source with InfoWorld's Technology: Open Source newsletter. ]

Future versions of Berkeley DB will instead use the GNU Affero General Public License (AGPL). This is also a strong copyleft license, but with an important difference. The AGPL says "your modified version must prominently offer all users interacting with it remotely through a computer network ... an opportunity to receive the Corresponding Source of your version."

That's a significant change for Web developers using Berkeley DB for local storage. Until now, they have not had to worry much about compliance with the terms of the license because they never "redistributed" the source of their Web apps -- they were simply run on servers and accessed remotely by users. But the terms of the AGPL additionally stipulate that remote usage of the software becomes a trigger for license compliance.

To work with the new license, Berkeley DB users will need to make sure their whole Web app is compliant with the AGPL. First, they now need to make full corresponding source to their Web application available. Second, they need to ensure the full app -- previously considered an internal-use asset -- has compatible and compliant licensing. That means the whole source has to be licensed under the GPLv3 or the AGPL, as well as made available to all users.

Oracle provided no rationale for the licensing change, but it may well be intended as a spur to further proprietary licensing. To avoid all this trouble with AGPL compliance, developers can simply purchase a proprietary license to Berkeley DB from Oracle. But there alternatives. One of the largest open source users of Berkeley DB used to be OpenLDAP, but it made the decision to turn to the Lightning Memory-Mapped Database (LMDB) instead. LMDB may well be usable by existing Berekely DB applications with minimal reprogramming. Additionally, there are numerous other embedded databases, although many are SQL-based rather than simple key-value store databases.

Oracle is entirely within its rights to change the license without warning; the company owns the full copyright to the code. But many will view the change as a hostile act intended to force them into a proprietary licensing relationship with Oracle. I can't help but think this betrayal of trust will drive adoption of alternatives instead.
oracle  legal  software  opensource  AGPL  GPL  BerkeleyDB 
july 2013 by jtyost2
Installing Oracle's BerkeleyDB and Perl's BerkeleyDB
Detailed instructions for install BerkeleyDb from the command line
berkeleydb  perl 
july 2013 by dtg
Oracle switches Berkeley DB license | Open Source Software - InfoWorld
Future versions of Berkeley DB will instead use the GNU Affero General Public License (AGPL). This is also a strong copyleft license, but with an important difference. The AGPL says "your modified version must prominently offer all users interacting with it remotely through a computer network ... an opportunity to receive the Corresponding Source of your version."
oracle  berkeleyDB  keyvalue 
july 2013 by euler

« earlier    

related tags

actionscript  ada  adobe  adobeacrobat  agpl  ajax  algebra  algorithm  amazon  amybrown  analysis  apache  apacheant  apachecamel  apachecassandra  apachesolr  api  apt  architecture  arduino  ascii  asp  assemblylanguage  asterdata  asterisk  astronomy  atom  audacity  awk  azure  bash  battleforwesnoth  bazaar  bdb  benchmarks  berkeley  bigo  bigtable  birt  blazeds  blog  blogger  blueprint  blueprints  bpel  bpm  bpml  bsddb  btree  businessprocessmodeling  c#  c++  c  cache  cachesize  calculus  camera  cassandra  catalyst  characters  cheat_sheet  chef  chemistry  chmod  chubby  clojure  cloud  cloudcomputing  cmake  cocoa  coldfusion  colour  comparison  computerscience  continuousintegration  couchdb  countries  css  cvs  cyrus  data  database  databases  datastores  db  db2  db4o  dbi  dbm  dbxml  ddd  debian  delphi  dependencies  design  designpattern  development  dictionary  distributed  django  doctrine  doctypes  documentation  dom  domain-drivendesign  dotlanguage  dotnet  driver  drupal  dtd  dynamo  eclipse  ed  ejb  emacs  email  embedded  embeddeddb  emoticon  encoding  engine  erlang  f#  fedora  feed  file  filesystem  firebug  firefox  firefoxadd-ons  fitnesse  flash  flashcatalyst  flex  fonts  fork  fortran  forum  freeware  ftp  gdb  geometry  gift  gimp  git  gmail  gof  google  googleappengine  googlechrome  googlemaps  gpl  grails  graph  graphdb  graphite  greenplum  gregwilson  griffon  groovy  guide  guitar  gwt  ha  hadoop  hardware  hash  hashtable  haskell  hbase  hibernate  highavailability  howto  htaccess  html  http  hypergraph  hypertable  illustrator  image  imap  implementation  indesign  inkscape  inmemory  insight  intellijidea  internetexplorer  irc  java  javadoc  javaee  javafx  javapersistenceapi  javascript  javaserverfaces  jboss  jdbc  jetty  jitsi  jquery  jsf  jsp  julia  junit  kai  key-value  key  keyspace  keyvalue  keyvaluestore  kiokudb  kvs  kvstore  languages  large-scale  large-scap  latex-suite  latex  layer  ldap  lecture  legal  less  leveldb  libraries  library  license  links  linux  lisp  list  llvm  lmdb  lock  logic  lookup  lotusdomino  lua  lucene  luxio  mac  machinelearning  macosx  map  maple  mapper  markdown  math  mathematica  mathml  mathomatic  matlab  maven  maxima  mdb  mediawiki  memcached  mercurial  mfc  microformats  microsoftexcel  microsoftoffice  microsoftproject  microsoftvisualstudio  mime  mod_include  mod_perl  mod_rewrite  mongodb  moose  mootools  msp  mule  music  mvvm  mysql  nahurst  nano  nathanhurst  netbeans  nginx  nmap  node.js  nosql  notepad++  numbers  objective-c  open-source  opencl  opencv  openldap  openmp  openscad  opensearch  opensource  opensourcemediaframework  openssh  openvz  optimization  oracle  org-mode  orm  oss  osx  outofmemoryerror  packaging  pari/gp  paxos  peewee  perforce  performance  perl  persistence  photoshop  php  phpframeworks  physics  playframework  port  postgresql  powershell  probabilitytheory  programming  prototype  puppet  python  qt  quicksilver  r  rails  rebol  redhat  redis  reference  regularexpressions  replication  rest  riak  richfaces  rpm  rss  ruby  rubyonrails  sagemath  sandcastle  scala  scalability  scalaris  scaling  science  screen  seam  sed  selenium  sendmail  server  service  servicemix  shellscript  silverlight  simpledb  skiplist  sleepycat  slideshare  snowflock  socialcalc  socialmedia  software  software_architecture  solaris  springframework  springroo  sql  sqlite  sqlite3  sqlserver  ssi  ssl  statistics  stl  storage  store  svg  svn  sybase  symfony  sysadmin  tapestry  tcl/tk  tcp  tech  telepathy  terrastore  tex  thousandparsec  thrift  thunderbird  tinkerpop  tips  tlds  tls  tokyo_cabinet  tokyo_tyrant  tokyocabinet  tr-2010-03  tr  transaction  trigonometry  troubleshooting  ttcn-3  tuning  tunning  tutorial  tutorials  twitter  ubuntu  uml  unicode  unix  unrealengine  upgrade  utf  vaadin  value  vb  vba  vbscript  veritascluster  version  vertica  vi  video  vim-latex  vim  violet  virtualization  vistrails  visualbasic  visualization  vmware  voicexml  voldemort  vtk  vvvv  web_development  webdev  webgl  webmatrix  wicket  wikipedia  windows  windowsazure  windowscommunicationfoundation  windowspowershell  windowspresentationfoundation  wordpress  ws-bpel  xcode  xhtml  xml  xmlschema  xpath  xquery  xsl  xslt  xss  yum  zencoding  zeromq  zookeeper 

Copy this bookmark: