标签: couchbase

我正在研究沙发基地,任何人都可以了解什么是桶和vbucket?

我现在正在研究沙发基地,我对'桶'和'vbucket'这个术语的官方描述感到很困惑,有人能解释什么是桶或vbucket吗?有什么不同?最好做一些类比并给出一些例子.

bucket couchbase

8
推荐指数
2
解决办法
2419
查看次数

couchbase实际上是否支持大于内存的数据集?

Couchbase文档说"磁盘持久性使您能够执行备份和还原操作,并使您能够扩展比内置缓存层更大的数据集",但我似乎无法使其工作.

我正在三节点集群上测试Couchbase 2.5.1,为存储桶配置了总共56.4GB的内存.在大约124,000,000个100字节的对象 - 大约12GB的原始数据之后 - 它停止接受额外的放置.已配置1个副本.

是否有一个魔法"继续前进并溢出到磁盘"开关,我错过了?错误日志中没有可疑条目.

couchbase

8
推荐指数
1
解决办法
1014
查看次数

Android L上的Couchbase Lite

更新到Android L之后,我遇到了这样的错误,不过之前(在Android 4.4 Nexus 7 2013上)一切都很好:

java.lang.NoSuchFieldError: no "I" field "mConnectionPtr" in class "Landroid/database/sqlite/SQLiteConnection;" or its superclasses
        at com.couchbase.touchdb.TDCollateJSON.nativeRegisterCustomCollators(Native Method)
        at com.couchbase.touchdb.TDCollateJSON.registerCustomCollators(TDCollateJSON.java:11)
        at com.couchbase.lite.android.AndroidSQLiteStorageEngine.open(AndroidSQLiteStorageEngine.java:46)
        at com.couchbase.lite.Database.open(Database.java:909)
        at com.couchbase.lite.Manager.getDatabase(Manager.java:228)
        at com.explain.messenger.model.utils.CBHelper.init(CBHelper.java:55)
Run Code Online (Sandbox Code Playgroud)

尝试创建数据库后发生执行:

 manager = new Manager(new AndroidContext(appContext),
                Manager.DEFAULT_OPTIONS);
 Database db = manager.getDatabase("db_name"); // exception here
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决它?

android couchbase couchbase-lite android-5.0-lollipop

8
推荐指数
1
解决办法
1119
查看次数

我可以在Android上的CouchBase和在Linux上运行的Couch DB之间进行复制吗?

我可以将在Android上运行的CouchBase数据库复制到CouchDB(1.1)服务器吗?我想在Android上试用couchbase,并在Amazon EC2上安装了Couch DB.

android couchdb couchbase

7
推荐指数
1
解决办法
497
查看次数

Couchbase数据建模 - 面向文档

这个问题不一定是Couchbase 2.0开发的具体预览,但我认为它可能会帮助人们调查新的Couchbase产品.

我正在寻找有关数据建模的建议.我们正在调查Couchbase,以便将其用于实时分析.

但是,我找不到任何关于如何最好地模拟现实世界数据的文档.

我将提出一个场景,如果社区可以帮助我或讨论如何建模的一些想法,那将非常有用吗?

请注意,这不代表我们的产品,我不是要求人们为我们解决我们的建模问题更倾向于讨论

让我们假设客户在特定日期/时间做出产品购买,产品与他们的信息,如ID,名称,描述和价格,购买时的日期进行.

最初的要求是能够计算两个日期之间的所有购买.任何1天的购买量可能超过10万 - 这是一项非常大的业务;)

如果任何语法不正确请告诉我 - 欢迎所有建议/帮助.

如果我们将数据建模为类似的东西(可能完全不正确):

购买产品

{
    "_id" : "purchase_1",
    "_rev" : "1-1212afdd126126128ae",
    "products" :  [
        "prod_1" : {
            "name" : "Milk",
            "desc" : "Semi-skimmed 1ltr",
            "price" : "0.89"
        },
        "prod_7568" : {
            "name" : "Crisps", 
            "desc" : "Salt and Vinegar",
            "price: "0.85"
        }
    ]
    "date" : "2012-01-14 14:24:33"
}

{
    "_id" : "purchase_2",
    "_rev" : "1-1212afdd126126128ae",
    "products" :  [
        "prod_89001" : {
            "name" : "Bread", 
            "desc" : "White thick sliced", …
Run Code Online (Sandbox Code Playgroud)

data-modeling document-based-database nosql couchbase

7
推荐指数
1
解决办法
2528
查看次数

CouchDB组级别和密钥范围

任何人都可以向我解释为什么以下不起作用:

假设以下文档结构:

{
   "_id": "520fb089a6cb538b1843cdf3cca39a15",
   "_rev": "2-f96c27d19bf6cb10268d6d1c34799931",
   "type": "nosql",
   "location": "AZ",
   "date": "2012/03/01 00:00:00",
   "amount": 1500
}
Run Code Online (Sandbox Code Playgroud)

并且Map函数定义如下:

function(doc) {
  var saleDate = new Date(doc.date);
  emit([doc.location,saleDate.getFullYear(),saleDate.getMonth()+1],doc.amount);
}
Run Code Online (Sandbox Code Playgroud)

并使用内置_sum功能的减速机.

当你执行它(使用group = true)时,你会得到如下结果:

{"rows":[
{"key":["AZ",2012,2],"value":224},
{"key":["AZ",2012,3],"value":1500},
{"key":["WA",2011,12],"value":1965},
{"key":["WA",2012,1],"value":358}
]}
Run Code Online (Sandbox Code Playgroud)

现在,如果您将查询更改为以下内容:

http://127.0.0.1:5984/default/_design/nosql/_view/nosql_test?group_level=2
Run Code Online (Sandbox Code Playgroud)

你得到这样的结果:

{"rows":[
{"key":["AZ",2012],"value":1724},
{"key":["WA",2011],"value":1965},
{"key":["WA",2012],"value":358}
]}
Run Code Online (Sandbox Code Playgroud)

所以考虑到这一点,如果我想在2011年找到"WA"的所有销售,我不能执行这样的事情:

http://127.0.0.1:5984/default/_design/nosql/_view/nosql_test?group_level=2&key=["WA",2011]
Run Code Online (Sandbox Code Playgroud)

这个例子取自NoSQL磁带上的有用视频.

http://nosqltapes.com/video/understanding-mapreduce-with-mike-miller

couchdb nosql couchbase

7
推荐指数
1
解决办法
3365
查看次数

为什么三个节点是Couchbase建议的最小节点数?

对于Cassandra,假设复制因子为1(即数据集的两个副本),则最少需要三个节点来启用具有强一致性的写入.Couchbase似乎没有这个要求,至少我没有在任何地方找到它.尽管如此,Couchbase仍然建议生产系统至少使用三个节点.

我发现的唯一动机是(1)双节点系统中的单节点故障会产生单点故障,(2)双节点系统在扩展到第三个节点时需要更加努力,而不是三节点系统(我假设这是因为重新平衡).

没有任何动机对我来说特别引人注目:

原因(1)感觉有点像说双磁盘RAID-1没用,只有三磁盘RAID-6(一个数据,两个校验和)是可以接受的.然而,RAID-1非常流行(远远超过三磁盘RAID-6:es),通常被认为是相对安全的.据推测,丢失节点将导致管理员快速行动,因此风险应该是短暂的.

原因(2)对我来说似乎更加短暂.当添加第三个节点时,两个节点需要更加努力地工作.尽管如此,这只是一个问题,并且大多数应用程序每天都有负载变化,可以完成重新平衡的调整.

所以我想知道是否有任何其他原因可以避免双节点Couchbase集群,假设这两个节点能够很好地承载负载?

minimum couchbase

7
推荐指数
1
解决办法
1496
查看次数

Couchbase并发超时异常:Java SDK

我在maven项目中使用java.我正在使用couchbase 2.3.1,但在尝试解决此问题时,我回滚到2.2.8无济于事.

我得到的问题是,当我确实到达我的couchbase集群时,我看到了很多这样的事情:

java.lang.RuntimeException: java.util.concurrent.TimeoutException
at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:75)
at com.couchbase.client.java.CouchbaseBucket.upsert(CouchbaseBucket.java:359)
at com.couchbase.client.java.CouchbaseBucket.upsert(CouchbaseBucket.java:354)
Run Code Online (Sandbox Code Playgroud)

以下是我的couchbase环境的设置:

CouchbaseEnvironment: {sslEnabled=false, sslKeystoreFile='null', sslKeystorePassword='null', queryEnabled=false, queryPort=8093, bootstrapHttpEnabled=true, bootstrapCarrierEnabled=true, bootstrapHttpDirectPort=8091, bootstrapHttpSslPort=18091, bootstrapCarrierDirectPort=11210, bootstrapCarrierSslPort=11207, ioPoolSize=24, computationPoolSize=24, responseBufferSize=16384, requestBufferSize=16384, kvServiceEndpoints=1, viewServiceEndpoints=1, queryServiceEndpoints=1, searchServiceEndpoints=1, ioPool=NioEventLoopGroup, coreScheduler=CoreScheduler, eventBus=DefaultEventBus, packageNameAndVersion=couchbase-java-client/2.2.8 (git: 2.2.8, core: 1.2.9), dcpEnabled=false, retryStrategy=BestEffort, maxRequestLifetime=75000, retryDelay=ExponentialDelay{growBy 1.0 MICROSECONDS, powers of 2; lower=100, upper=100000}, reconnectDelay=ExponentialDelay{growBy 1.0 MILLISECONDS, powers of 2; lower=32, upper=4096}, observeIntervalDelay=ExponentialDelay{growBy 1.0 MICROSECONDS, powers of 2; lower=10, upper=100000}, keepAliveInterval=30000, autoreleaseAfter=2000, bufferPoolingEnabled=true, tcpNodelayEnabled=true, mutationTokensEnabled=false, socketConnectTimeout=1000, dcpConnectionBufferSize=20971520, dcpConnectionBufferAckThreshold=0.2, dcpConnectionName=dcp/core-io, callbacksOnIoPool=false, queryTimeout=75000, viewTimeout=75000, kvTimeout=2500, …
Run Code Online (Sandbox Code Playgroud)

java couchbase

7
推荐指数
1
解决办法
7208
查看次数

如何将Couchbase中的数据与map reduce合并?

我的应用程序是在同一个存储桶中存储多种文档类型.我知道这不是一个好习惯,但我对我可以在我的服务器上创建多少桶有限制,目前还没有解决方法.文档的前缀是它们的类型,所以当我得到一个文档时,我只需要连接前缀和id来获取密钥,我就可以进行密钥查找.

我需要创建一个报告,从多个文档类型中提取信息.

我的地图看起来像这样:

function(doc, meta) {

  var getStep = function(stepName, exit, mapper) {
    if (meta.id.indexOf(stepName) !== -1) {
      var hotelId = parseInt(meta.id.replace(stepName + '_', ''));
      if (hotelId > 0) {
        var result = {
          hotelId: hotelId,
          exit: exit
        };
        if (mapper !== undefined) {
          mapper(result);
        }
        return result;
      }
    }
    return null;
  };

  var photos = getStep('PHOTOS', 7);
  if (photos != null) {
    emit(photos.hotelId, photos);
  }
  var pricing = getStep('PICR', 5);
  if (pricing != null) {
    emit(pricing.hotelId, pricing);
  }
  var …
Run Code Online (Sandbox Code Playgroud)

javascript mapreduce couchbase

7
推荐指数
1
解决办法
239
查看次数

Couchbase Lite 拉式复制在示例 Couchbase 移动端到端测试项目中失败并出现错误

我开始使用 Couchbase Mobile。我最感兴趣的功能(目前)是PULL复制(保持移动数据与后端数据库同步)。

我按照使用 Docker 使用 Couchbase Mobile 进行开发中描述的步骤进行了操作,并在本地部署了 Couchbase 服务器 (enterprise-6.5.0) 和同步网关 (2.7.0-enterprise)。我已经添加了beer-sample数据库(有 ~8400 个文档),现在我正在尝试将它复制到一个 android 应用程序上。我自定义了Userprofile Couchbase Mobile Android项目,并将其指向我的本地同步网关。我有一段代码要复制,如下所示:

  public static void startPullReplication() {
    Log.i("Pull", "Start pull beer-sample");
    URI url = null;
    try {
      url = new URI(String.format("%s/%s", "ws://10.0.1.7:4984", beerSampleDbName));
    } catch (URISyntaxException e) {
      e.printStackTrace();
    }

    ReplicatorConfiguration config =
        new ReplicatorConfiguration(beerSampleDatabase, new URLEndpoint(url)); // <1>
    config.setReplicatorType(ReplicatorConfiguration.ReplicatorType.PULL); // <2>
    config.setContinuous(true); // <3>
    config.setAuthenticator(new BasicAuthenticator("admin", "password")); // <4>
    //    config.setChannels(Arrays.asList("channel." + …
Run Code Online (Sandbox Code Playgroud)

android couchbase couchbase-lite couchbase-sync-gateway

7
推荐指数
1
解决办法
326
查看次数